追风的云 发表于 2017-12-6 14:51:30

tlc5620的时序问题,各位看看问题出在哪里

module tlc5620 (
               input clk_50MHz,
                                        input rst_n,
                                        output da_clk,
                                        output da_load,
                                        output da_ldac,
                                        output da_data
                                        );
        wire clk_1MHz;
        reg data;
   reg num;
   always @(posedge clk_1MHz or negedge rst_n)
        begin
           if(!rst_n)
                begin
                   num<=4'd0;
                        data<=8'd100;
                end
                else
                begin
                   if(num==12)
                        begin
                          num<=4'd0;
                        end
                        else
                        begin
                           num<=num+1'd1;
                        end
                end
        end
        reg da_data_r;
        always @(posedge clk_50MHz or negedge rst_n)
        begin
           if(!rst_n)
                begin
                   da_data_r<=1'b0;
                end
                else
                begin
                   case(num)
                           4'd0:da_data_r<=1'b0;
                                4'd1:da_data_r<=1'b0;
                                4'd2:da_data_r<=1'b0;
                                4'd3:da_data_r<=data;
                                4'd4:da_data_r<=data;
                                4'd5:da_data_r<=data;
                                4'd6:da_data_r<=data;
                                4'd7:da_data_r<=data;
                                4'd8:da_data_r<=data;
                                4'd9:da_data_r<=data;
                                4'd10:da_data_r<=data;
                                4'd11:da_data_r<=1'b0;
                                4'd12:da_data_r<=1'b0;
                                default:;
                        endcase
                end
        end
   assign da_data=da_data_r;
        assign da_clk=clk_1MHz;
        assign da_load=(num==11)?1'b0:1'b1;
        assign da_ldac=(num==12)?1'b0:1'b1;
        pll pll_dut (
                    .areset(rst_n),
                    .inclk0(clk_50MHz),
                    .c0(clk_1MHz)
                                        );
endmodule

zxopenhl 发表于 2017-12-6 19:11:15

你可以讲仿真波形,放在这里看看,这样更容易找问题
页: [1]
查看完整版本: tlc5620的时序问题,各位看看问题出在哪里