赞
踩
自己查的一些资料,整理记录一下。
Verilog 模型可以是实际电路不同级别的抽象。所谓不同的抽象级别,实际上是指同一个物理电路,可以在不同的层次上用 Verilog 语言来描述它, 如果只从行为和功能的角度来描述某一电路模块,就称为行为模块;如果从电路结构的角度来描述该电路模块,就称为结构模块。抽象的级别和它们对应的模块类型常可以分为以下 5 种:
系统级:对整个系统进行描述,只考虑输入和输出,可以理解为一个黑盒子模型。
行为级:Behavior,指的是仅仅描述电路的功能而可以采用任何verilog语法的描述方式,可以理解为黑盒子里的具体算法。
RTL级:Regiser Transfer Level,指的是用寄存器这一级别的描述方式来描述电路的数据流方式,可以理解为数学算法的物理实现。
门级:与门、或门、非门、异或门......等逻辑门级别的描述。一个逻辑网络是由许多逻辑门和开关所组成,因此用逻辑门的模型来描述逻辑网络是最直观的。
开关级:
(从行为和结构上看,红色为行为级,紫色为结构级)
基于 xilinx 的 EDA 软件 vivado 而言,其他 EDA 软件也类似,仿真可以分为以下五种:
behavioral simulation ----- 行为级仿真,通常称为功能仿真。
post-synthesis function simulation ----- 综合后的功能仿真。
post-synthesis timing simulation ----- 综合后带时序信息的仿真,综合后带时序信息的仿真比较接近于真实的时序。
post-implementation function simulation ----- 布局布线后的功能仿真。
post-implementation timing simulation ----- 布局布线执行后的时序仿真,该仿真时最接近真实的时序波形。
一、行为级仿真
在大部分设计中执行的第一个仿真将是 RTL 行为级仿真。这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。因此在设计的初期阶段不使用特殊底层元件即可以提高代码的可读性、可维护性,又可以提高仿真效率,且容易被重用。(绝大部分设计人员将这个阶段的仿真叫功能仿真!)
二、综合后门级功能仿真 (前仿真)
一般在设计流程中的第二个仿真是综合后门级功能仿真。绝大多数的综合工具除了可以输出一个标准网表文件以外,还可以输出 Verilog 或者 VHDL 网表,其中标准网表文件是用来在各个工具之间传递设计数据的,并不能用来做仿真使用,而输出的 Verilog 或者 VHDL 网表可以用来仿真,之所以叫门级仿真是因为综合工具给出的仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,所以为了进行综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置,不然仿真器并不认识其中的底层元件,无法进行仿真。Xilinx 公司的集成开发环境 ISE 中并不支持综合后仿真,而是使用映射前门级仿真代替,对于 Xilinx 开发环境来说,这两个仿真之间差异很小。
三、时序仿真 (后仿真)
在设计流程中的最后一个仿真是时序仿真。在设计布局布线完成以后可以提供一个时序仿真模型,这种模型中也包括了器件的一些信息,同时还会提供一个SDF时序标注文件 (Standard Delay format Timing Anotation) 。SDF 时序标注最初使用在 Verilog 语言的设计中,现在 VHDL 语言的设计中也引用了这个概念。对于一般的设计者来说并不需知道 SDF 。
总结
行为级仿真是必须的,它能够确保你所设计功能是正确的。综合后时序仿真是有必要的,能够排除大部分的时序问题。至于后仿真,只能是解决疑难杂症时再采取的大招,非常费时间,一般不建议做后仿真。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。