Verilog 下面的编码风格在合成时有什么不同吗?

Verilog 下面的编码风格在合成时有什么不同吗?,verilog,xilinx,synthesis,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 始终@(posedge clk)开始 如果(英

我试图在我的项目中实现一个模块,我需要最终的值在一段时间内保持稳定,因此实现如下。在仿真中,两者的结果是相同的。该工具将生成相同的硬件还是不同的硬件

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

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

end
始终@(posedge clk)开始
如果(英文)
计数
该工具将生成相同的硬件还是不同的硬件

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

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

end
点击Vivado中的“打开精心设计”,亲自查看


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

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