我有一个组合码,在这个码中,我想在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
发布于 2017-07-31 13:23:22
你不能以一种纯粹的组合可合成的方式来做这件事。您需要一个触发器(这是可合成的)和一个重置来将信号设置为一个已知的值,例如设置为0。因此,您可以在复位后延迟1个时钟周期,如下所示:
always @(posedge clk) begin
if (reset)
out_flag <= 0;
else
out_flag <= 1;
end
你需要找出准确的时机,并根据你的特定情况使用正确的flops数量。您可能希望使用异步重置而不是同步重置,如上面的示例所示。
https://stackoverflow.com/questions/45413671
复制相似问题