|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-10-26 21:34:41
|
显示全部楼层
sky5566 发表于 2012-10-26 02:49 ![](static/image/common/back.gif)
你先了解非阻塞與阻塞問題
(1)
num
先谢谢您了呵,第一个问题了解了。
第二个问题我简化一下:
请您先看这个最简单的计数器程序(我下载试了试正确的):
module part_1(
cout,rco,
clk,reset_n
);
input clk;
input reset_n;
output reg [3:0] cout;
output reg rco;
always @(negedge clk or negedge reset_n)
begin
if(!reset_n)
begin
rco =1'b0;
cout =4'b0000;
end
else if(cout == 4'b1001)begin
cout=4'b0000;
rco=1'b1;
end
else
begin
cout=cout+1;
rco=1'b0;
end
end
endmodule
然后,我不明白的是:verilog语言书上在定义reg类型时,默认都是x(夏宇闻老师翻译的那本国外教材书上有),比如这个cout,我们并没有给它初始位0,下载后也没有对rst_n进行复位,如果按照默认值x,那这个计数器不是不能正常工作了吗?
可能就这个点我理解得不够好,才对第一个问题产生更多的疑惑,第一个问题中num跟计数器cout一样没有初始化,而且我发现关于这些计数的reg类型变量在很多程序中都没有初始化,程序都能正常运行,这是为什么?求大神指教。
|
|