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 &amp; Sel &amp; Sign_In;<br>
assign Out_B = En &amp; ~ ... 嗯,很不错!<br>
其实你写了一大堆的always模块,可能最后综合成的就是这样两个与门。

CHAN 发表于 2010-6-28 10:58:13

六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换

FFT 发表于 2010-6-28 12:38:27

看来要好好努力了 啊

VVC 发表于 2010-6-28 13:06:43

高人啊&nbsp;&nbsp;佩服佩服

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>
六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换 这个和阻塞赋值和非阻塞赋值偶什么关系吗
页: 1 [2] 3
查看完整版本: verilog例子1X2的选通器