我有一个组合代码,在那个代码中我想在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 cycle it should go to 0 ;
//help is required over here
out_flag = 0;
end
答案 0 :(得分:1)
你不能以纯粹的组合可综合方式来做。你需要一个触发器(可以合成)和一个复位来将信号设置为一个已知值,比如说0.因此,你可以在复位后延迟1个时钟周期,如下所示:
always @(posedge clk) begin
if (reset)
out_flag <= 0;
else
out_flag <= 1;
end
您需要确定准确的时间并根据具体情况使用正确数量的触发器。您可能希望进行异步重置而不是同步,如上例所示。