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的真值表为: