当前位置:文档之家› nc后仿

nc后仿


以波形的形式研究仿真的资料
在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]发现网 表中没有该信号:
但是在这之前要设置 参数,选中module后 选择toolsElaborator 进行设置。
设置参数时注意将Access Visibility按 钮选中并且它的值是All,这个选项意味 着全部存取(读,写,连接探测)来仿 真目标,这样就可以在仿真的数据库里 面探测目标和范围,调试你的设计。 由于不是所有的代码都加了时间,为防 止报错在此处加上时间。 然后点击ok即可。 与前仿不同的是,现在还要进行针 对反标延时的设置,点击选项 Advanced Options
选择creat cds.lib file,弹出第二个对 话框,save,在新对话框中点击ok, 之后在最初的对话框中点击Ok。
nclaunch的主窗口: 左边的窗口中显示了 当前目录下的所有文 件,在编译和描述后 会在右边显示设计的 库。
在在仿真你的设计以前,必须用编译器编译源文件,并且 用描述器(elaborator)把设计描述成snapshot的形式。 NCLaunch的主窗口让你可以连接你编译和描述设计所需 要的工具 VHDL 编译器(compiler) Verilog 编译器(compiler) 描述器(Elaboretor)
之后就启动了simulator,会弹出2个窗口 : 设计浏览器(Design Browser)和 控制窗口(Console window)
设计浏览器(Design Browser)
控制窗口(Console Window)
在启动的时候,控制窗口(Console Window)有两个窗口。 SimVison窗口让你可以输入SimVison的命令; 仿真器(simulator)窗口让你可以输入Tcl simulator命令。 在你运行仿真的时候,控制窗口(console window)同样会在SimVision 和simulation窗口中显示消息。
选择Annotation一项, 在子菜单中选中除第一 项的所有条目。 在delay types中选择 Maximum一项,SDF 文件中对每项延时都有 最大值,典型值,最小 值,这里选择最大值用 于仿真
在上述步骤之后,会生成一个你的设计对应的snapshot,仿真 就是针对这个Snapshot进行的。如图示,选中该文件,点击 仿真按钮
启动NClaunch
在拷贝了源文件的文件夹下面启动 nclaunch -new & 多步模式(Multiple Step)使用ncvlog和 ncelab命令来编译和描述你的设计;单步模 式(Single Step)使用ncverilog命令。选 择多步模式。

选择多步模式 Multiple step
在设计窗口中设置探测对 象:比如要观察ex1中的 信号, 点击spi_test1图 示旁边的加号,展开设计 的层次结构。 右键选中ex1不放--> 选择菜单Create Probe
针对这个探测: · 选择Include sub-scopes下拉菜 单中的all选项以包含所有设计的 子域。 · 选择Include within each scope 下拉菜单中的all选项以包含输入 ,输出和双向端口。
仿真/仿真器(Simulator)
NC浏览(NCBrowse)
波形察看窗口(Waveform Window)
选中3个.v文件, 分别是库模型 smic25.v,网 表文件以及顶层 测试文件,点击
进行编译,之后会 在右边窗口中看到 帽子图标(工作库) 很多文件。
现在要描述你的设计: 要展开库(worklib), 选择顶层单元(也就是 测试中的module), 然后选择描述按钮 (elabrate )
NC-Verilog
综合后仿真
后仿概述

后仿是在前仿的基础上加入延时信息的功能 仿真。 同时验证了设计的时序以及功能都正确,并 且确保后仿功能和前仿一致。

实验任务
掌握前仿与后仿的区别 学会用NC-verilog对设计进行后仿 在SimVision分析环境下对设计中的问题进 行调试

前仿与后仿的区别
延时反标
在spi_test1中添加并保存一下语句:
initial
begin $sdf_annotate(“spi_interface.sdf",ex1); $sdf_annotate(“spi_interface.sdf",ex2); $sdf_annotate(“spi_interface.sdf",ex3); end
继续寻找与其相关的信 号,sck_neg_dtc,可以 发现寄存器 sck_neg_dtc_reg[0]的 输出信号名为n122,通 过仔细的检验,可以发 现sck_neg_dtc [0]被改 名为n122,修改网表把 它改回来: ctrl+f,将n122改为 sck_neg_dtc[0],选择 Change All
选择yes即可
再在Console Window 点击simulationrun即可,可以发 现sck_neg_dtc信号恢复正常。
谢谢!
作用不同
前仿又称功能仿真,是指在一个设计中,在 设计实现前对所设计的逻辑进行的验证其功 能是否正确的过程 后仿又称时序仿真,是对综合后或布局布线 后并且加入了延时信息的网表文件进行的仿 真,目的是验证时序以及功能都正确

波形不同
前仿的波形输出结果相对时钟沿没有延
迟。所有信号在时钟边沿上同时到来, 没有竞争冒险情况。 后仿因为加入了时序信息,波形输出结 果相对时钟沿有一定的延迟。各个信号 延时不同, 在不同的时刻发生翻转。
前仿和后仿所使用的仿真器是相同的,
所需的流程以及激励也是相同的,不同 点主要体现在以下几个方面 :
前仿与后仿的区别
仿真ห้องสมุดไป่ตู้需文件不同
作用不同
波形不同
仿真所需文件不同
前仿是对设计.v文件以及测试.v文件进行 仿真; 后仿所需文件是综合时产生的.v网表文 件,.sdf标准延时文件,测试文件以及工艺 库.v文件。
点击
进入nc_postsim文件夹
双击spi_test1,打开并加入反标命令, 退出时记得保存:File->save
准备工作介绍




在仿真已有的设计以前,必须编译和描述它。编译 过程将把源文件中的用HDL编写的单元编译成内在 的描述。描述设计将在设计的实例化,结构化信息 的基础上建立设计的层次结构,建立信号的连接, 计算所有对象的初始值。编译,描述和仿真自己的 设计要用到以下的工具: Ncvlog: 编译Verilog源文件。 ncelab 描述设计并且生成仿真的snapshot。 ncsim 对snapshot进行仿真仿真。
实验步骤
延时反标 编译设计网表以及顶层测试文件
建立设计
仿真
调试
延时反标
后仿最重要的就是延时反标,只有将延 时信息导入设计,仿真才能验证设计的 时序 施加命令对象: 在仿真的顶层测试文件里声明反标时序 信息,在本次试验中即spi_test1.v
延时反标

反标命令: $sdf_annotate(“spi_interface.sdf",ex1); 其中,spi_interface.sdf为延时文件名, 如果延时文件没有在目前工作目录下,还需 加入具体路径名; ex1为测试模块例化设计模块时的实例名。 在本次试验中,设计模块被例化三次,分别 为ex1,ex2,ex3。
仿真所需文件
netlist.v:DC综合生成的网表文件 .sdf:DC综合生成的标准延时文件 ,这个文 件中包含了设计的网表中单元和连线的延时 信息。 smic25.v:工艺库仿真文件,包含综合目标库 中元件的仿真模型信息

后仿分类

根据仿真对象分为两类: 综合后仿真:对DC综合后的网表进行仿 真,连线延时来自于通过线载模型的估计 布局布线后仿真:对布局布线后的网表 进行仿真,连线延时来自于版图的提取
sck_neg_dtc[0],n122 都已被声明过,所以改变 后sck_neg_dtc[0]被声 明两次,删除掉原n122 处的声明(包括后面的 逗号),并保存文件。
重新选中设计
spi_interface_mapped.v
并选中
然后在Console Window 点击simulationreinvoke simulator 出现图示对话框:
相关主题