liu_xf 发表于 2010-6-11 15:00:16

关于always 的敏感信号列表

always 后面插号内是敏感信号列表,当敏感信号每变化一次该模块就执行一次

现举一例

integer a,b;

always @(posedge clk )
begin
       
    if(~ca)begin
       a <= 32'h0;
       b <= 32'h0;//(1)
    end
    else if(~cb)begin
       a <= d1;
       b <= d2;    //(2)
    end
    else begin
       a <= d3;
       b <= d4;    //(3)
    end   
end

ca和cb是外部事件,你可以将它看做一个按键,当ca电平为0时,按理说a 和b应该是0,但有时候会出现一个任意的值,约二三十次会有一次
a 和B的值我是将它读出来在液晶上实时显示的

后来我将ca 和cb加到敏感信号列表后,改成如下
always @(posedge clk or negedge ca ornegedge cb) 就可以了

不知为什么上面那样不行

liu_xf 发表于 2010-6-11 16:05:06

always @(posedge clk )

always @(posedge clk or negedge ca ornegedge cb)

的区别在于,一个是同步,一个是异步

但不至于为影响结果啊

tear086 发表于 2010-6-11 16:59:01

高。

我的意思,连rtl综合视图都不看,就直接结论。真的很高。
那个下降沿检测也不错,不过消抖了更好。

liu_xf 发表于 2010-6-11 17:10:42

真不知你想表达什么,这样的帖还是不要回复的好

与主题似乎没什么关系

liu_xf 发表于 2010-6-11 22:27:42

回复【2楼】tear086 .COM 缺氧
高。
我的意思,连rtl综合视图都不看,就直接结论。真的很高。
那个下降沿检测也不错,不过消抖了更好。
-----------------------------------------------------------------------
奇怪

你咋知道我没看RTL视图

mindrover 发表于 2010-6-12 01:00:58

把a和b改成32位寄存器试试。

liu_xf 发表于 2010-6-12 08:20:39

不知是不是integer 的原因

reg和integer综合出来的rtl是一样的。

tear086 发表于 2010-6-12 08:52:40

回复【6楼】liu_xf 新发
-----------------------------------------------------------------------

./bbs_upload/files_30/ourdev_561281.png


参考:Summary for IEEE Verilog 1363-2001.pdf(文件大小:670K)

flixx 发表于 2010-6-12 16:56:02

回复【6楼】liu_xf 新发
-----------------------------------------------------------------------

这样试试

integer a, b;

liu_xf 发表于 2010-6-13 08:06:40

感谢楼上各位的回复,我测试一下,完了把结果发上来
页: [1]
查看完整版本: 关于always 的敏感信号列表