在合成时,以下编码风格是否有任何区别?

时间:2016-11-24 06:10:07

标签: verilog xilinx synthesis

我正在尝试在我的项目中实现一个模块,我需要最终值稳定一段时间,因此实现如下。它们都在模拟中显示相同的结果。该工具会生成相同的硬件还是不同的硬件?

always @(posedge clk) begin
if(en)
    count <= count + 1;
else
  begin
    a <= count;
    count <= 0;
  end

if(count == 0) b <= a;

end

上面的编码风格和下面的编码风格有什么区别?合成时会有什么不同吗?

always @(posedge clk) begin
    if(en)
        count <= count + 1;
    else
      begin
        a <= count;
        count <= 0;
      end
end 

always @(posedge clk) begin
    if(count == 0)
        b <= a;
end

我正在使用Vivado 2015.4工具进行综合。

2 个答案:

答案 0 :(得分:0)

  

该工具会生成相同的硬件还是不同的硬件?

点击Vivado的“开放式精心设计”,亲身体验!

但你会发现:它们是等同的。没有任何区别。

答案 1 :(得分:0)

它将生成相同的硬件输出。将时钟语句拆分为一个或多个always语句并不重要,只要它们在功能上完全相同。