|
本帖最后由 Pony279 于 2012-5-31 10:47 编辑
大家帮忙看看这段代码,现在是没问题的(顶层是 light_water),3个LED像个计数器一样,每隔 1s 加 1,
但是现在的问题是,当我把下面的被注释的代码恢复以后(也就是加上复位功能),
LED显示就不正常了(rst_n脚已经被我接到高电平了),只有 LED[2] 和 LED[1] 会亮,现象相当于一个 2 位的计数器。。。,LED[0]对应的引脚没反应- module clk_div(
- input clk_in,
- output p); // output pulse
-
- parameter DIV =50_000_000; // freq(clk_in) / DIV
- parameter BIT_WIDTH = 26; // the bit-width of the counter
- reg [BIT_WIDTH-1: 0] cnt;
- always@ (posedge clk_in) begin
- if(cnt == DIV-1)
- cnt <= 0;
- else
- cnt <= cnt+1'b1;
- end
- assign p = (cnt == DIV-1)?1'b1:1'b0;
- endmodule
- module led_display(
- input clk
- ,output [2:0] led_data
- // ,input rst_n
- );
- reg [2:0] led_data_r;
- always@(posedge clk
- // ,negedge rst_n
- )begin
- // if(!rst_n)
- // led_data_r <= 0;
- // else
- led_data_r <= led_data_r + 1'b1;
- end
- assign led_data = (~led_data_r);
- endmodule
- module light_water(
- input clk_in,
- output [2:0] led_data,
- output led
- // ,input rst_n
- );
- wire led_clk;
- clk_div clk_div_inst(
- .clk_in (clk_in),
- .p (led_clk)
- );
-
- led_display led_display_inst(
- .clk (led_clk)
- , .led_data (led_data)
- // , .rst_n (rst_n)
- );
-
- assign led = led_data[0];
- endmodule
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|