第4节 综合与仿真
一个VHDL设计可以被仿真并用于检查起行为,或者同时被综合并用于搭建电路。这两种功能,仿真和综合,是不需要想关联的两种独立功能。在经典设计流程中,新的电路设计要先仿真,然后综合,并在综合之后再次仿真以保证综合器没有产生任何的错误。但是也可以消除其中一步的仿真或都消除,并直接进行综合。还可以在综合之前对新的电路设计进行很多很多次的仿真,这样就可以对不同的设计都进行研究。不管是哪种方式,第一步一般都是用CAD工具中所谓的分析器来检查VHDL源文件中的原理或语法错误。其分析成功的编码可以代入到仿真器和综合器中。

尽管在HDL环境中使用的仿真器和在原理图环境中使用的仿真器很类似,但它们之间也有一些关键的区别。一个区别就是在仿真之前,原理图必须要转为网络表,但是VHDL源文件可以直接仿真(或者这样表述,在综合之前,VHDL源文件就可以仿真)。这个区别是因为在原理图环境中,电路图中的一个符号实际上只是仿真路径中的一个图形占位符,而在HDL环境中,却没有这样的仿真路径-用户必须用合适的VHDL语法来描述每一项电路行为,而仿真器可以直接使用这样的描述。还有一点不同的是VHDL环境与其仿真环境更加紧密的结合在一起,而且有一些VHDL语言的特征也能使用在电路仿真过程中(后面将详细讨论)。
在给定器件或工艺中搭建电路之前,一定要先综合VHDL电路描述。典型的综合过程就是将行为描述转化为基本的逻辑架构,比如与,或,以及非操作(或者也许是与非NAND和或非NOR操作),然后将这些基本的操作映射到电路搭建目标器件中。比如,给定的设计可能映射到可编程器件中,像是FPGA;或者可能映射到基于半导体材料的全用户自主设计流程中。在综合步骤中就需要指定所要求的目标工艺。这就意味着同样的VHDL源文件可以用做创建设计电路原型并下载到FPGA中,或是用来创建制造用户自己的芯片。在不同的工艺中使用相同的的源文件来搭建电路,这一特征是使用HDL设计方法的最为有力的关键点。
右图所示的设计流程图也包括在基于HDL的设计流程中。注意,有两步仿真过程-在HDL编码结束后有一步,在设计综合完成后还有一步。第一步的仿真过程能够让设计者快速的检查其设计的逻辑行为,而先不考虑搭建实际电路的效率。这个前仿真允许在设计周期中,实际硬件方案最终确定、“锁定”之前,对不同电路结构进行比较和对比。后仿真步骤允许设计者验证其设计在综合,以及映射到给定硬件器件后仍然可以正常工作。
VHDL源文件没有直接包含关于如何搭建给定电路的任何信息。绝大多数设计要能够满足严格的时序要求,或是功耗限制,或是尺寸要求。在综合操作过程中,设计者可以在综合器中设置约束条件以优化其功率消耗,布局或是操作速度。综合后的仿真允许设计者能够对综合产生的物理电路进行检查,看其是否满足原始设计要求。如果不满足,那么设计者要重新定义约束条件并重新运行综合过程。
在过去的几年中,对于一个新电路设计来说,其工程精力主要是花费在了将高级别的电路描述转化为低级别的结构描述上-而这一工作现在可以用综合器来完成。尽管这一非常细节性的过程需要相当多的精力,但是它也让设计者能够对实际的物理电路有非常细节性的理解。使用综合器来完成这一过程使得设计者从繁杂的事务中解放了出来,但同时它也将设计信息的潜在价值消除了。为了帮助弥补这些损失的信息,设计者必须要很好的理解综合的全过程,并且要能彻底的分析综合后的电路并确认该电路满足所有的需求。讨论到这里,我们要再次提到必须要严格的使用仿真器以及其它的工具来重新检查设计。这些工具在后面的实验中将会用到。
VHDL源文件没有直接包含关于如何搭建给定电路的任何信息。绝大多数设计要能够满足严格的时序要求,或是功耗限制,或是尺寸要求。在综合操作过程中,设计者可以在综合器中设置约束条件以优化其功率消耗,布局或是操作速度。综合后的仿真允许设计者能够对综合产生的物理电路进行检查,看其是否满足原始设计要求。如果不满足,那么设计者要重新定义约束条件并重新运行综合过程。
在过去的几年中,对于一个新电路设计来说,其工程精力主要是花费在了将高级别的电路描述转化为低级别的结构描述上-而这一工作现在可以用综合器来完成。尽管这一非常细节性的过程需要相当多的精力,但是它也让设计者能够对实际的物理电路有非常细节性的理解。使用综合器来完成这一过程使得设计者从繁杂的事务中解放了出来,但同时它也将设计信息的潜在价值消除了。为了帮助弥补这些损失的信息,设计者必须要很好的理解综合的全过程,并且要能彻底的分析综合后的电路并确认该电路满足所有的需求。讨论到这里,我们要再次提到必须要严格的使用仿真器以及其它的工具来重新检查设计。这些工具在后面的实验中将会用到。


