VHDL 包括类似access
,new
和的命令,这些命令shared variable
永远无法综合,或者while
仍然loop
可以综合但不建议使用。
那么,如果它们无法合成并且仅限于模拟,它们为什么还要存在呢?
VHDL 包括类似access
,new
和的命令,这些命令shared variable
永远无法综合,或者while
仍然loop
可以综合但不建议使用。
那么,如果它们无法合成并且仅限于模拟,它们为什么还要存在呢?
VHDL 的那些部分存在用于测试平台。
能够在 VHDL 测试平台下模拟 VHDL 设计是 VHDL 开发过程中必不可少的一步。
验证是在测试台下证明设计,该测试台检查设计的预期行为并抱怨与它的偏差。
始终建议进行验证,即使对于小型或微型设计也是如此,但通常是强制性的。这可能符合您工作的公司的规则,也可能符合军事、航空、安全等市场的要求。
验证对于 ASIC 开发至关重要,因此几乎总是强制性的。
因此,支持复杂和彻底的测试平台的能力在 VHDL 中并不是“好东西”——它与支持综合一样重要。
在在 CPLD 或 FPGA 中尝试之前,我总是会在测试平台下模拟和证明 VHDL 设计。模拟是您旨在发现和解决问题的地方。硬件测试的目的是证明设计,而不是调试它。
硬件描述语言 (HDL),其中 VHDL 和 Verilog 是主要示例,用于与硬件系统的定义、设计和验证相关的各种目的。
描述每个目的:
组件或系统的行为模型。模型对外部刺激的响应定义了设计,但并不要求能够从这个描述级别直接构建(综合)硬件。例如,您可以有一个 RAM 组件的 VHDL 行为模型,对仿真很有用,但 RAM 的实际实现可能是独立的,例如与晶体管级布局无关。
用于直接控制硬件的执行。大多数数字 IC 都是在寄存器传输级 (RTL) 设计的,采用 Verilog 或 VHDL。有电子设计自动化 (EDA) 工具可以对这些设计进行综合、布局和布线,从而以可以由半导体工厂制造的形式实现它们。
为了验证设计的正确性,设计包含在“测试台”中,该测试台还可能包括设计将与之通信的其他组件。正如 TonyM 所描述的,测试台将提供刺激和检查响应。其他组件的测试平台和模型将在 HDL 中定义,但它们不必是可综合的。