【发布时间】:2012-06-29 19:20:54
【问题描述】:
以下是代码: 代码的目的是从寄存器之一计算前导零的数量。 我只想从寄存器有效位计算前导零一次。为此,我必须使用 always 块。现在我最初将 a 分配为 1'b1,后来我将其更改为 1'b0,以便块执行一次。如果我尝试模拟代码。 always 块不执行。但是,如果我稍后将 a 分配为 0'b1 (这没有任何意义)。代码在模拟器中正确模拟。但是如果我在 FPGA 套件上合成代码,它会给出一些错误的结果。请帮帮我
integer count,index;
wire a;
assign a=1'b1;
always@(a)
begin
for(count=0;count<7;count=count+1) begin
index=4*count;
if((significand[index ]==1'b0) && (significand[index+1]==1'b0) &&
(significand[index+2]==1'b0) && (significand[index+3]==1'b0))
lzero=lzero+1;
end
end
assign a=1'b0;
// If I use assign a=0'b1, it simulates properly,
// but 0'b1 doesn't make any sense, also If I keep 0'b1,
// I dont get proper result in actual synthesis onto the board.
实际上,我问这个问题的意图是,我应该如何使用“始终”块。 因为我只想执行这个块一次,所以我不需要总是设置“posedge clk”或“negedge clock”。所以我该怎么做 ?? 请帮忙,因为我的项目需要我 for 循环 if else 循环
的高使用率【问题讨论】:
标签: verilog