利用ModelSim进行的功能综合后时序仿真

上传人:s****a 文档编号:159064823 上传时间:2022-10-08 格式:DOCX 页数:6 大小:14.02KB
返回 下载 相关 举报
利用ModelSim进行的功能综合后时序仿真_第1页
第1页 / 共6页
利用ModelSim进行的功能综合后时序仿真_第2页
第2页 / 共6页
利用ModelSim进行的功能综合后时序仿真_第3页
第3页 / 共6页
点击查看更多>>
资源描述
利用 ModelSim 进行的功能仿真,综合后仿真, 时序仿真功能仿真,就是在理想状态下(不考虑延迟),验证电路的功能是否符合设计的要求。功能仿真需要:1. TestBench 或者其他形式的输入激励2 .设计代码(HDL源程序)3 .调用器件的模块定义(供应商提供,如FIFO, RAM等等)值得一提的是,可以在ModelSim直接编写TestBench,使用View-Source-Show language templates.综合后仿真(门级仿真),实际上就是将对综合后的门级网表进行仿真,只考虑门延 迟,而没有加入时延文件。在功能仿真之后检验综合的结果是否满足功能要求。综合后仿真需要:1. 综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的 HDL 源代码.2. 测试激励3. 兀件库 Altera 的仿真库位置为*:alteraquartusedasim lib所谓时序仿真,就是在综合后仿真的基础上加上时延文件(Sdf文件),综合考虑了路 径延迟和门延迟的情况,验证电路是否存在时序违规。时序仿真需要:1. 综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HDL 源代码.2. 测试激励3. 元件库 Altera 的仿真库位置为*:alteraquartusedasim_lib4. 较门级仿真还需要具有包含时延信息的反标记文件*.sdf可以有两种方法实现门级仿真,或时序仿真。1. 工程编译成功后,自动启用ModelSim来运行门级仿真,前提是要在Quartus II 的Options中设置好ModelSim的路径(和有些参考 PDF 上说的环境变量好像无关,至少我用的 Quartus II 9.0 Web Edtion是这样的)具体方法是,进入Quartus9.0-Tools-Options, 在 Categroy 里选中 General 下的 EDA Tool Options,在 ModelSim右边的 Location ofExecutable中双击来改变路径,就并且在工程中设置了自动启动ModelSim,就可 以自动启用了。1. 在EDA Tool Settings,首先将仿真工具设置为ModelSim,然后点击让它自动 启动。2. NativeLink settings 中选择 testbench,完成相关的设置,例女口 test bench name, toplevelmoduleintestbench, Designinstancenameintestbench, 仿真时间,然后编译时会自动启动ModelSim然后完成所有操作,大概这就是Altera所 指的和很多EDA工具的无缝连接。另外一种方法,则是现在 quartus ii 中生成门级网表和延时文件,然后调用ModelSim进行仿真1. 在quartus ii设置仿真工具为ModelSim,这样设置完成后,在当前目录下会生 成一个 simulation 的目录,该目录下有一个 simulation 文件夹,里面包含了网标文件和时延反标文件, vhdl 语言对应的 是网表文件为*.vh o,时延文件为*.sdo。Verilog 贝I为*.vo, *.sdo。2. 建立库并映射到物理目录,编译TestBench,执行仿真。对库的理解:我想所谓库,实际上就是一个代替文件夹的符号,区别就是,库中的文件的表述皆是 经过了编译的实体或者module, 切操作都在库中进行。ModelSim有两种库,一种是资源库,一种是工作库(默认名为work,保存当前工程 下已通过编译的所有文件,资源库放置 work 库已编译文件所要调用的资源)。所以编译前,一定要有 work 库,而且只能有一个。3 .加入仿真库,可以看出,门级仿真和时序仿真都需要仿真库,在ModelSim中可以 通过两种方法将 Altera 的仿真库调入进来,一种是新建一个库,用来存放仿真是需要调用的文件,另一种是将Altera 的器件直接编译到 work 这个 library 中去。3.1 新建一个库,用来存放调用的仿真库文件在Modelsim中建立一个新的project,将*.vo,*.v(TestBench),所用器件的库, 一起加入到project当中去。新建一个库,名字实际是都可以的,当然将名字命名为所用的altera库的名字 比较合适。最重要的是,要对加入的所用期间的库进行右键属性,在General选项卡中,要设置compile to library 到你自己新建的这个库中去,否则的话,编译的文件就都会出现在你的工作库当中,可见新建的第二 库就是作为资源库来使用的。至此,我们已经完成了所有的准备工作,点击你的工作库,然后选择 Simulate 中的 startsimulation,在library标签中,将自己编译的资源库加入。在design标签中选 择 testbench 作为设计单元,要说明的是,如果你没有使用work库的默认库名,而是自己命名了,那么此时 你可以使用 work 库,也可以使用自己命名的库,二者是等价的。到这里,就可以完成了门级仿真,如果是时序 仿真,那么还需要将反标记*.sdo文件加入,具体方法是单击start simulation后,在SDF标签中可以 加入时延反标记文件。但要注意须在Apply to Region中将里面的改写为testbench名(这个很重要,是testbench文件名,而不是顶层module名)/testbench中实例化顶层的名称,如 木疋用模板创建的testbench,这个顶层名称叫做DUV(Design Under Test/Verification,待测设计)。当然了,不是一帆风顺的,就在加入了 SDF文件之后,准备开始的时候,出现了 ERROR, vsim-sdf-38 94:Compiled SDF file was not found.不过幸好很快找至U了解决办法,那 就是将你的 testbench 和*.sdo 文件放在同一个目录下,这种错误就可以解决了,默认的会在当前工程下的simulation/modelsim中。3.2将库文件直接编译到work的library中,这种会比3.1简单一些,不用建立 库,直接编译至工作库就可以了。如何对Altera的megacore进行仿真呢?基本和上面一致,一般要用到仿真库中的 220model.v 和altera_mf.v。我只找了一个很简单的计数器的例子来试,但发现了一个很有意思的现象,也是原来 我没有考虑到的,如果你想做功能仿真,那么由于你的设置中包含了 Altera公司的一些 原语,比如lpm_XXXX等等,那么就需要将220model或者altera_mf.v编译进你的工 程,但是再做时序仿真或门级仿真的时候却不需要这些,因为你可以自己去看一下生成的门 级网表(*.vo),里面没有任何的原语,但是需要库文件和反标记文件(如果做时序仿真 的话需要反标记文件)。补充:我正在为怎么每次都要重新选库文件困扰的时候,实际上发现那是因为我右键 了文件,选择了 simulate,如果还是点work库,然后start simulation就可以不 用再次选择库了。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!