FPGA设计中的仿真有哪三种
FPGA设计中的仿真有:
1、RTL级行为仿真(又称作为功能仿真、前仿真);
2、综合后门级仿真;
3、时序仿真(又称为后仿真)。
第一个仿真可以用来检查代码中的错误以及代码行为的正确性,其中不包括信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。
第二个仿真绝大多数的综合工具除了可以输出一个标准网表文件以外,还可以输出Verilog或者VHDL网表,其中标准网表文件是用来在各个工具之间传递设计数据的,并不能用来做仿真使用。
输出的Verilog或者VHDL网表可以用来仿真,综合工具给出的仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,为了进行综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置,不然仿真器并不认识其中的底层元件,无法进行仿真。
第三个仿真在设计布局布线完成以后可以提供一个时序仿真模型,这种模型中也包括了器件的一些信息,同时还会提供一个SDF时序标注文件。
扩展资料
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列是可编程器件,与传统逻辑电路和门阵列相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O。
由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
参考资料:
推荐于2017-09-18 · 知道合伙人金融证券行家
在大部分设计中执行的第一个仿真将是RTL行为级仿真。这个阶段的仿真可以用来检查代码中的错误以及代码行为的正确性,其中不包括信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。因此在设计的初期阶段不使用特殊底层元件既可以提高代码的可读性、可维护性,也可以提高仿真效率,且容易被重用。
二、综合后门级仿真
一般在设计流程中的第二个仿真是综合后门级功能仿真。绝大多数的综合工具除了可以输出一个标准网表文件以外,还可以输出Verilog或者VHDL网表,其中标准网表文件是用来在各个工具之间传递设计数据的,并不能用来做仿真使用,而输出的Verilog或者VHDL网表可以用来仿真,之所以叫门级仿真是因为综合工具给出的仿真网表已经是与生产厂家的器件的底层元件模型对应起来了,所以为了进行综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置,不然仿真器并不认识其中的底层元件,无法进行仿真。Xilinx公司的集成开发环境ISE中并不支持综合后仿真,而是使用映射前门级仿真代替,对于Xilinx开发环境来说,这两个仿真之间差异很小。
三、时序仿真(又称为后仿真)
在设计流程中的最后一个仿真是时序仿真。在设计布局布线完成以后可以提供一个时序仿真模型,这种模型中也包括了器件的一些信息,同时还会提供一个SDF时序标注文件(Standard Delay format Timing Anotation)。SDF时序标注最初使用在Verilog语言的设计中,现在VHDL语言的设计中也引用了这个概念。对于一般的设计者来说并不需知道SDF文件的详细细节,因为这个文件一般由器件厂家提供给设计者,xilinx公司使用SDF作为时序标注文件扩展名,Altera公司使用SDO作为时序标注文件的扩展名。在SDF时序标注文件中对每一个底层逻辑门提供了3种不同的延时值,分别是典型延时值、最小延时值和最大延时值,在对SDF标注文件进行实例化说明时必须指定使用了那一种延时。虽然在设计的最初阶段就已经定义了设计的功能,但是只有当设计布局布线到一个器件中后,才会得到精确的延时信息,在这个阶段才可以模拟到比较接近实际电路的行为。
工作原理:
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
功能仿真和时序仿真。
也可以叫 RTL级仿真 和 Gate-level仿真
也可以叫 功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。
其实,就看你从哪里划分了。 很多资料中更多的是看到 前仿真和后仿真。
前仿: 针对RTL代码的功能和性能仿真和验证。
后仿:
1. pre-layout,这种是综合后仿真,主要是仿综合后的逻辑功能是否正确,综合时序约束是不是都正确。
2. post-layout,这种是布局布线后仿真,因为加入了线延迟信息,所以这一步的仿真和真正芯片的行为最接近,也是用于仿真芯片时序约束是否添加正确,布局布线后是否还满足时序。
ModelSim
sigaltap(altera)