调试VHDL:如何?

Dar*_*ght 4 debugging vhdl

我是VHDL的新手,无法弄清楚如何调试VHDL代码.

有没有什么软件可以让我随着时间的推移或类似的东西洞察我的VHDL实体的内部信号?

请帮忙.

Ros*_*ers 8

正如其他帖子所指出的,你可能需要一个像GHDL这样的模拟器.但是,要调试模拟,有几种不同的方法:

  • 经典的打印声明 - 只需writeline(output,[...])在程序代码中混合使用即可. 看到这个hello world示例. 如果您刚刚开始,那么添加print语句将是非常宝贵的.对于我所做的大部分模拟调试(这是我工作的一部分),我几乎完成了基于我们在设计和测试平台中构建的print语句的所有调试.它仅用于最终调试,或者用于下一个调试方法的更难的问题.

  • "倾倒"模拟(对于GHDL,请参阅此页面页面).这是您的设计(或您的设计的一个子集)的逐周期跟踪.就像你将逻辑分析仪连接设计中的每一根线一样.您可能想要的有关您的设计的所有信息,但信号水平非常低.要使用此方法:

    1. 创建模拟"转储".这种转储的基本格式是Value Change Dump或VCD.无论您使用哪种模拟器,都需要阅读有关如何创建VCD的文档.(您也可以在文档中搜索"dump" - 您的模拟器可能会使用不同的文件格式进行转储.)

    2. 创建模拟转储后,将转储加载到波形查看器中.如果您正在使用gEDA包,那么您将使用gtkwave来查看转储.

note备注 如果要使用GHDL和gtkwave来调试VHDL代码,可以使用以下命令在ubuntu上安装它们:

% sudo apt-get install geda ghdl
Run Code Online (Sandbox Code Playgroud)

(假设您对运行ubuntu的计算机具有root访问权限)