作者BaChi5566 (巴奇56)
看板Electronics
标题[问题] async reset一个问题
时间Tue Jul 16 17:20:40 2019
有个verilog 问题困扰我很久了
就是一般always block
如下举例
假设有两个1bit reg a,b
always @(posedge clk or negedge reset)
if (~reset)
a <= 1'b0;
else
a<=b;
那当reset是1时
会将 “clk rising 前”的b值给a
那为什麽当negedge reset产生时
以上面的推论
我们看到的应该是
reset falling前的值 即reset是1的情况
(这样就不会进入if的第一个条件)
麻烦各位帮忙解答一下
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.25.96 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1563268842.A.575.html
※ 编辑: BaChi5566 (101.12.25.96 台湾), 07/16/2019 17:23:33
※ 编辑: BaChi5566 (101.12.25.96 台湾), 07/16/2019 17:24:07
※ 编辑: BaChi5566 (101.12.25.96 台湾), 07/16/2019 17:24:35
※ 编辑: BaChi5566 (101.12.25.96 台湾), 07/16/2019 17:24:56
1F:推 tkhan: 这不是C喔,而且看不懂你在讲啥 07/16 18:08
2F:→ haswell425: 自己画画看波形 07/17 08:46
3F:推 bakerly: 顺序应该是edge发生->进入always->检查条件->执行敍述。 07/17 13:32
4F:→ bakerly: 而不是你讲的把clk rising前的b给a。 07/17 13:32
5F:推 Baneling: 不知道该说语法不好还是电路不好... 你自己都说非同步了 07/17 23:16
6F:→ Baneling: reset跟clk就没有关系呀 (其实在timing上还是有...) 07/17 23:18
7F:→ Baneling: 那由negedge reset触发条件时为何reset要为1? 07/17 23:19
8F:推 ViewMoon: clk rising 前 (X) -> clk rising 时 (O) 07/23 07:55
9F:→ ViewMoon: reset falling前的值 (X) -> reset falling 时的值 07/23 07:56
10F:→ ViewMoon: 即reset是1的情况 (X) -> 即reset是0的情况 (O) 07/23 07:56
11F:→ ViewMoon: reset is edge-trig in RTL simulatoin (O) 07/23 07:57
12F:→ ViewMoon: reset is level-trig in physical device (O) 07/23 07:58