集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1124|回复: 10

那些让FPGA初学者纠结的仿真

[复制链接]
zxopenljx 发表于 2020-11-21 21:47:52 | 显示全部楼层 |阅读模式
原文链接:https://mp.weixin.qq.com/s/rP4Wp3UyTmwHCyF_jstzRw
初学者学习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内部的各种连线资源,合理正确地连接各个元件。时序仿真将布局布线的延时信息反标注到设计网表中进行仿真。此时的仿真延时文件信息最全,包含门延时和布线延时,所以布线后仿真最准确,能较好地反映芯片的实际工作情况。
广告
Verilog数字系统设计教程(第4版)(十一五)
作者:夏宇闻 韩彬

当当

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

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

  而后仿真又可以分为两步,第一步是布线前 仿真,也就是综合后仿真其目的主要是验证逻辑功能是否正确,综合时序是不是正确;第二步是布线后 仿真,也就是后仿真=时序仿真=布局布线后仿真=门级仿真,这一级的仿真最接近于芯片,里面加入了线延迟,可见理解方法七的解释。
hellokity 发表于 2020-11-26 10:37:41 | 显示全部楼层
那些让FPGA初学者纠结的仿真

点评

海!外直播 bitly.net/nnnvv 禁闻视频 bitly.net/nsssn 某省长说:“请全省人民对我严格监督。” 网友评论:人民拿什么监督你?报纸归你管,电视归你管,网络归你管,我这条信息都归你们管,说删就删,从来也没跟我商   发表于 2024-4-8 23:56
海!外直播 bitly.net/x8888 禁闻视频 bitly.net/jjaaaa 我们国内的重要消息,大多出口转内销。事实上,当一个公民有权利了解真相,我们才有资格被称为国家的主人。中国是我们的祖国,但,我们却是祖国的陌生人..  发表于 2024-4-8 17:36
海!外直播 bitly.net/55cc55 禁闻视频 bitly.net/55ff55 这台湾的蔡英文把执政党赶下台在赵国是颠覆国家政权罪的行为,看来全国媒体都要对台湾大选和蔡英文要好好批判一番...呵呵  发表于 2024-4-8 04:46
海!外直播 bitly.net/vyyyv 禁闻视频 bitly.net/xuuux 专家说:未来十年,中国癌症将现井喷。33%的家庭,将因此耗尽所有积蓄。1/4中国人喝不上合格水;全球空气污染最严重的城市,一半以上在中国。生命可贵!看这个..  发表于 2024-4-7 22:23
海!外直播 bitly.net/nnnxx 禁闻视频 bitly.net/hhxhh 查了下法西斯的定义:“反对民主主义和自由主义,主张建立以超阶级相标榜的集权主义统治,实行全面统制和恐怖镇压;进行由政府全盘计划经济..”觉得赵国反对啥?  发表于 2024-4-7 09:28
 楼主| zxopenljx 发表于 2024-4-6 13:42:09 | 显示全部楼层
那些让FPGA初学者纠结的仿真
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-27 05:24 , Processed in 0.068581 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表