您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > nc后仿-综合后仿真
NC-Verilog综合后仿真后仿概述后仿是在前仿的基础上加入延时信息的功能仿真。同时验证了设计的时序以及功能都正确,并且确保后仿功能和前仿一致。实验任务掌握前仿与后仿的区别学会用NC-verilog对设计进行后仿在SimVision分析环境下对设计中的问题进行调试前仿与后仿的区别前仿和后仿所使用的仿真器是相同的,所需的流程以及激励也是相同的,不同点主要体现在以下几个方面:前仿与后仿的区别仿真所需文件不同作用不同波形不同仿真所需文件不同前仿是对设计.v文件以及测试.v文件进行仿真;后仿所需文件是综合时产生的.v网表文件,.sdf标准延时文件,测试文件以及工艺库.v文件。仿真所需文件netlist.v:DC综合生成的网表文件.sdf:DC综合生成的标准延时文件,这个文件中包含了设计的网表中单元和连线的延时信息。smic25.v工艺库仿真文件,包含综合目标库中元件的仿真模型信息后仿分类根据仿真对象分为两类:综合后仿真:对DC综合后的网表进行仿真,连线延时来自于通过线载模型的估计布局布线后仿真:对布局布线后的网表进行仿真,连线延时来自于版图的提取作用不同前仿又称功能仿真,是指在一个设计中,在设计实现前对所设计的逻辑进行的验证其功能是否正确的过程后仿又称时序仿真,是对综合后或布局布线后并且加入了延时信息的网表文件进行的仿真,目的是验证时序以及功能都正确波形不同前仿的波形输出结果相对时钟沿没有延迟。所有信号在时钟边沿上同时到来,没有竞争冒险情况。后仿因为加入了时序信息,波形输出结果相对时钟沿有一定的延迟。各个信号延时不同,在不同的时刻发生翻转。实验步骤延时反标编译设计网表以及顶层测试文件建立设计仿真调试延时反标后仿最重要的就是延时反标,只有将延时信息导入设计,仿真才能验证设计的时序施加命令对象:在仿真的顶层测试文件里声明反标时序信息,在本次试验中即spi_test1.v延时反标反标命令:$sdf_annotate(“spi_interface.sdf,ex1);其中,spi_interface.sdf为延时文件名,如果延时文件没有在目前工作目录下,还需加入具体路径名;ex1为测试模块例化设计模块时的实例名。在本次试验中,设计模块被例化三次,分别为ex1,ex2,ex3。延时反标在spi_test1中添加并保存一下语句:initialbegin$sdf_annotate(spi_interface.sdf,ex1);$sdf_annotate(spi_interface.sdf,ex2);$sdf_annotate(spi_interface.sdf,ex3);end点击进入nc_postsim文件夹双击spi_test1,打开并加入反标命令,退出时记得保存:File-save准备工作介绍在仿真已有的设计以前,必须编译和描述它。编译过程将把源文件中的用HDL编写的单元编译成内在的描述。描述设计将在设计的实例化,结构化信息的基础上建立设计的层次结构,建立信号的连接,计算所有对象的初始值。编译,描述和仿真自己的设计要用到以下的工具:Ncvlog:编译Verilog源文件。ncelab描述设计并且生成仿真的snapshot。ncsim对snapshot进行仿真仿真。启动NClaunch在拷贝了源文件的文件夹下面启动nclaunch-new&多步模式(MultipleStep)使用ncvlog和ncelab命令来编译和描述你的设计;单步模式(SingleStep)使用ncverilog命令。选择多步模式。选择多步模式Multiplestep选择creatcds.libfile,弹出第二个对话框,save,在新对话框中点击ok,之后在最初的对话框中点击Ok。nclaunch的主窗口:左边的窗口中显示了当前目录下的所有文件,在编译和描述后会在右边显示设计的库。在在仿真你的设计以前,必须用编译器编译源文件,并且用描述器(elaborator)把设计描述成snapshot的形式。NCLaunch的主窗口让你可以连接你编译和描述设计所需要的工具VHDL编译器(compiler)Verilog编译器(compiler)NC浏览(NCBrowse)描述器(Elaboretor)仿真/仿真器(Simulator)波形察看窗口(WaveformWindow)选中3个.v文件,分别是库模型smic25.v,网表文件以及顶层测试文件,点击进行编译,之后会在右边窗口中看到帽子图标(工作库)很多文件。现在要描述你的设计:要展开库(worklib),选择顶层单元(也就是测试中的module),然后选择描述按钮(elabrate)但是在这之前要设置参数,选中module后选择toolsElaborator进行设置。设置参数时注意将AccessVisibility按钮选中并且它的值是All,这个选项意味着全部存取(读,写,连接探测)来仿真目标,这样就可以在仿真的数据库里面探测目标和范围,调试你的设计。由于不是所有的代码都加了时间,为防止报错在此处加上时间。然后点击ok即可。与前仿不同的是,现在还要进行针对反标延时的设置,点击选项AdvancedOptions选择Annotation一项,在子菜单中选中除第一项的所有条目。在delaytypes中选择Maximum一项,SDF文件中对每项延时都有最大值,典型值,最小值,这里选择最大值用于仿真在上述步骤之后,会生成一个你的设计对应的snapshot,仿真就是针对这个Snapshot进行的。如图示,选中该文件,点击仿真按钮之后就启动了simulator,会弹出2个窗口:设计浏览器(DesignBrowser)和控制窗口(Consolewindow)设计浏览器(DesignBrowser)在启动的时候,控制窗口(ConsoleWindow)有两个窗口。SimVison窗口让你可以输入SimVison的命令;仿真器(simulator)窗口让你可以输入Tclsimulator命令。在你运行仿真的时候,控制窗口(consolewindow)同样会在SimVision和simulation窗口中显示消息。控制窗口(ConsoleWindow)在设计窗口中设置探测对象:比如要观察ex1中的信号,点击spi_test1图示旁边的加号,展开设计的层次结构。右键选中ex1不放--选择菜单CreateProbe针对这个探测:·选择Includesub-scopes下拉菜单中的all选项以包含所有设计的子域。·选择Includewithineachscope下拉菜单中的all选项以包含输入,输出和双向端口。以波形的形式研究仿真的资料在ex1模块中选择要显示在波形窗口中的信号。选中后点击waveform按钮这样就可以打开波形窗口了。有波形显示的波形显示窗口后仿最大的特点就是信号翻转加入了延时信息,比如信号spi0cn,放大波形可以看到信号相对时钟有效边沿的延迟。下拉波形,可以发现信号sck_neg_dtc[0]、nss_neg_dtc[0]为高阻z态,这是因为综合过程中dc可能会在优化过程中优化掉信号,或对信号改名,这个问题需要在网表中解决。打开nc_postsim文件夹中的网表文件:spi_interface.mapped.v按ctrl+f键,寻找信号sck_neg_dtc[0]发现网表中没有该信号:继续寻找与其相关的信号,sck_neg_dtc,可以发现寄存器sck_neg_dtc_reg[0]的输出信号名为n122,通过仔细的检验,可以发现sck_neg_dtc[0]被改名为n122,修改网表把它改回来:ctrl+f,将n122改为sck_neg_dtc[0],选择ChangeAllsck_neg_dtc[0],n122都已被声明过,所以改变后sck_neg_dtc[0]被声明两次,删除掉原n122处的声明(包括后面的逗号),并保存文件。重新选中设计spi_interface_mapped.v并选中然后在ConsoleWindow点击simulationreinvokesimulator出现图示对话框:选择yes即可再在ConsoleWindow点击simulationrun即可,可以发现sck_neg_dtc信号恢复正常。用modelsim进行后仿真分析第一步:新建工程第二步:添加工艺库、网表及测试文件有两种添加sdf文件方法:第一种:在工程目录下添加延时文件文件编译第二种添加延时文件方法(用了第一种sdf文件添加方法后,本步骤可以略过)SPI_test1为测试模块名,ex1为例化名将ex1,ex2,ex3全部应用sdf文件仿真并得到器件延时信息谢谢!
本文标题:nc后仿-综合后仿真
链接地址:https://www.777doc.com/doc-6825390 .html