两种模拟相同设计的综合-SET clk中有和没有第二个

时间:2019-01-08 13:53:10

标签: verilog hdl vivado synthesis synplify

我在verilog中有两个相同的(通过仿真)触发器过程。

首先只是带有异步复位(CLR)和时钟(SET)的寄存器的标准描述,数据绑定到1:

always @(posedge SET, posedge CLR)
if (CLR)
    Q <= 0;
else
    Q <= 1;

第二个与上述相同,但第二个条件是设置信号:

always @(posedge SET, posedge CLR)
if (CLR)
    Q <= 0;
else if (SET)
    Q <= 1;

这两种触发器在仿真中的实现之间没有区别。但是,verilog标准对这种情况有何说明?综合测试后,这些测试是否应该与它们的网表相同?

1 个答案:

答案 0 :(得分:0)

第二个示例中的“ if(SET)”是多余的,将在综合中进行优化。由于always块将仅在SET或CLR的姿势上输入,因此else语句暗示发生了SET的姿势。

顺便说一句,第一个示例是用于编写触发器的更受接受的版本。我还没有看到第二个版本将其用于运输设计。