nc后仿
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验步骤
延时反标 编译设计网表以及顶层测试文件
建立设计
仿真
调试
延时反标
后仿最重要的就是延时反标,只有将延 时信息导入设计,仿真才能验证设计的 时序 施加命令对象: 在仿真的顶层测试文件里声明反标时序 信息,在本次试验中即spi_test1.v
延时反标
反标命令: $sdf_annotate(“spi_interface.sdf",ex1); 其中,spi_interface.sdf为延时文件名, 如果延时文件没有在目前工作目录下,还需 加入具体路径名; ex1为测试模块例化设计模块时的实例名。 在本次试验中,设计模块被例化三次,分别 为ex1,ex2,ex3。
但是在这之前要设置 参数,选中module后 选择toolsElaborator 进行设置。
设置参数时注意将Access Visibility按 钮选中并且它的值是All,这个选项意味 着全部存取(读,写,连接探测)来仿 真目标,这样就可以在仿真的数据库里 面探测目标和范围,调试你的设计。 由于不是所有的代码都加了时间,为防 止报错在此处加上时间。 然后点击ok即可。 与前仿不同的是,现在还要进行针 对反标延时的设置,点击选项 Advanced Options
在设计窗口中设置探测对 象:比如要观察ex1中的 信号, 点击spi_test1图 示旁边的加号,展开设计 的层次结构。 右键选中ex1不放--> 选择菜单Create Probe
针对这个探测: · 选择Include sub-scopes下拉菜 单中的all选项以包含所有设计的 子域。 · 选择Include within each scope 下拉菜单中的all选项以包含输入 ,输出和双向端口。
前仿和后仿所使用的仿真器是相同的,
所需的流程以及激励也是相同的,不同 点主要体现在以下几个方面 :
前仿与后仿的区别
仿真所需文件不同
作用不同
波形不同
仿真所需文件不同
前仿是对设计.v文件以及测试.v文件进行 仿真; 后仿所需文件是综合时产生的.v网表文 件,.sdf标准延时文件,测试文件以及工艺 库.v文件。
延时反标
在spi_test1中添加并保存一下语句:
initial
begin $sdf_annotate(“spi_interface.sdf",ex1); $sdf_annotate(“spi_interface.sdf",ex2); $sdf_annotate(“spi_interface.sdf",ex3); end
启动NClaunch
在拷贝了源文件的文件夹下面启动 nclaunch -new & 多步模式(Multiple Step)使用ncvlog和 ncelab命令来编译和描述你的设计;单步模 式(Single Step)使用ncverilog命令。选 择多步模式。
选择多步模式 Multiple step
之后就启动了simulator,会弹出2个窗口 : 设计浏览器(Design Browser)和 控制窗口(Console window)
设计浏览器(Design Browser)
控制窗口(Console Window)
在启动的时候,控制窗口(Console Window)有两个窗口。 SimVison窗口让你可以输入SimVison的命令; 仿真器(simulator)窗口让你可以输入Tcl simulator命令。 在你运行仿真的时候,控制窗口(console window)同样会在SimVision 和simulation窗口中显示消息。
点击
进入nc_postsim文件夹
双击spi_test1,打开并加入反标命令, 退出时记得保存:File->save
准备工作介绍
在仿真已有的设计以前,必须编译和描述它。编译 过程将把源文件中的用HDL编写的单元编译成内在 的描述。描述设计将在设计的实例化,结构化信息 的基础上建立设计的层次结构,建立信号的连接, 计算所有对象的初始值。编译,描述和仿真自己的 设计要用到以下的工具: Ncvlog: 编译Verilog源文件。 ncelab 描述设计并且生成仿真的snapshot。 ncsim 对snapshot进行仿真仿真。
仿真所需文件
netlist.v:DC综合生成的网表文件 .sdf:DC综合生成的标准延时文件 ,这个文 件中包含了设计的网表中单元和连线的延时 信息。 smic25.v:工艺库仿真文件,包含综合目标库 中元件的仿真模型信息
后仿分类
根据仿真对象分为两类: 综合后仿真:对DC综合后的网表进行仿 真,连线延时来自于通过线载模型的估计 布局布线后仿真:对布局布线后的网表 进行仿真,连线延时来自于版图的提取
仿真/仿真器(Simulator)
NC浏览(NCBrowse)
波形察看窗口(Waveform Window)
选中3个.v文件, 分别是库模型 smic25.v,网 表文件以及顶层 测试文件,点击
进行编译,之后会 在右边窗口中看到 帽子图标(工作库) 很多文件。
现在要描述你的设计: 要展开库(worklib), 选择顶层单元(也就是 测试中的module), 然后选择描述按钮 (elabrate )
NC-Verilog
综合后仿真
后仿概述
后仿是在前仿的基础上加ቤተ መጻሕፍቲ ባይዱ延时信息的功能 仿真。 同时验证了设计的时序以及功能都正确,并 且确保后仿功能和前仿一致。
实验任务
掌握前仿与后仿的区别 学会用NC-verilog对设计进行后仿 在SimVision分析环境下对设计中的问题进 行调试
前仿与后仿的区别
选择creat cds.lib file,弹出第二个对 话框,save,在新对话框中点击ok, 之后在最初的对话框中点击Ok。
nclaunch的主窗口: 左边的窗口中显示了 当前目录下的所有文 件,在编译和描述后 会在右边显示设计的 库。
在在仿真你的设计以前,必须用编译器编译源文件,并且 用描述器(elaborator)把设计描述成snapshot的形式。 NCLaunch的主窗口让你可以连接你编译和描述设计所需 要的工具 VHDL 编译器(compiler) Verilog 编译器(compiler) 描述器(Elaboretor)
选择Annotation一项, 在子菜单中选中除第一 项的所有条目。 在delay types中选择 Maximum一项,SDF 文件中对每项延时都有 最大值,典型值,最小 值,这里选择最大值用 于仿真
在上述步骤之后,会生成一个你的设计对应的snapshot,仿真 就是针对这个Snapshot进行的。如图示,选中该文件,点击 仿真按钮
作用不同
前仿又称功能仿真,是指在一个设计中,在 设计实现前对所设计的逻辑进行的验证其功 能是否正确的过程 后仿又称时序仿真,是对综合后或布局布线 后并且加入了延时信息的网表文件进行的仿 真,目的是验证时序以及功能都正确
波形不同
前仿的波形输出结果相对时钟沿没有延
迟。所有信号在时钟边沿上同时到来, 没有竞争冒险情况。 后仿因为加入了时序信息,波形输出结 果相对时钟沿有一定的延迟。各个信号 延时不同, 在不同的时刻发生翻转。
选择yes即可
再在Console Window 点击simulationrun即可,可以发 现sck_neg_dtc信号恢复正常。
谢谢!
sck_neg_dtc[0],n122 都已被声明过,所以改变 后sck_neg_dtc[0]被声 明两次,删除掉原n122 处的声明(包括后面的 逗号),并保存文件。
重新选中设计
spi_interface_mapped.v
并选中
然后在Console Window 点击simulationreinvoke simulator 出现图示对话框:
以波形的形式研究仿真的资料
在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],选择 Change All