Debussy简介
Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是:能够在HDL source code、schematic diagram、waveform、state bubble diagram之间,即时做trace,协助工程师debug。
如果你使用过Modelsim的话,可能会产生这样的想法:只要有simulator如ModelSim就可以做debug了,学Debussy有什么用呢? 其实Debussy v5.0以后的新版本,还提供了nLint -- check coding style & synthesizable,这蛮有用的,可以协助工程师了解如何写好coding style,并养成习惯。
下图所示为整个Debussy 的原理架构,可归纳几个结论:
Debussy有四个主要单元(component),nTrace、nWave、nSchema、nState:
-
nTrace -- Hypertext source code analysis and browse tool (为%Debussy &所开启的主画面);
-
nWave -- Waveform analysis tool (可由nTrace内开启,或直接%nWave &开启);
-
nSchema -- Hierarchy schematic generator;
-
nState -- Finite State Machine Extraction and analysis tool;
Debussy本身不含模拟器(simulator),必须呼叫外部模拟器(如Verilog-XL or ModelSim)产生FSDB file,其显示波形的单元"nWave"透过读取FSDB file,才能显示波形或讯号值的变化。
Import design
首先打开Debussy软件,点击File,选择Import Design,如下所示。
然后会弹出以下的窗口,按照下图所示的数字标号顺序进行如下的设置:
1:设置设计工程所使用的语言,这里选择Verilog语言;
2:设置工程所在的路径,根据所导入的工程所在的路径进行设置,可以根据需要自行设置,这里设置为工程所在的路径;
3:导入设计的文件,设计工程将设计的.v文件存放在rtl文件夹,所以需要在左边的选件夹选择单元里面选择要导入文件所在的文件夹,选中之后,右边的窗口就会出现要导入的文件夹;
4:选中要导入的文件,点击"Add"按键,这时"Design Files"窗口就会出现导入的文件;
5:导入完成点击"OK"按键。
完成之后就会nTrace视窗中就会出现:
可以通过编写一个.f文件来记录工程所要调入的文件,这样就相当于执行刚才的那5个步骤,避免每次用Debussy打开工程都要通过控件操作的麻烦。
工程编写的.f文件如下:
通过Debussy导入的过程如下:
导入完成会Debussy视窗会出现如下图所示:
Trace between hierarchy browser and source code
1:在Hierarchy browser点击tb_counter左侧的符号"+",可以展开其所包含的设计子模块;
2:双击Hierarchy browser内的uut,右边的source code window会立即切换到相对的module;
也可以利用滑鼠"中键",将左边的module name直接拖曳丢进右边source code window,效果相同,利用滑鼠中键在不同视窗间拖曳,是Debussy中最常用的方法。
3:双击上图source code window内的"counter",软体会自动帮你追踪出引用counter的地方结果示于下图 -- A1(FourBitAdder)的fa0 (in line 32)。
若再双击消息窗口的*<D> D:jarandebussy_projectlesson1 tlcounter.v(39): counter <= counter + 1'd1;,则又回到上图,可以轻易的追踪出project内的所有design彼此之间的关连性。
同时可以用下图标注的工具返回上一个动作。
如果要查看信号的driver和loads,可以使用以下两个工具进行查看信号的driver和loads;
4:如下图所示,追溯rst信号的driver;
如下图所示,追溯rst信号的load;
Trace between hierarchy browser、source code and schematic
开启nSchema有三种方法
-
(nTrace) Tools New Schematic ...;
-
双击工具列上的New Schematic icon;
-
把想看schematic的部分,直接以滑鼠中键,从hierarchy browser拖曳进 ;
如下图所示将counter拖曳进,就能够显示原理图;
显示的原理图如下:
那如何从原理图关联到代码呢?可以双击原理图的模块,进入对应的代码窗口;
如何在分层的模块之间进行切换呢?如下图所示: