debussy使用.docx
- 文档编号:5223095
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:26
- 大小:343.38KB
debussy使用.docx
《debussy使用.docx》由会员分享,可在线阅读,更多相关《debussy使用.docx(26页珍藏版)》请在冰豆网上搜索。
debussy使用
前期问题解决方案
1.altera后仿真问题
系统内有宏模块库的仿真:
需要添加库文件,路径\altera\80\quartus\eda\sim_lib
220model.v:
带有用户原语类型的Quartus自带的IP核的库文件
altera_mf.v:
Quartus自带的IP核的库文件
cycloneii_atoms.v:
相应系列的器件库,这个和你选择的器件有关,这一点一定要注意,如果你选择CycloneIII,那就选择III代的,不然会编译不通过,因为你在新建项目的时候已经确立了选用芯片的型号。
布局布线后仿真:
首先在新建工程时要选择Modelsim作为仿真工具,在quartusII中编译后,在工程文件夹中生成一个:
\simulation\modelsim文件夹,其中包括
*.vo是仿真网表文件,可以用来代替设计文件
*_modelsim.xrf是Quartus编译生成的信息文件;
*_v.sdo是工程延时的文件
将*.vo和*_v.sdo添加在工程中。
注意:
后仿真可以不加载altera_mf.v,因为*.vo中包含了构造信息和参数。
总结:
RTL级前仿真,如果有宏模块库必须加载altera_mf.v,不需要cycloneii_atoms.v
综合布局布线后仿真,必须对cycloneii_atoms.v进行编译,altera_mf.v和*.vo任选一个即可。
2.debuss波形输入问题
Debussy介绍
Debussy是NOVASSoftware,Inc(思源科技)发展的HDLDebug&Analysistool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是:
能够在HDLsourcecode、schematicdiagram、waveform、statebubblediagram之间,即时做trace,协助工程师debug。
可能您会觉的:
只要有simulator如ModelSim就可以做debug了,我何必再学这套软体呢?
其实Debussyv5.0以后的新版本,还提供了nLint--checkcodingstyle&synthesizable,这蛮有用的,可以协助工程师了解如何写好codingstyle,并养成习惯。
下图所示为整个Debussy的原理架构,可归纳几个结论:
Debussy有四个主要单元(component),nTrace、nWave、nSchema、nState
∙ nTrace--Hypertextsourcecodeanalysisandbrowsetool(为%Debussy&所开启的主画面)
∙ nWave--Waveformanalysistool(可由nTrace内开启,或直接%nWave&开启)
∙ nSchema--Hierarchyschematicgenerator
∙ nState--FiniteStateMachineExtractionandanalysistool
Debussy本身不含模拟器(simulator),必须呼叫外部模拟器(如Verilog-XLorModelSim)产生FSDBfile,其显示波形的单元"nWave"透过读取FSDBfile,才能显示波形或讯号值的变化
快速上手五部曲:
(Debussyv.5.2)
1. ImportFilesandgenerateFSDBfile
2. Tracebetweenhierarchybrowserandsourcecode
3. Tracebetweenhierarchybrowser、sourcecodeandschematic
4. Tracebetweenhierarchybrowser、sourcecode、schematicandwaveform
5. nLint
(nState本文没介绍,有兴趣的读者,请依文后的连结,自行下载CIC所提供的NOVAS原厂编写教材参考)
1. ImportFilesandgenerateFSDBfile
1-1启动Debussy:
%Debussy& (此处的D大小写都可以,但其它指令的大小写可能就有差别)
开启nTracewindow如下,此时工作目录下会新建一个"DebussyLog"目录
1-2ImportFiles:
File\ImportDesign...
结果如下图所示:
nTrace视窗中,含有三个区域,HierarchicalBrower、Sourcecodewindow、Messagewindow。
(如果不想看波形,只想查看sourcecode与schematic的关係,您可以直接跳到step2-1)
此时DebussyLog目录内会有Debussy.cmd、turbo.log、compiler.log三个档案。
Debussy.cmd纪录所有import
的档案与之后所有的执行程序。
我们可以直接引用这个档案来执行上一次我们做过的一连串程序(referto1-5)。
1-3设定外部模拟器,藉其產生FSDBfile:
Tools\Options\Preferences...
1-4切换到InteractiveMode:
Tools\InteractiveMode (此时ToolBar上会出现Simulation选单)
开始执行模拟:
Simulation\Run/Continue(模拟结束工作目录下就会產生dump_i.fsdb)
Sourcecode目录下,要有先前ModelSim所建立的此project的worklibrary,不然会有错误讯息:
Failedtoaccesslibrary'work'at"work"。
另外,你不能只是开一个work资料夹,而是要真的用ModelSim產生worklibrary,并且把designcompiletotheworklibrary后,step1-4才会正确动作。
1-5结束程式:
File\Exit
1-6快速启动执行序
把DebussyLog目录下的指令记录档Debussy.cmd复制到目前工作目录下,重新编辑此档(删掉最后一行的"debExit"
然后储存),引用它来开启Debussy可重复之前同样的动作程序
%Debussy-playDebussy.cmd& (结果相当於从步骤1-1做到1-4)
1-7其他启动Debussy的方法
%Debussy-fxxx.f (类似开启一个事先编写的批次档,可以同时一次载入多个.v)
%Debussy-vhdl-fxxx.f (类似开启一个事先编写的批次档,可以同时一次载入多个.vhd)
以上都是属於Importdesignfromfile的方法,另外还有一种方法是Importdesignfromlibrary。
两者的差异在於:
Importdesignfromfile是将designcompiletoRAM,而Importdesignfromlibrary则是将designcompiletolibrary
(defaultlib.is"work")。
对於比较大的project,为了避免每次使用Debussy都要花时间compile,建议採用Importdesignfromlibrary的方
法,而且mixed-languagedesign一定要用Importdesignfromlibrary的方法。
Ex.forVerilogfiles:
%vericom-inc-frun.f
%Debussy-libwork-topxxx&
Ex.forVHDLfiles:
%vhdlcom-93-frun.f
%Debussy-libwork-topxxx&
2. Tracebetweenhierarchybrowserandsourcecode
2-1在Hierarchybrowser点击A1(FourBitAdder)左侧的符号"+",可以展开四个fulladder(fa0,fa1,fa2,fa3)
->
2-2试著双击Hierarchybrowser内的testbedorA1orfa0...
右边的sourcecodewindow会立即切换到相对的module
也可以利用滑鼠"中键",将左边的modulename直接拖曳丢进右边sourcecodewindow,效果相同。
(利用滑鼠中键在不同视窗间拖曳,是Debussy中最常用的方法)
2-3双击上图sourcecodewindow内的"fulladder"(inline8),软体会自动帮你追踪出引用fa0的地方
结果示於下图--A1(FourBitAdder)的fa0(inline32);若再双击fa0(inline32),则又回到上图。
-->你可以藉由这个方法,轻易的追踪出project内的所有design彼此之间的关连性
:
恢复上一动作
2-4除了追踪designs之间的关连性,也可以用同样的方法追踪出signal'sdriversandloads。
若双击上图的讯号c_in(inline24),将显示该讯号的所有的driveloads
结果如下图--messagewindow显示,有4处drivec_in,分别在add4testline69,71,73,75
用ShowNext
来查看所有的driveloads(atline69,71,73,75)
选定line69,Trace\Load
则可用来追踪该讯号的所有"loads"
3. Tracebetweenhierarchybrowser、sourcecodeandschematic
3-1开启nSchema有三种方法
* (nTrace)Tools\NewSchematic\...
* 双击工具列上的NewSchematic
icon
* 把想看schematic的部分,直接以滑鼠中键,从hierarchybrowser拖曳丢进
icon(常用)
下图是把A1(FourBitAdder)丢进NewSchematicicon的结果:
如果想直接看symbol"fulladder"的sourcecode,先以左键选定(highlight)该元件,然后按右键,从快速选单选择"DisplaySourceCode"
选择(highlight)第一个fulladder的第二条输出讯号,然后按Tools\NewSchematic\Fan-InCone试试
分别用来缩小/放大画面,
则是让图形大小自动调整至填满整个视窗(如上图)
回前一画面;
回最上层画面
3-2双击上图内的元件符号(如第一个fulladder)可进一步看到其内容/细部电路组成(fa0)
3-3请自行尝试,在hierarchybrowser、sourcecode与schematicwindow之间,用滑鼠中键互相拖曳designs/signals的效果
4. Tracebetweenhierarchybrowser、sourcecode、schematicandwaveform
4-1接下来的操作,需要利用模拟器所产生的资料(.fsdb),以"nWave"显示讯号波形,有两种可能作法
∙ 从1-6(对Importfiles已作compile,也有其.fsdbfile),接著开启"nWave"
∙ 从1-1~1-2,然后开启"nWave",载入1-4所产生的dump_i.fsdb。
开启"nWave"的方法有三种
* 按(nTrace)工具列的
(NewWaveformicon)
* (nTrace)Tools\NewWaveform
* %nWave&
4-1-1如果是从1-2接著打开nWavewindow,一开始nWave内容是空的,要执行(nWave)File\Open...
以载入dump_i.fsdb。
4-1-2接著按
GetSignalsicon,此时就会看到有讯号可以让你选择了
--如果你看不到讯号,把想观察的design(A1),直接从(nTrace)Hierarchybrowser拖进nWave就可以
4-1-3(nWave)View\Zoom\ZoomAll
--如果你看不到波形,请再执行一次(nTrace)Simulation\Run/Continue就会看到
已在signalwindow选择的讯号,如果想要删除:
选定要删除的讯号highlight,按滑鼠右键选择"Cut"
如果是从1-6接著打开nWavewindow的,直接进行step4-1-2即可
4-2启动ActiveAnnotation功能:
(nTrace)Source\ActiveAnnotation
能够在nWave选择讯号触发缘,同时在nTrace的sourcecode的所有讯号符号下方,直接看到数值的变换
4-3在nWave双击想观察其触发状况的讯号(如c_out)
4-4从(nTrace)Hierarchybrowser双击A1(FourBitAdder),按
SearchForwardicon,看看在nTrace与nWave的变化
. nLint
5-1开启图形介面的nLint
%nLint-gui& (大小写不能改,n一定要小写,L一定要大写)
开启nLintwindow如下,此时工作目录下会新建一个"nLintLog"目录
5-2ImportFiles:
File\ImportDesign...(与step1-2一模一样的操作后,结果如下所示)
5-3执行Run\Compile
5-4执行Tools\RuleOrganizer,或按
选择check哪些rules
--不想检查的项目,就把E/D那一栏的核选框框取消
5-5执行Run\Lint -- 会自动跳出ReportViwer显示检查结果
5-6展开report,选择第一个黄色警示标示,其出错的原因与原始码部份,会即时显示在下方的栏框中。
如果要修改sourcecode,在该错误选项上,按滑鼠右键,选择Showviolation\todefaulteditor
对於不想检查的档案,可以选定该档后,按
再做compile。
以此例而言,testbench是不可合成的,
ModelSim本身也是一个可以提供调试功能的平台,但是相比之下,Debussy的调试功能更加强大。
比如一个很有用的功能:
如果我预先只想看设计中的10个信号,但是我可能在debug时发现又想看另外5个信号,在modelSim中,通常需要再加信号到波形中,然后重新跑仿真。
而如果使用debussy的fsdb文件则可以把设计中的全部信号或者指定层次之上的全部信号都dump出来,debug时想看哪个就看哪个,不用重新运行仿真。
因此,通常可以考虑使用ModelSim仿真,而使用debussy来进行调试。
这里的调试主要是指观测波形,进行bug原因分析,而不是广义的调试。
广义的调试应该包括仿真本身。
Debussy不支持仿真功能。
Debussy支持的波形格式是fsdb,是FastSignalDatabase的简写。
Debussy也可以读取vcd文件,在它读入vcd文件时,先自动把vcd文件转换成fsdb文件,然后在读入debussy。
同vcd相比,fsdb文件小很多。
这是debussy帮助文件中的说明,更详细的说明可以参考debussy帮助文件:
DebussysupportsanewandopenFSDBfileformatthathasthefollowingadvantagesoverthestandardVCDfileformat:
● AnFSDBfileismuchmorecompactthanthestandardVCDfile.Typically,anFSDBfileisabout5to50timessmallerthanaVCDfile.
● ThesimulationruntimeforanFSDBfileisfasterthanthatforaVCDfile.WithFSDBfiles,Debussydisplayswaveform.andback-annotatedsignalvaluesfaster.
DebussyprovidesseveralPLIroutinesthatallowyoutodumpanFSDBfileinsteadofaVCDfiledirectlyduringasimulation.ForexistingVCDfiles,Debussyprovidestheconversionutilityvfast,whichisusedtoconvertVCDfilestoFSDBfiles.Inaddition,DebussyconvertsVCDfilestoFSDBfilesautomaticallywhenyouopenaVCDfileusingthenTracepull-downmenucommandFile->LoadSimulationResultornWaveFile->Open.Debussyalsoprovidesanotherconversionutility,fsdb2vcd,whichconvertsFSDBfilesbacktoVCDfiles.
要在ModelSim中仿真时直接生成fsdb文件,当然首先必须安装ModelSim和debussy。
然后需要做两件事情:
1, 是在ModelSim仿真的脚本中,需要添加一些命令来使得ModelSim能够调用debussy的一些命令。
当然这些命令对于VHDL和verilog又有不同,本文只针对verilog设计。
VHDL的设计如何做,在debussy的帮助文件中有说明,并且网上也已经有了很多帖子说明这个问题。
2, 是需要在testbench中添加产生fsdb的一些系统函数。
当然这些系统函数不是ModelSim自带的,而是debussy的系统函数。
所以第一步就是让modelSim也可以使用这些系统函数。
相关的命令可以参考下面章节。
当然也可以在脚本中进行相关操作,具体操作参考debussy帮助文件。
第1步的操作如下:
假设modelSim安装根目录为
-pli
或者可以在
注意ModelSim的目录层次是使用前先斜杠“/”而不是Windows系统的后向斜杠“\”。
第2步在测试平台添加fsdb系统函数,典型的可以把如下语句加到测试平台中:
initial
begin
$fsdbDumpfile("wave_test.fsdb");
$fsdbDumpvars;
end
很多网上的帖子说,生成fsdb文件后,如果不关闭modelSim,就用debussy打开fsdb文件,会提示错误,而导致不能打开fsdb文件;或者打开文件后,信号也能导入,但是全部信号都显示NF,也就是没有波形出来。
并由此认为这是debussy或者modelSim的问题。
其实这是因为在测试平台控制不当,fsdb文件还没有生成好。
就像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- debussy 使用
![提示](https://static.bdocx.com/images/bang_tan.gif)