CCIE
发表于 2010-6-28 10:08:36
原帖由 rangertang 于 2006-9-21 13:07 发表<br>
module example( Out_A , Out_B , Sign_In , Sel , En );<br>
<br>
output Out_A;<br>
output Out_B;<br>
input Sign_In;<br>
input Sel;<br>
input En;<br>
<br>
assign Out_A = En & Sel & Sign_In;<br>
assign Out_B = En & ~ ... 嗯,很不错!<br>
其实你写了一大堆的always模块,可能最后综合成的就是这样两个与门。
CHAN
发表于 2010-6-28 10:58:13
六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换
FFT
发表于 2010-6-28 12:38:27
看来要好好努力了 啊
VVC
发表于 2010-6-28 13:06:43
高人啊 佩服佩服
usb
发表于 2010-6-28 15:05:40
输入信号没有在敏感表中
VVC
发表于 2010-6-28 17:01:08
要不就写成assign的blocking赋值,要不就posedge clk的nonblocking赋值,不要混淆
longtim
发表于 2010-6-28 17:22:56
使用always块描述combinational logic时应该使用blocking assignments,
注意:敏感表要列出rhs expression中的相关变量,
否则,仿真和综合结果可能不一致。
always @ (en or sel or sign_in)
begin
if (en) begin
if (sel) begin
sign_out_a = sign_in;
sign_out_b = 0;
end
else begin
... // else分支不能省略,否则,综合时会生成latch
end
end
else
... // else分支不能省略,否则,综合时会生成latch
end
描述sequential logic时使用nonblocking assignments,敏感表中一定要有posedge/negedge。
以上说明是针对RTL描述而言的!
对于behavial的描述,blocking/nonblocking使用就非常灵活,
完全依赖对概念理解,理解不深就比较容易出错,
所以建议写behavial也遵循以上rules
longt
发表于 2010-6-28 17:36:03
欣赏六楼的。。
ANG
发表于 2010-6-28 17:47:48
受教了,受教了,
CTT
发表于 2010-6-28 18:54:01
原帖由 jennyjiao 于 2006-9-22 09:55 发表<br>
六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换 这个和阻塞赋值和非阻塞赋值偶什么关系吗