简体   繁体   English

综合后FPGA如何在设计中推断VHDL状态

[英]How FPGA inferrs the VHDL constatns in the Design after synthesis

I am unable to identify the VHDL constants in the FPGA after synthesis. 综合后,我无法在FPGA中识别VHDL常数。 After Post synthesis I am able to identify my logic in the netlist. 经过后期综合后,我可以在网表中确定我的逻辑。 But not for the Constant parameters. 但不适用于Constant参数。 Did really constants will infer in the FPGA or not ? 真的常数会在FPGA中推断吗?

Synthetizer simplifies your design. 合成器简化了您的设计。
Synthetizer reduces logic equations to remove constants and use less LUTs. 合成器可简化逻辑方程式,以删除常数并使用更少的LUT。
So your constants are included in the LUTs. 因此,您的常数包含在LUT中。

An example, when you write : 一个例子,当你写:

constant C_CONSTANT : std_logic_vector(3 downto 0) := "1111"
...
if a = C_CONSTANT then
  b <= '1';
else
  b <= '0';
end if;

The logic equation is : 逻辑方程为:

   b = eq(a(0),C_CONSTANT(0)).eq(a(1),C_CONSTANT(1)).eq(a(2),C_CONSTANT(2)).eq(a(3),C_CONSTANT(3))  
=> b = (a(0).C_CONSTANT(0) + /a(0)./C_CONSTANT(0)).(a(1).C_CONSTANT(1) + /a(1)./C_CONSTANT(1)).(a(2).C_CONSTANT(2) + /a(2)./C_CONSTANT(2)).(a(3).C_CONSTANT(3) + /a(3)./C_CONSTANT(3))
=> b = (a(0).1 + /a(0).0).(a(1).1 + /a(1).0).(a(2).1 + /a(2).1).(a(3).1 + /a(3).0)
=> b = a(0).a(1).a(2).a(3)

The constant has faded away by logic simplification. 通过逻辑简化,常数已消失。 The synthetizer does exactly the same to gave you this result : 合成器的功能完全相同,可以为您提供以下结果:
在此处输入图片说明 with this truth table for the LUT : 用这个LUT的真值表:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM