如何在组合块verilog中给出1个时钟周期的延迟
我有一个组合代码,在这个代码中,我想在1个时钟周期后关闭一个信号,也就是说,最初它是1,在一个时钟周期后它应该是0。是否有任何方法可以做到这一点,如果可能的话,它应该能够在FPGA上合成。 代码如下:如何在组合块verilog中给出1个时钟周期的延迟,verilog,fpga,xilinx,Verilog,Fpga,Xilinx,我有一个组合代码,在这个代码中,我想在1个时钟周期后关闭一个信号,也就是说,最初它是1,在一个时钟周期后它应该是0。是否有任何方法可以做到这一点,如果可能的话,它应该能够在FPGA上合成。 代码如下: always@(ao or bo or co or dod or eo or fo or go or ho) begin temp_out = {ho,go,fo,eo,dod,co,bo,ao}; out_flag = 1; //after one clock c
always@(ao or bo or co or dod or eo or fo or go or ho)
begin
temp_out = {ho,go,fo,eo,dod,co,bo,ao};
out_flag = 1;
//after one clock cycle it should go to 0 ;
//help is required over here
out_flag = 0;
end
你不能用一种纯粹的组合合成方式。您需要一个触发器(可合成)和一个复位来将信号设置为已知值,比如0。因此,您可以在复位后延迟1个时钟周期,如下所示:
always @(posedge clk) begin
if (reset)
out_flag <= 0;
else
out_flag <= 1;
end
始终@(posedge clk)开始
如果(重置)
外旗