Debussy软件简介及仿真教程

**

Debussy软件简介及仿真教程

**
一、Debussy 软件简介
Debussy 是 NOVAS Software, Inc(思源科技)开发的 HDL Debug & Analysistool,这个软件主要不是用来跑模拟或看波形,它最强大的功能是能够在 HDLsource code、schematic diagram、waveform、state bubble diagram 之间,即时做 trace,协助 FPGA 工程师 debug。
Debussy 是非常实用的 Verilog 或 VHDL 的调试工具,可以帮助设计者快速理解复杂的设计,尤其是初次接触他人写的代码的时候,另外还能够查找和定位设计中存在的 bug,提高效率。
可能您会觉的只要有仿真器,如 ModelSim,就可以做 debug 了,我何必再学习这个软件?实际上这个软件能够帮助设计者快速理解代码、波形和原理图之间的联系,使得调试变得十分地便捷。
Debussy V5.0 以后的版本,还提供了 nLint 检查工具,它的检查规则十分严苛,能够帮助 check coding style & synthesizable,从某些方面可以协助工程师了解 coding style,并养成好的编写代码的习惯。 当然良好的 coding style 也需要结合厂商的 FPGA 底层结构单元来具体分析,而 nLint 工具并不会从这个方面对代码进行检查。所以,如何提高 coding style 是一个综合性很高的话题,不是单从某一方面入手就能解决问题,这些都是后话了。
Debussy 是支持 Windows 环境的,它的新版本改名为 Verdi,增加了一些功能,但是新版本的 Verdi 只能支持 Linux 环境。
二、Debussy 软件架构
Debussy 有四个主要单元(component),nTrace、nWave、nSchema、nState:

  1. nTrace

    nTrace -- Hypertext source code analysis and browse tool(为%Debussy &所开启的主画面);
    
  2. nWave

    nWave -- Waveform analysis tool(可由 nTrace 内开启,或直接%nWave &开启);
    
  3. nSchema

    nSchema -- Hierarchy schematic generator;
    
  4. nState

    nState -- Finite State Machine Extraction and analysis tool;
    

Debussy 的软件架构如图 1 所示:
在这里插入图片描述
图 1 Debussy 软件的架构
Debussy 直接编译 Verilog 或 VHDL 源代码,采用预综合技术来识别电路元件,在这个基础上可以生成原理图。由于自身不含仿真器,必须通过外部仿真器(如 ModelSim)来产生 fsdb 文件,其显示波形的单“nWave”通过读取 fsdb文件,才能显示波形的变化。
Debussy 支持的波形格式是 fsdb,是 Fast Signal Database 的简写。Debussy也可以读取 vcd 文件,在它读入 vcd 文件时,先自动把 vcd 文件转换成 fsdb 文件,然后再读入 debussy。
Debussy 提供的新的波形文件格式 fsdb 相比 vcd 格式,不仅压缩量大,而且加载速度快。提供了 PLI(for Verilog)和 FLI(for VHDL)接口,我们可以在仿真时直接导出 fsdb 文件。Debussy 也提供了用于转换 vcd 文件为 fsdb 文件的程序(vfast)。当用 nWave 导入 vcd 文件时,自动调用 vfast 转换成 fsdb 文件。
三、Debussy 软件设置方法
安装软件后,需要进行如下步骤的设置,才能正常使用 Debussy:
Step1 : 找 到 Debussy 软 件 的 安 装 目 录 , 再 把 该 安 装 目 录 下 的E:\software\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll 文 件 复 制 到ModelSim 软件的安装目录下的 modeltech_10_0\win32 中(我以 ModelSim10.0 版
本文基础做介绍,其它版本,如 6.5,目录名为 modeltech_6.5)。
Step2:在 modeltech_10_0 目录中找到 modelsim.ini 文件,右键点击,选择属性,在属性对话框中去掉只读属性,使用文本编辑工具打开该文件,找到如图2所示位置:
在这里插入图片描述
图 2 修改 modelsim.ini 文件
Step3:如图 3所示,建立系统变量,变量值指向 Debussy 安装目录中的 bin路径下:
在这里插入图片描述
图 3 设置环境变量
Step4:找到 Debussy 安装目录,将 Debussy 提供的文件夹 modelsim_pli54复制到 ModelSim 软件的安装目录 modeltech_10_0 中去。
Step5 : 新 建 用 户 环 境 变 量 PLIOBJS , 变 量 值 指 向 到E:\software\modeltech_10_0\modelsim_pli54\WINNT\ novas.dll,如图 4 所示:
在这里插入图片描述
图 4设置环境变量
Step6:设置完环境变量后,就能够在 ModelSim 中调用 Debussy 的系统函数了,在 Test Bench 文件中添加如下代码:

	initial begin

    		$fsdbDumpfile(“test.fsdb”); ///指定存储波形的文件名,后缀为 fsdb

    		$fsdbDumpvars;

    end

添加后,我们再次通过 ModelSim 仿真运行后就能够在 ModelSim 的工程目录下生成 fsdb 文件了。
四、Debussy软件使用方法
在使用 Debussy 软件过程中,软件并不能直接智能地识别 Verilog-2001 代码,需要对软件进行一下设置,否则添加文件时软件就会报出很多错误告警,而且也看不到原理图,设置的方法如下:
点击工具栏的 File,选择 Import Design…,再点击对话框右侧的 Options,在弹出的 Import Design Options 对话框中输入“-2001”,如图 5所示:
在这里插入图片描述
图 5 添加支持 Verilog-2001 标准的设置
设置完成后,就能正常导入文件,进行仿真和调试了,导入方法是点击工具栏的 File,选择 Import Design…,在文件列表框中选中待观察的文件夹,接着全部选中出现的文件,再点击 Add 即可完成文件导入,如图 6 所示:
在这里插入图片描述
图 6导入文件
导入后便可以使用 Debussy 很方便的查看整个设计的原理图了,点击工具栏的 Tools,点击 New Schmatics,选择 Current Scope,整个设计的顶层原理图就被显示出来,如图 7 所示:
在这里插入图片描述
图 7 查看设计原理图
如果需要进行仿真,还需要导入 fsdb 文件,导入的方法是点击工具栏的 Tools,点击 New Waveform,选择 open,把在 ModelSim 工程下生成的 fsdb 文件导入进来,之后选择关心的信号添加进仿真即可。
使用这种仿真方法的优势在于,ModelSim 通常不能够随意添加信号到仿真列表,一次仿真完成后,如果发现遗漏了某个信号,就必须添加该信号,再重新跑一边仿真,有时候遇到很大的设计工程时,就会比较费时费力。而是用 fsdb文件在 Debussy 下仿真则不会出现这种情况,能够随意添加信号到仿真列表,为仿真带来很多便利。
在这里插入图片描述

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android Studio 中注册广播接收器(BroadcastReceiver)需要以下步骤: 1. 创建一个继承自 BroadcastReceiver 的类,这个类将处理接收到的广播消息。例如,你可以创建一个名为 MyBroadcastReceiver 的类。 ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 在这里处理接收到的广播消息 } } ``` 2. 在 AndroidManifest.xml 文件中声明广播接收器。在 `<application>` 标签内部添加如下代码: ```xml <receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.ACTION_NAME" /> <!-- 添加其他需要匹配的 action --> </intent-filter> </receiver> ``` 其中,`android:name` 属性指定了广播接收器的类名,`.MyBroadcastReceiver` 表示当前包名下的 MyBroadcastReceiver 类。`android:enabled` 和 `android:exported` 属性分别用于启用和导出广播接收器。 3. 在你需要发送广播的地方,创建一个 Intent 对象,并使用 `sendBroadcast()` 方法发送广播。 ```java Intent intent = new Intent(); intent.setAction("android.intent.action.ACTION_NAME"); // 添加其他需要传递的数据 sendBroadcast(intent); ``` 其中,`"android.intent.action.ACTION_NAME"` 是你自定义的广播 action,用于匹配注册的广播接收器。 这样,当发送的广播 action 与注册的广播接收器的 action 匹配时,MyBroadcastReceiver 类中的 `onReceive()` 方法将被调用,你可以在该方法中处理接收到的广播消息。记得在不需要接收广播时,及时取消注册广播接收器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值