好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

北大数字集成电路课件--3_cadence仿真简介.ppt

44页
  • 卖家[上传人]:j7****6
  • 文档编号:61610572
  • 上传时间:2018-12-06
  • 文档格式:PPT
  • 文档大小:304KB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第三章 Cadence仿真器,学习内容 逻辑仿真算法 如何启动Verilog-XL和NC Verilog仿真器 如何显示波形,,仿真算法,主要有三种仿真算法 基于时间的(SPICE仿真器) 基于事件的(Verilog-XL和NC Verilog仿真器) 基于周期的(cycle),,仿真算法,基于时间的算法用于处理连续的时间及变量 在每一个时间点对所有电路元件进行计算 效率低在一个时间点只有约2~10%的电路活动 基于事件的算法处理离散的时间、状态和变量 只有电路状态发生变化时才进行处理,只模拟哪些可能引起电路状态改变的元件仿真器响应输入引脚上的事件,并将值在电路中向前传播 是应用最为广泛的仿真算法 效率高evaluate when necessary” 基于周期的仿真以时钟周期为处理单位(与时间无关) 只在时钟边沿进行计算,不管时钟周期内的时序 使用两值逻辑 (1, 0) 只关心电路功能而不关心时序,对于大型设计,效率高 仅适用于同步电路基于事件仿真的时轮(time wheel),仿真器在编译数据结构时建立一个事件队列 只有当前时间片中所有事件都处理完成后,时间才能向前 仿真从时间0开始,而且时轮只能向前推进。

      只有时间0的事件处理完后才能进入下一时片 在同一个时间片内发生的事件在硬件上是并行的 理论上时间片可以无限但实际上受硬件及软件的限制一个时间片的事件可引起新的事件,在当前时片或以后,时间片 timeslice,,Cadence Verilog仿真器,Verilog-XL和NC Verilog仿真器都是基于事件算法的仿真器仿真器读入Verilog HDL描述并进行仿真以反映实际硬件的行为 Verilog-XL和NC Verilog仿真器遵循IEEE 1364 Verilog规范制定的基于事件的调度语义 仿真器可用于 确定想法的可行性 用不同的方法解决设计问题 功能验证 确定设计错误,,仿真过程,Verilog仿真分下列步骤: 编译 读入设计描述,处理编译指导(compiler directive),建立一个数据结构定义设计的层次结构 这一步有时分为两步:compilation,elaboration 初始化 参数初始化;没有驱动的Net缺省值为Z;其它节点初始值为X这些值延着设计层次传播 仿真 刚开始时间为0时,仿真器将initial和always中的语句执行一次,遇到有时序控制时停止这些赋值可产生在时间0或其后时间的事件。

      随着时间推进,被调度事件的执行引起更多的调度事件,直至仿真结束Versus 交互式编译仿真器,Verilog-XL是一个交互式仿真器,过程如下: 读入Verilog描述,进行语义语法检查,处理编译指导(compiler directive) 在内存中将设计编译为中间格式,将所有模块和实例组装成层次结构(设计数据结构)源代码中的每个元件都被重新表示并能在产生的数据结构 找到 决定仿真的时间精度,在内存中构造一个事件队列的时间数据结构(时轮) 读入、调度并根据事件执行每一个语句,,Verilog-XL采用多种加速算法提高各种抽象级的仿真速度 每次重新启动Verilog-XL,将重复上述步骤 当进入交互模式时,可以输入Verilog HDL语句并加到设计的数据结构中Versus 交互式编译仿真,Verilog-XL仿真器是与Verilog HDL同时开发的,因此它成为Verilog HDL仿真器的事实上的标准 Verilog-XL采用了多种加速算法,对每种抽象级描述都能很好的仿真这些加速算法包括Turbo算法,XL算法及Switch-XL算法在后面的教程中将对这些算法进行更为详尽的介绍NC Verilog-全编译仿真,NC Verilog是全编译仿真器,它直接将Verilog代码编译为机器码执行。

      其过程为: ncvlog编译Verilog源文件,按照编译指导(compile directive)检查语义及语法,产生中间数据 ncelab按照设计指示构造设计的数据结构,产生可执行代码除非对优化进行限制,否则源代码中的元件(element)可能被优化丢失产生中间数据 ncsim启动仿真核核调入设计的数据结构,构造事件序列(时轮),调度并执行事件的机器码有些事件可能消失(从不执行)除非限制优化过程编译后的所有代码的执行使用同一个核 当重新启动仿真时,要对修改过的模块重新编译省略这个手工过程的方法是直接对设计进行仿真,这将自动地对修改过的模块进行重新编译 当采用交互模式时,可以使用Tcl命令和针对NC Verilog的Tcl扩展命令NC Verilog全编译仿真,NC Verilog是最近才开发的,但其对描述的仿真与Verilog-XL完全相同 NC Verilog仿真器用同一个核(kernel)对所有抽象级进行混合仿真,也就是说用户可以采用各种不同抽象级混合设计但在门级仿真的效率差一些 NC Verilog仿真器对源代码采用增量编译方式,减少了编译时间 在交互模式下,可以使用Tcl命令及其针对NC Verilog的扩展命令来修改设计和控制仿真。

      这将在后面进行详细描述对Verilog语言的支持,Verilog-XL和NC Verilog计划支持Verilog语言全集用户可依据下列标准进行设计: IEEE1364-1995 Verilog语言参考手册 OVI 2.0 Verilog语言参考手册,但不支持: Attributes: Verilog描述中对象的属性 函数中output或inout变元(argument):OVI2.0允许函数中output和inout变元值能够返回启动Verilog-XL,在命令窗口启动Verilog-XL: verilog [verilog-xl_options] design_files 没有option启动的例子 verilog mux.v test.v 使用 – c选项只对设计进行语法和连接检查 verilog – c mux.v test.v 使用-f选项指定一个包含命令行参数的文件 verilog –f run.f run.f文件的内容 Verilog-XL将所有终端输出保存到名为verilog.log的文件,,mux.v test.v -c,,启动NC Verilog,虽然NC Verilog仿真过程包括三个分立的步骤(ncvlog, ncelab, ncsim),但仿真时不需要三个命令,可以用带有命令行参数的ncverilog命令启动NC Verilog: ncverilog [ncverilog_options] verilog-xl_arguments Examples: ncverilog mux.v test.v ncverilog –c mux.v test.v ncverilog –f run.f run.f文件的内容 NC Verilog将所有终端输出保存到名为ncverilog.log的文件,,mux.v test.v -c,,NC Verilog有什么不同?,除+gui、-q和-s这些只影响运行时间的参数外,其它任何命令行参数的改变将使设计重新编译、elaborate及仿真。

      如果更新了源文件及仿真时用到的SDF文件,则与它们相关的文件将重新编译,设计也将重新elaborate和仿真NC Verilog为编译的元件及其它文件建立一个库结构增量编译依赖于源文件、SDF文件和命令行参数ncverilog还有其它一些命令行参数,如,在调试时有完全的读、写及连接操作,用 +access + argument ncverilog –f run.f + access+RWC 要得到源文件行操作能力,用+linedebug ncverilog -f run.f +linedebug 强制重编译所有设计单元,使用+noupdate,NC Verilog有什么不同?,,使用+access选项可以设置对所有对象的缺省操作对象的缺省设置是无操作用+access+打开操作,+access-关掉操作args可以是R、W、C的任何组合使用+linedebug可以打开R、W、C,同时可对源文件行进行操作,如在行上设置一断点 使用+noupdate强制重编译整个设计缺省时只重新编译修改过的文件只有当库可能被破坏时才这样做 +gui选项启动图形界面;-q选项抑制标识信息;-s选项使仿真器在时间0时停止,进入交互模式。

      波形显示工具—SignalScan,, signalscan & 或 signalscan 数据库文件名 &,波形显示工具—SignalScan,,Title Bar:显示这是SignalScan窗口并以数字编号若启动几个SignalScan窗口它们将顺序编号 Menu Bar:通过菜单可以执行所有基本命令 Tool Bar中的按钮有:copy, cut, paste, undo, delete, zoom, create marker, expand buses, launch the Design Brower等等用户可以自定义在命令行输入signalscan启动SignalScan窗口包括:,注:必须用Design Brower在波形窗口中添加信号Groups Pane列出用户建立的波形组 Waveforms Region显示加入信号的波形 Names Pane在波形的左边显示信号名这些信号名可以拖拽,在pane中双击右键可以移动插入的marker Time-Display Region显示两个指针的时间值及其时间差,SHM:波形数据库,,,波形显示工具从数据库,如SHM数据库中读取数据。

      使用下面的系统任务可以对SHM数据库进行操作:,例子: initial begin $shm_open(“lab.shm”); $shm_probe(); end,SHM:波形数据库,,,仿真历史管理器(Simulation History Manager,SHM)数据库记录用户的设计在仿真时数据信号的变化只记录用户要观察(probe)的信号 用户可以用$shm_系统任务打开一个SHM数据库,设置信号探针并将结果保存到数据库中这些系统任务的功能除$shm_probe外都非常直观对$shm_probe将在下面详细讨论 用户必须在仿真前(时间0前)设置探针信号才能看到信号在仿真过程中全部变化用$shm_probe设置信号探针,,,在$shm_probe中使用scope/node对作为参数参数可以使用缺省值或两个参数都设置例如: $shm_probe( ); 观测当前范围(scope)所有端口 $shm_probe(“A”); 观测当前范围所有节点 $shm_probe(alu, adder); 观测实例alu和adder的所有端口 $shm_probe(“S”, top.alu, “AC”); 观测: (1): 当前范围及其以下所有端口,除库单元 (2):top.alu模块及其以下所有节点,包括库单元,用$shm_probe设置信号探针,,,$shm_probe的语法: $shm_probe(scope0, node0, scope1, node1, .); 每个node都是基于前面scope的说明(层次化的) scope参数缺省值为当前范围(scope)。

      node参数缺省值为指定范围的所有输入、输出及输入输出相关工具,,Affirma NC VHDL仿真器 Envisia Ambit综合工具 Verilog-XL故障仿真器, 用于评价用户测试向量的有效性 SignalScan-TX图形界面调试工具包 Affirma equivalence checker完成门级设计之间或门级与RTL级之间的静态功能验证 Affirma model checker形式验证工具,将Verilog。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.