VHil等效于Verilog @(posedge clk)

时间:2015-02-22 13:30:22

标签: vhdl verilog fpga

我不熟悉verilog。我尽力尝试转换它。

虽然模拟时钟从'0'变为'x',但这很奇怪。 我怀疑这部分是问题

repeat(9) @(posedge clk);
   DataIn_i <= 1'b1;
   DataIn_q <= 1'b1;
@(posedge clk);
  FillSel <= 1'b0;
  DataIn_i <= 1'b0;
  DataIn_q <= 1'b0;

这里是两个长椅的链接。

Verilog替补席 - http://a.pomf.se/fvamqd.v Vhdl替补 - http://a.pomf.se/riolvf.vhd

欢迎提出任何意见,提前谢谢。

编辑:任何人都可以解释上面给出的verilog代码吗?

1 个答案:

答案 0 :(得分:6)

将Verilog的@posedge clk)转换为VHDL取决于它在始终或初始块中的位置。如果它是块的第一个构造,你可以做

的Verilog:

always @(posedge signal)
begin
...
end

VHDL:

process(signal)
begin
  if rising_edge(signal) then  -- Older VHDL if (signal'event and signal = '1')
  ...
  end if;
end process;

嵌入块中时,请使用wait until语句:

Verilog: @(posedge clk);
VHDL:    wait until rising_edge(signal);

Verilog:  forever ...
VHDL:     loop ... end loop

Verilog: repeat(n) ...
VHDL:    for i in 1 to n loop ... end loop;

请注意,当我为Verilog编写...时,这是针对后面的单个语句,或者是后面的单个开始/结束块。