module testmod(
input CLK,
output wire [1:0]out
);
reg [1:0]acc;
always@(posedge CLK)begin
acc=acc+2'd1;//这里与acc<=acc+2'd1;综合的电路一样
end
assign out=acc;
endmodule
上述代码综合后的电路图为:

这里之所以不是下面的电路:
FPGA中的LUT是SRAM,每个存储单元只存储一个bit,SRAM接受多个输入,多个输入构成一个地址,从SRAM中选择一个bit输出。所以FPGA中的LUT是多输入单输出的,上面电路中的2输出LUT是不存在的。
分析上面的电路不能通过分析组合逻辑中的加法器那样去分析,而应通过查看LUT的真值表,通过真值表分析。VIVADO中可以查看LUT的真值表。上面vivado综合的电路中,LUT1的真值表为:
LUT2的真值表为:

这段Verilog代码描述了一个模块,使用LUT实现逻辑功能。不同于常规的组合逻辑加法,它强调了在FPGA中LUT作为多输入单输出的SRAM特性,真值表分析是理解和验证电路的关键。VIVADO工具提供了查看LUT真值表的功能。
823

被折叠的 条评论
为什么被折叠?



