<= a + 1是VHDL的一个好习惯吗?

dor*_*mon 2 hardware vhdl hdl modelsim xilinx

如果我在VHDL过程中编写语句来指定a为+ 1,这是一个好习惯吗?

我对此感到困惑,因为模拟器工作正常,但当我尝试在FPGA中实现它时,综合工具抱怨创建锁存器.

这是什么意思?

bal*_*HDL 7

你应该只在一个定时的过程中做这样的陈述.如果你想让它合成,建议进行额外的初始化(重置).可能看起来如下:

process(clk, reset)
begin
   if reset='1' then
      a <= 0;
   elsif rising_edge(clk) then
      a <= a + 1;
   end if;
end process;
Run Code Online (Sandbox Code Playgroud)


Bri*_*ond 5

在一个定时的过程中,这很好.其他地方,可能不是.