NC-Verilog仿真技巧.doc_第1页
NC-Verilog仿真技巧.doc_第2页
NC-Verilog仿真技巧.doc_第3页
NC-Verilog仿真技巧.doc_第4页
NC-Verilog仿真技巧.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

提高NC-Verilog仿真效率的技巧 本文回顾了一些NC-Verilog的命令行选项,并说明这些选项如何影响仿真效率。同时,我们也展示了一些技巧,以帮助用户的NC-Verilog在最大效率下仿真一个设计和测试平台。 文中的命令行选项语法采用单步启动的方式(ncverilog +),这些选项也适合多步启动模式(ncvlog, ncelab, 或ncsim)。安装最新发布的软件首先确认你是否安装了最新的Cadence LDV版本。自动1996年发布第一版NC-Verilog以来,我们的研发队伍一直把仿真器的仿真效率作为重点来研究。在后来推出的新版本里,不断按各种设计风格优化仿真器,因此使用最新版本是最有利的。直到2002年2月,最新版本是LDV 3.4(s1)。使用NC-Verilog内置的profilerNC-Verilog在仿真引擎内开发了一个profiler工具。该工具每秒中断仿真器100次,并将终端时的结构记录下来,生成一个日志文件。日志文件里列出了被中断次数最多的模块、代码行和结构类型。这些信息可以帮助你诊断是哪些代码或模块在仿真时耗费了最多的时间。通过修改这些模块,就能提升仿真效率。Profiler功能很容易启动,并对仿真只产生非常小的影响。% ncverilog +ncprofile or% ncsim profile snapshot_name 在仿真结束时,profiler会创建一个日志文件(ncprof.out),文件里列出了profile运行的细节。关于如何利用profiler日志文件,可参考Cadence在线文档(Cadence NC-Verilog Simulator Help, Version 3.4, Chapter 14)。禁止时序验证来提升效率缺省情况下,如果在设计中考虑了时序,NC-Sim将进行标准延迟格式(SDF)的全时序标注(annotation),并在仿真时检查时序。在进行功能验证时,如果你不需要仿真时序,就可以通过禁止一些时序检查功能来提高NC-Sim的仿真速度。这样虽然不能验证时序,但是提高了仿真效率,减少了仿真内存需求。下面是一些用来禁止时序检查的一些命令行。% ncverilog +delay_mode_distributed +notimingcheck +noneg_tchk或% ncelab delay_mode dist notimingchecks noneg_tchk下面还列出了关于时序的全局选项:ncverilog option ncelab option+nonotifier-nonotifier Disables notifier register+notimingcheck-notimingchecks Disables timing check+delay_mode_unit -delay_mode unit Delay 1 simulation time unit+delay_mode_zero -delay_mode zero Zero delay+delay_mode_distributed -delay_mode dist Ignores specify block delaysCadence LDV 3.3(2001年7月)增加了通过一个时序控制文件来为各个模块设置时序选项的功能。你可以模块为单位来设置是否进行时序检查,是否允许I/O路径延迟、端口延迟、库单元延迟和全时序检查。时序控制文件里要写明要配置的实例(instance)。命令行语法是:% ncverilog +nctfile 或% ncelab tfile snapshot_name 时序控制文件的语法在Cadence 在线文档(Cadence NC-Verilog Simulator Help, Version 3.4, Chapter 8)中可以找到。提高SDF的精度时序信息通过SDF文件传递给一个设计。在LDV 3.1以前的版本里,缺省的SDF精度是10ps。从LDV 3.1开始,所有的时序宽度(包括小于10ps的)都允许使用,这样仿真的时序结果更加精确,但是仿真变得更慢。在多数情况下,10ps就足够了,因此你也许想用下面的方法来改变精度:% ncverilog +ncelabargs+”-sdfprecision 10ps” 或% ncelab sdf_precision 10ps|1ps|100fs 关于负时序(negative timing)检查LDV 3.3缺省的仿真配置为负时序检查。这样,LDV 3.3和以前的版本的仿真结果就有所不同。负时序检查有下列的选项:ncverilog optionncelab option+neg_tchk-neg_tchk Still exists for backward compatibility+noneg_tchk-noneg_tchk Sets negative timing checks to zero(matches previous behavior)设置访问属性缺省情况下,NC在非调试模式运行,仿真速度很快。可以通过设置访问属性和行调试(line-debug)功能来配置在仿真过程中信号、模块、和代码的访问属性。这样做降低了仿真的速度。如果你想在代码中设置断点,就必须使用行调试选项。该选项对仿真效率影响非常大。% ncverilog +linedebug 或% ncvlog linedebug 也可以设置设计的全局访问属性。下列的命令可以用来配置设计为允许读、写和交叉访问(connectivity access)。% ncverilog +access+rwc 或% ncelab access rwc snapshot_name r : read capability for waveform dumping, code coverage, etcw : write access for modifying values through PLI or tcl codec : connectivity access to querying drivers and loads in C or tcl前面曾经提到过,这些选项将降低仿真的速度。读属性是通常要使用的,它对仿真性能影响非常小。为了给部分对象、模块或实例设置访问属性,可以创建一个访问属性文件,并在文件中说明那些对象的访问属性。然后用在运行 elaborator 时使用 afile选项。% ncverilog +ncafile+ or% ncelab -afile snapshot_name % ncsim snapshot_name 也可以用 genafile 选项来自动生成访问属性文件。当仿真使用了Tcl、PLI或probing功能,无法提前确定对象的访问属性,就可以采用自动生成访问属性文件的方法。Elaborator 在生成仿真快照(snapshot)时会考虑你给出的 genafile选项;然后,当运行仿真时,Tcl或PLI访问过的对象就会被记录下来。退出仿真的时候,访问属性文件就生成了。举个例子:% ncverilog +ncgenafile+access.txt 或% ncelab -genafile access.txt test.top % ncsim test.top 仿真运行完成后,生成了一个access.txt 文件。你可以通过 afile 选项来使用这个文件(象前面介绍的那样):% ncverilog +ncafile+access.txt 或% ncelab -afile access.txt test.top 访问属性文件的语法可在Cadence 在线文档(Cadence NC-Verilog Simulator Help, Version 3.4, Chapter 8) 中找到。小结本文提供各种提高仿真速度的方法。提高仿真效率的最简单办法是选用最新版的Cadence LDV。我们应该经常运行NC-Sim Profiler来判断仿真器在哪里耗费最多的时间。然后集中精力优化那些代码。还可以使用命令行选项来提高仿真效率。你可以通过这些选项来配置时序功能、改变SDF精度和配置对象的访问属性。提高仿真效率、可靠性和准确性对于验证设计都很重要。仿真工作流程(Verilog/Modelsim+Debussy) 作者:未知 时间:2007-05-14 20:22:19来自:网上转载浏览次数:847文字大小:【大】【中】【小】这是献给大家的第二篇,文章详细说明了本人近一年来,自己摸索出来的一套仿真工作流程。接触过Modelsim这类软件的朋友可能都会感觉上手比较困难,原因有二:一、对仿真机制不了解,对基于source+testbench的工作流程不熟悉(大多数朋友接触FPGA仿真可能以waveform的方式);二、对软件的安装和使用不熟悉,Modelsim软件破解和平时常用软件相比要麻烦一些,也不像常用软件那样易于上手。即使入门了,也不一定能够熟练使用,相信很多朋友后仿过程中都碰到过back-annotation error的问题:)与大家一样,我也是这样一步步摸索出来的设计语言完全采用verilog, 设计工具采用ModelSim + Debussy。目前我的工作平台是Windows, 使用的版本是ModelSim6.2a + Debussy5.3v9。为了便于管理,在文件夹的管理上采用分级管理。举一个例子:如果顶层模块是A1;A1划分为B1,B2,B3;B1又划分为C1,C2,B2划分为C3, C4,B3划分为C5,C6。那么一共建立10个文件夹,分别命名为A1, B1, B2, B3, C1, C2, C3, C4, C5, C6。在各文件夹中存放相应的设计源文件.v和testbench文件.v,这样可以避免单个文件夹中文件过多,给管理上带来不便。ModelSim有三种操作模式:GUI、Command-line和Batch。GUI模式比较麻烦,又要敲键盘,又要点鼠标,对我这样的懒人不合适:)而且初学者在做后仿的时候,.sdf文件的back-annotation比较难掌握。我推荐的是采用编写.do文件或.bat文件的工作方式。. do文件的编写可以参照ISE自动生成的.fdo(功能仿真)和.tdo(后仿)文件。通过ISE调用ModelSim进行仿真,在工程的文件夹下会生成 *.fdo和*.tdo的文件,用编辑器打开文件查看,是诸如此类的一些命令: # NOTE: Do not edit this file. # Auto generated by Project Navigator for Post-PAR Simulation # vlib work # Compile Post-PAR Model vlog C:/test/netgen/par/shift_reg_timesim.v vlog testbench.v vlog C:/Xilinx/verilog/src/glbl.v vsim -novopt +maxdelays -L simprims_ver -lib work testbench glbl do testbench.udo view wave add wave * add wave .glbl.GSR view structure view signals run 10us # End 这些命令并不一定都要写上,可以根据自己的需要加以精简,比如一个功能仿真的fsim.do文件如下所示: vlib work vlog PCMSyn.v vlog Timing.v vlog Search.v vlog FSM.v vlog test.v vsim -t 1ns -lib work test view wave add wave * view structure view signals run 4ms 用ModelSim也可以查看波形图和进行调试,但是Debussy查错比较方便,下面说明如何利用ModelSim和Debussy进行仿真和调试。在testbench文件中initial begin后需添加两条语句: $fsdbDumpfile(test.fsdb); /文件名随便起 $fsdbDumpvars;点击图标或在cmd下敲vsim启动ModelSim GUI,在Transcript窗口cd到该模块的文件夹下,运行do *.do(*.do为仿真的do文件,比如fsim.do)。ModelSim有个不好的地方,如果仿真波形不对,可能需要查看中间信号以便定位错误,这时用add wave命令添加中间信号后,需要重新run一次,才能看到这些中间信号的值。而采用Debussy查看ModelSim生成的.fsdb文件的话,添加信号后立即就可看到值,给调试带来很大的方便。另外,Debussy还有个很有用的功能叫做active annotation,在nWave窗口点击波形图上的不同时间点,nTrace和nScheme的源代码和示意图上的表示出的信号值会随之变化,也大大方便了查错。关于Debussy的使用方法,请大家参考帮助文档,我只结合自己使用的经验强调2点: 1.在打开.fsdb文件之前,先在nTrace窗口Import Design一下,选择From File,Add所有相关的设计源文件和testbench文件,否则在nWave窗口打开.fsdb文件,用Get Signal添加信号后会显示NF。另外,在Get Signal之前请将ModelSim关掉,否则好像还是会显示NF。 2.再强调一遍,Import Design的时候要将testbench文件也添加进去,否则启动active annotation后,所有信号都会显示NF!这个问题曾郁闷了我很久,所以特别提出来。可能大家都发现ModelSim的主要作用是产生.fsdb文件,我们并没有用它来进行查错,完全没必要启动GUI。这个问题我思考了很久,最后在网友 hamamdu的帮助下解决了这个问题。用文本编辑器生成一个.bat文件,文件内容和.do文件差不多,不过语句到vsim命令为止,此外vsim命令也要做一些修改,添加-c参数。下面给出一个.bat的例子: vlib work vlog PCMSyn.v vlog Timing.v vlog Search.v vlog FSM.v vlog test.v vsim -c work.test 运行这个.bat文件后,将会出现VSIM 1提示,这时输入run 4ms,回车,将提示fsdb文件产生好了。 经我试验,开启Optimization后,对Command-line操作模式没有影响,但是最后一条语句不可写成vsim -c test,虽然这样也可产生fsdb文件,但是启动active annotation后Debussy软件会报错:( 写的比较仓促,大家试验中发现什么问题,请及时提出来:) Ncverilog 命令使用详解 作者:5life 时间:2005-12-17 11:19:53来自:本站原创浏览次数:1003文字大小:【大】【中】【小】我们知道,由于NC-Verilog使用了Native Compile Code 的技术来加强电路模拟的效率,因此在进行模拟时必须经过compile(ncvlog 命令)以及elaborate(ncelab命令)的步骤。编译之后,针对每一个HDL设计单元会产生中间表达。接着elaborate命令会建立整个电路的结构,产生可以用来模拟的资料。最后使用ncsim命令来进行模拟。三命令模式命令如下: ncvlog -f run.f nce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论