我不熟悉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代码吗?答案 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编写...时,这是针对后面的单个语句,或者是后面的单个开始/结束块。