小舍YZ 发表于 2017-8-22 15:52:14

迭代控制程序的设计与代码

迭代控制程序的设计与代码

module contrl(output data_o_var_t,   
            output reg inter_num_curr,   
                                  output reg Key_i_var_out,   
                                  output reg R_i, L_i,   
                                  output reg ready_o,   
                                  input L_o,   
                                  input R_o,   
                                  input R_i_var, L_i_var,   
                                  input Key_o,   
                                  input C0, D0,   
                                  input clk, reset, des_enable);
   reg inter_num_next;   
   assign data_o_var_t = (ready_o == 1'b1)?{L_o,R_o}:64'hzzzzzzzzzzzzzzzz;
   
        always @(posedge clk or negedge reset)   
                        if(reset == 1'b0)   
                                begin      
                                        inter_num_next <= 4'd0;      
                                        inter_num_curr <= 4'd0;      
                                        ready_o <= 1'b0;   
                                end   
                        elseif(des_enable)   
                                begin      
                                        if(ready_o == 1'b0)      
                                                inter_num_curr <= inter_num_next;   
                                end   
                                          
        always @(posedge clk or negedge reset)   
                begin   
                        if(reset == 1'b0) ready_o <= 1'b0;   
                        else if(inter_num_curr == 4'd15)ready_o <= 1'b1;   
                        else ready_o <= 1'b0;   
                end   
                                          
        always @(*)   
                begin      
                        case(inter_num_curr)   
                                4'd0:begin      
                                //ready_o = 1'b0;      
                                       R_i = R_i_var;      
                                       L_i = L_i_var;      
                                       Key_i_var_out = {C0, D0};      
                                       inter_num_next = 4'd1;      
                                        end   
                                4'd1: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd2;
                                                end   
                                4'd2: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd3;      
                                                end   
                                4'd3: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd4;      
                                                end   
                                4'd4: begin      
                                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd5;      
                                                end   
                                4'd5: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd6;      
                                                end   
                                4'd6: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd7;      
                                                end   
                                               
                                4'd7: begin
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd8;      
                                                end   
                                4'd8: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd9;      
                                                end   
                                4'd9: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd10;      
                                                end   
                                4'd10: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd11;      
                                                end      
                                4'd11: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd12;      
                                                end   
                                4'd12: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd13;      
                                                end      
                                4'd13: begin      
                                //ready_o = 1'b0;      
                                                R_i = R_o;      
                                                L_i = L_o;      
                                                Key_i_var_out = Key_o;      
                                                inter_num_next = 4'd14;      
                                                end   
                                                               
                                4'd14: begin      
                                //ready_o = 1'b0;      
                                                        R_i = R_o;      
                                                        L_i = L_o;      
                                                        Key_i_var_out = Key_o;      
                                                        inter_num_next = 4'd15;      
                                                        end      
                                4'd15:if(ready_o == 1'b0)   
                                                begin      
                                                       R_i = R_o;      
                                                       L_i = L_o;      
                                                       Key_i_var_out = Key_o;      
                                                //ready_o = 1'b1;      
                                        end   
                       endcase   
          end
                                  
endmodule

FPGA_one 发表于 2017-8-23 09:48:44

学到了            

晓灰灰 发表于 2017-8-23 11:09:49

迭代控制程序的设计与代码

小舍YZ 发表于 2017-8-23 13:02:59

FPGA_one 发表于 2017-8-23 09:48
学到了

                                                   :lol :lol :lol :lol :lol                                 
页: [1]
查看完整版本: 迭代控制程序的设计与代码