Linux环境下学习VHDL语言,用GHDL+GTKWave!

转自:http://hi.baidu.com/df_xyz/item/d90f6b0fee851e39f2eafcee


最近学习VHDL语言,老师告诉我们可以使用Quartus这个软件。我一看,我靠,什么玩意,这软件光安装包就是GB级别的,比某些游戏还大!有天理么?比某些游戏还大!咱可不过是学习一下VHDL编点简单的东西,用得着这种专业软件么?我一向遵循KISS原则,绝不像某些人,记录几行字还要开Word。因此,要发扬一下开源软件又小又强的优势,寻找一款VHDL语言编译器、模拟器再加上一个波形查看器就够了。

Google后的得到的一个方案是:使用GHDL+GTKwave+任意合适的文本编辑器。

GHDL,安装完成后30MB;GTKWave,安装完成后4MB。相比Quantus或者ModelSim等等别的高级玩意,这个搭配更适合VHDL语言初学者。至于文本编辑器,小至”记事本“Gedit(自带VHDL语法高亮,太万能了),大至Emacs+VHDL模式插件或者VIM加相应插件,总有合适的。


GHDL是一个基于GCC的VHDL语言编译/模拟命令行工具,很多人一看到命令行就头痛,其实这有啥的?看图说话,编译一个VHDL源程序再模拟、导出波形文件再查看就那么简单:

ghdl -a ”某VHDL源程序文件名“——-a“命令即分析(编译)该VHDL源码,这一步从源码生成.o格式的目标文件,以便以后链接。

ghdl -e ”某实体(Entity)名“——从分析好的源码里导出可模拟运行的某实体,这一步已经生成了可执行文件。

ghdl -r ”某实体名“ --vcd=”导出的.vcd格式波形文件名“——模拟运行该实体的功能,并导出指定文件名的波形文件。

接着就gtkwave “.vcd文件文件名”即可用GTKWave来查看波形。以下是我编的一个带使能端的3线-8线译码器的波形图。


在使用GTKWave这里我纠结了好久,这软件默认没有任何显示任何波形,相信还会有更多人会在这里不知所措。

解决方法是,把SST框下方的各种信号拖入右侧的Signals栏,即可在黑框里看到波形了。

要是还看不到?这个问题我又纠结了好久——最后才发现,直接把源码原原本本的编译再导出波形文件是不对的,还得写一个对应源码的Test Bench,即一个指定输入信号怎么随时间变化的源码,编译这个源码再导出波形文件,就能用GTKWave观看了。或者还有更加方便的波形查看器,不必要手动写Test Bench这样麻烦,可自行寻找。

Test Bench怎么写?看这里http://esd.cs.ucr.edu/labs/tutorial/

一堆VHDL入门实例,Code源码+Test Bench,VHDL菜鸟的福音。很奇怪的是,作者作为一个中国人,没有写汉语版本的教程?


最后秀一秀Emacs的VHDL模式,语法加亮,自动补全,代码美化,各种功能。同时我真要感叹一下Gedit这个Linux下的记事本,真真正正的万能啊,涵盖了从A打头的(例如Ada)到Y打头的编程语言、脚本语言、标记语言等近百种语言的语法加亮功能和自动补齐功能。

你可能感兴趣的:(Linux环境下学习VHDL语言,用GHDL+GTKWave!)