Verilog@(posedge clk)的VHDL等效语言

Verilog@(posedge clk)的VHDL等效语言,vhdl,verilog,fpga,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; 重复(9)@(posedge clk); 将Verilog的@po

我不熟悉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;
重复(9)@(posedge clk);

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

Verilog:

always @(posedge signal)
begin
...
end
VHDL:

嵌入到块中时,使用
等待
语句:

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,这是针对后面的单个语句,或后面的单个开始/结束块。

删除
@(posedge-clk)
之后编码>这很有帮助。关于时钟问题有什么见解吗?假设你知道VHDL,你的clk_进程应该以你编写它的方式做什么?
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;