FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真

2013-05-04 18:08:11来源: 互联网
对于FPGA初学者而言,如何正确了解并理解FPGA的仿真是关键。应广大FPGA初学者和爱好者要求,电子发烧友网编辑根据多名在FPGA领域有过多年工作经验 的前辈介绍,特此为大家整理并分享以下关于FPGA各种仿真的简洁介绍。若大家有任何需要补充的或本文有任何不当之处,欢迎在评论中加以说明。同时也可加入电子发烧友网FPGA技术交流群(QQ:263281510)跟大家一起探讨,更欢迎大家加入电子发烧友网论坛参与互动。

FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真

  初学者学习FPGA,必定会被它的各种仿真弄的晕头转向。比如,前仿真、后仿真、功能仿真、时序仿真、行为级仿真、RTL级仿真、综合后仿真、门级仿真、布局布线后仿真等。

  Quartus和Modelsim软件的仿真形式

  Quartus II有两种仿真形式:1、功能仿真;2、时序仿真。

  Quartus II调用Modelsim的两种仿真形式为:1、RTL级仿真;2、Gate-level仿真。

  以下内容均经过资料查证,详细如下:

  理解方法一

  当用quartus进行仿真时,分为功能仿真(al)和时序仿真(Timing);

  当用Modelsim-Altera时,分为功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。其中,功能仿真又称为前仿真,布局布线仿真又称为后仿真。

  注:此处的功能仿真(RTL)与1中的功能仿真(al)是不一样的,前者是HDL级仿真,后者是门级网表的功能仿真。

  (1)当在quartus中调用Modelsim-Altera进行RTL仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:

    a) 编写源文件和测试文件;

    b) Assignment-》setting-》simulation-》不选中run gate leve simulation.。..。,选中nativelink-》添加测试文件,填写文件名;

    c) start analysis&elabration;

    d) Tools-》start RTL simulation;

  (2)综合后仿真一般不做。

  (3)当在quartus中调用Modelsim-Altera进行Gate-level仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:

    a) 编写源文件和测试文件;

    b)Assignment-》setting-》simulation-》选中run gate leve simulation.。..。,选中nativelink-》添加测试文件,填写文件名;

    c)全编译;

  评价:对于Assignment-》setting-》simulation-》“run gate leve simulation automatically after comlilation”选不选中根本没必要说明,完全可以不用选中,需要在设置处把测试文件testbench添加就可以了(不添加的话到时候 quartus调用出modelsim软件后需要手动添加编译,下面补充了)。如果你想RTL级仿真,那么对于quartus ii只需要进行分析综合就可以,然后点击Tools-》Run EDA Simulation tool-》Run RTL Simulation即可,软件会自动将源文件以及测试文件在modelsim软件里编译,仿真出波形。如果你想Gate-level级仿真,那么对于 quartus ii需要对工程进行全编译,然后点击Tools-》Run EDA Simulation tool-》Run Gate-level Simulation即可,软件会自动将网表文件.vo(verilog输出文件)或.vho(VHDL输出文件)以及测试文件在modelsim软件里编译,并将标准延迟文件SDF(.sdo)添加到modelsim里面,仿真出波形。

  补充:顺便说一句,如果没有在Assignment-》setting-》simulation把测试文件testbench设置好的话,不论是在RTL还是Gate-level级仿真,调用出modelsim后Quartus只把.vo或.vho文件送到modelsim里编译了,然后都需要手动把testbench编译进去的,并且将在Run Gate-level Simulation仿真的时候,.sdo文件也需要手动添加,相对来说比较麻烦。

  理解方法二

  Modelsim-Altera仿真一般分为功能仿真,前仿真(综合后仿真)与后仿真(时序仿真或布局布线后仿真)。

  根据设计需要,编写完代码(Verilog hdl,Vhdl,system Verilog )后,首先进行功能仿真,验证所写代码是否能完成设计功能;前仿真又称为综合后仿真,即在QuartusII完成综合后,验证设计的功能;后仿真又称为时序仿真或布局布线后仿真,是加入延时后的仿真。对于编译时间较短的小规模设计,一般只进行功能仿真与后仿真。

  理解方法三

  modelsim 是专门进行仿真的软件,可以分别进行前仿真和后仿真。前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与testbench。后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果抽象出来的门级网表、testbench和扩展为sdo或sdf的标准时延文件。sdo、sdf的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。

  理解方法四

  前仿真和后仿真的区别:前仿真就是指综合前的仿真,也就是行为级的仿真,如你在Modelsim直接写代码的仿真。后仿真指的是综合后的仿真,也就是功能仿真。比如你在Modelsim中用VHDL写了个计数器,行为级得仿真通过了,你把它加到quartus中或者其他的综合工具进行综合,综合完后生成功能网表,它把行为语言变成寄存器传送级语言,这时候你把它加到Modelsim中仿真叫后仿真,后仿真成功后,你还要在quartus中进行映射,布局布线,完后进行时序分析,生成时序网表,描述器件里门或者布线的延时,最后把延时网表和功能网表一起加到Modelsim中仿真叫门级仿真。

  门级仿真和时序仿真的区别:门级仿真是quartus生成的网表文件.vo。门级则不考虑互联延迟,二只考虑了器件的延迟。时序仿真是选择具体器件并布局布线后进行的包含定时关系的仿真,主要验证是否满足时间约束关系、延时、最大工作频率和消耗的资源等。时序仿真是需添加时延文件.sdo。

  理解方法五

  从广义上讲,仿真验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情况。从仿真的层次上划分,主要分为:

  前仿真,也称为功能仿真或行为级仿真。是指仅对逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;

  后仿真,也称为布局布线后仿真或时序仿真。是指提取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真,它是非常接近真实器件运行情况的仿真。 不同的工具和厂商还有一些其他的仿真过程,但大致属于这两类。

  针对FPGA设计的流程,有3个阶段可以进行仿真:

  第一阶段是寄存器传输级(RTL)仿真,此级仿真是对设计的语法和基本功能进行验证 (不含时序信息);

  第二阶段是针对特定的FPGA厂家技术的仿真,此级仿真是在综合后、实现前而进行的功能级仿真,功能级仿真一般验证综合后是否可以得到设计者所需要的正确功能;

  第三阶段是门级仿真,此级仿真是针对实现后的门级时序进行仿真,门级仿真体现了由于布局布线而产生的实际延时。

  理解方法六

  前仿: 针对RTL代码的功能和性能仿真和验证。

  后仿: 1. pre-layout,这种是综合后仿真,主要是仿综合后的逻辑功能是否正确,综合时序约束是不是都正确。

             2. post-layout,这种是布局布线后仿真,因为加入了线延迟信息,所以这一步的仿真和真正芯片的行为最接近,也是用于仿真芯片时序约束是否添加正确,布局布线后是否还满足时序。

  理解方法七

  功能仿真对设计输入的功能进行仿真,考虑的是理想化的情况,没有门延迟,没有布线延迟。

  综合的过程,将设计输入编译成由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接,即网表(Netlist),并输出edf、edn等标准格式的网表文件。综合后仿真把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时对电路带来的影响。

  实现与布线,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA/CPLD上。实现过程中最主要的过程是布局布线(Place and Route):布局将逻辑单元合理地适配到FPGA内部的固有硬件结构上;布线则根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确地连接各个元件。时序仿真将布局布线的延时信息反标注到设计网表中进行仿真。此时的仿真延时文件信息最全,包含门延时和布线延时,所以布线后仿真最准确,能较好地反映芯片的实际工作情况。

  以下是个人拙见:从以上分析,我们可以给文章刚开是提到的那九种仿真名词中的一些画等号了。

  前仿真=功能仿真=行为级仿真=RTL级仿真

而后仿真又可以分为两步,第一步是布线前 仿真,也就是综合后仿真其目的主要是验证逻辑功能是否正确,综合时序是不是正确;第二步是布线后 仿真,也就是后仿真=时序仿真=布局布线后仿真=门级仿真

[1] [2]

关键字:FPGA  核心知识  仿真

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2013/0504/article_18269.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
核心知识
仿真

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved