在学verilog 的时候遇到的问题.希望大神能解决
	
就是实现对25m的时钟分频来实现8个灯表示的递增进位..
有两个问题.1,是我想着分频后不是可以直接用分频后的信号做led 的时钟信号不就好了.但是改了发现跟原来比对应的第0盏灯不亮.......
2,然后我自己编了test bench...发现len_h完全没有波形........
	
********************************顶层*****************
	module led_top(input clk,
                    input rst_n,
                    
                    output [7:0]led_h);
                    
    wire  clk_led;
    
    clk_design clk_design_inst(.clk(clk),
                                        .rst_n(rst_n),
                                        .clk_led(clk_led));
                                        
                                        
    led led_inst(.clk_led(clk_led),
               //  .clk(clk),
                    .rst_n(rst_n),
                    .led_h(led_h));
                    
endmodule
**********************************时钟分频******************
	
module  clk_design(input clk,                //时钟的输入    
                        input rst_n,                //    复位
                        
                        output clk_led);                //led 的控制信号 . 
reg[24:0] cnt;
parameter LED_CNT  = 24_999_999;
always@(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            cnt <= 25'd0 ;
        else  if (cnt < LED_CNT  )
            cnt  <= cnt + 1'b1 ; 
        else  cnt  <= 25'd0 ;  
    end
assign clk_led = (cnt == 25'd24_999_999)? 1'b1 : 1'b0;
endmodule
*********************************led*****************
	module led(input clk_led,
              input rst_n,
          // input clk,
              
            output reg[7:0] led_h);
     
always@(posedge clk_led or negedge  rst_n)
    begin 
        if(!rst_n) 
            led_h <= 8'd0;
        else if (clk_led ) 
            led_h <= led_h + 1'b1;
        else 
            led_h <= led_h;
    end 
              
endmodule
*************************测试程序************************
	
`timescale 1 ns/ 1 ps
module led_top_vlg_tst();
reg clk;
reg rst_n;
                                           
wire [7:0]  led_h;
initial                                                
    begin                                                  
        $monitor($time,"led_h value = %b\n",led_h);
        
        clk = 0 ;
        rst_n = 0 ; 
        #100;
        @(posedge clk);    
        rst_n = 1 ;          
    end    
    
always                                                 
     #20 clk = ~clk    ;          
                     
led_top i1 (
                .clk(clk),
                .led_h(led_h),
                .rst_n(rst_n));
      
endmodule
	
			
			
			
						
			
 我要赚赏金
