请问这些verilog语句综合成什么语句
如果只能用latch, DFF, AND, OR 和 NOT 这些门和器件。如下Verilog代码会被综合成什么?
(a) always @(select or A or B)
if(select==1) OUT=A;
else OUT=B;
(b) always @(posedge clk)
if(select==1) OUT=A;
else OUT=B;
(c) always @(select)
if(select==1) OUT=A;
else OUT=B;
我认为(a)是只用2个AND,一个NOT,还有一个OR在输出端,就是一个纯组合电路。
我觉得(b)是(a)的基础上在输出端又加了一个DFF(不知道对不对)。
(c) 我不知道会综合成什么?
请大侠指点。
综合一下就知道了,我只是觉得always后面的begin end没有了,很不爽
可以看下RTL即
不同的综合工具往往结果是不同的。动手试一试就知道了。
1.纯组合逻辑,没有锁存
2.时序的
3.锁存+门
多谢指点,请问第三个问题中,锁存器和各种门具体应该怎么相连呢?
谢谢,我不太明白这句话的含义,请明示
C是锁存器嘛
我把如下代码写到ISE中,用view RTL schematics看图,发现第三个和第一个一样的?
请问这是为什么?感觉第三个明显就是错的啊。
module ABC1(OUT,A,B,Select);
output OUT;
input A,B,Select;
reg OUT;
always @(Select or A or B)
if(Select==1) OUT=A;
else OUT=B;
endmodule
module ABC2(OUT,A,B,Select, clk);
output OUT;
input A,B,Select,clk;
reg OUT;
always @(posedge clk)
if(Select==1) OUT=A;
else OUT=B;
endmodule
module ABC3(OUT,A,B,Select);
output OUT;
input A,B,Select;
reg OUT;
always @(Select)
if(Select==1) OUT=A;
else OUT=B;
endmodule
(a)2选1多路选择其器,小编正解;
(b)很奇怪的写法,貌视很难理解;如果是多路选择器加D触发器,一般写成非阻塞赋值吧;怀疑不同的综合工具不一样;
(c)锁存器。
(c)就是锁存器,baidu一下经典电路就知道了,我也不知道!
自己琢磨就差不多能理解了,自己想到的才是自己的东西
ABC1 和 ABC3是一样的。 综合出来的结果是一样的。
With ABC3, always block is only triggered by select toggling.
If select keeps high, A toggles, out will not follow A.
So the simulaition result of RTL code is different from that of post-SYN netlist.
正确的
