VHil等效于Verilog @(posedge clk)

sem*_*tic -1 verilog fpga vhdl

我不熟悉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;
Run Code Online (Sandbox Code Playgroud)

这里有两个长椅的链接.

Verilog工作台 - http://a.pomf.se/fvamqd.v Vhdl工作台 - http://a.pomf.se/riolvf.vhd

欢迎任何意见,提前谢谢.

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

dav*_*_59 6

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

Verilog的:

always @(posedge signal)
begin
...
end
Run Code Online (Sandbox Code Playgroud)

VHDL:

process(signal)
begin
  if rising_edge(signal) then  -- Older VHDL if (signal'event and signal = '1')
  ...
  end if;
end process;
Run Code Online (Sandbox Code Playgroud)

嵌入块中时,请使用以下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;
Run Code Online (Sandbox Code Playgroud)

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