VHDL中的行为代码和结构代码有什么区别?


回答 1:

行为VHDL代码供用户告诉合成器(Xilinx ISE,Quartus II,RTL编译器等)根据代码中编写的行为合成任何数字逻辑电路以执行特定功能。 因此,合成器将根据代码的行为来确定电路的外观,而用户只关心代码的功能。

另一方面,结构代码供用户告诉合成器准确合成他们想要和设计的电路。 因此,用户可以完全控制电路看起来如何执行他们想要的功能。 通过使用结构代码,用户不仅要照顾功能,还要照顾电路的结构以进行进一步的优化(速度,面积等)。

例如,您想要实现两个数字A和B的加法。使用行为代码,只需编写:S <= A + B; 然后,合成器将合成或选择执行加法的任何结构。 它可以是普通的串行加法器,也可以是执行加法的任何方法。使用结构代码,您将设计要应用于执行加法的结构。 例如,为了提高加法器的速度,您可以设计一个进位提前加法器,然后为其编写结构代码。

检查完整加法器的完整示例行为和结构VHDL:完整加法器的VHDL代码


回答 2:

任何HDL中的结构代码都是描述接线和物理内容的内容。 行为代码用于描述电线之间连接的事物的模型。

Verilog略有重叠,因为基本元素的行为代码在C中并内置在模拟器中,而UDP是行为代码的更简单的表驱动版本。