看这个书给我的感觉就是:Verilog语言跟C语言很像,我也知道它跟C语言是完全不同的思路的,但我就是不明白为什么它就可以用代码来描述硬件呢。还有这个书上名没有对FPGA做一个基本的介绍,所以看这个书的时候我甚至都不大了解FPGA是个什么东西。所以前面一段时间就一直对着这个书、做一些笔记、记语法,跟学习软件没啥区别。
最近这一周就想着自己开始捣鼓QuartusII软件的仿真,刚开始的时候还以为这个软件就跟C语言等语言的编译环境一样,把代码输进去点击仿真按钮就会自己仿真然后由结果显示出来的。经过查找相关的资料材才知道这个是不一样的,FPGA的仿真分为功能仿真(RTL级仿真)、综合仿真和综合后仿真。每一个仿真的操作步骤也都是不同的。还有一个之前没有认识到的是FPGA的仿真还要借助第三方的EDA工具进行仿真,比如说Modelsim SE 或Modelsim-Altera等,还要自己编写测试脚本。这几天也通过自己找资料大概了解了QuartusII和Modelsim软件的使用,可是在做仿真的时候就是不能得出正确的波形。而每本参考书上对这部分也只是简单的介绍,按照他们的步骤到最后就出不来。这个让我很困惑,昨天在找资料的时候,发现一位前辈写的他读了特权同学的《深入浅出玩转FPGA》这本书的感受,感觉跟我的困惑差不多。而且觉得他写得很有道理就决定去找一下这本书,不幸的书在图书馆暑假上没有找到这本书不过找到了特权同学写的另一本书——《FPGA/CPLD边练边学》。
今天下午就开始研读这本书,看了前面几章这本书给我的感觉是跟其他的教科书不一样,文字描述的不那么正式,看起来比较符合舒服就好像有个人在面前跟你说一样。因为之前就看过夏老师有关Verilog的书,对Verilog已经有所了解,所以一下子就把前三章看完了。其中有关对FPGA硬件部分的介绍,让我对FPGA有了新的认识,LAB、LE等词也知道什么意思了。第四章是一个完整的工程实践案例,它讲的是一个基于特权同学自己开发的一个开发板的电灯实验。我就跟着它上面的步骤一步一步地来,这一次终于出现了正确的仿真波形。
针对以前的仿真和这次的步骤总结了以下以前的错误,和这次中遇到额问题以及解决方法。
1、建立工程和顶层文件
顶层文件一般和工程名字相同,工程建立完后,新建一个空白的Verilog文件,在输完代码后点击保存系统会自动保存到之间监理工程的目录下文件名也会自动设置成与工程名一样。并且默认为是顶层文件。
2、关于测试文件
之前每次仿真错误的可能原因是发测试文件也加入到工程里面去了,而一般测试文件时不可综合的。对于测试文件正确的做法是,在确保所所输入的代码没有无法错误的情况下,点击菜单栏的Processing——Start——Start Test Bench Template Writer ,系统会在工程目录下自动生成一个.vt 的文件。找到这个文件,根据设计的代码修改测试监本文件后保存。
3、对Modelsim软件的操作
之前都是直接用Modelsim来仿真的,这次是在QuartusII来调用Modelism进行仿真的。这里出现了和书上步骤不一样的地方了。书上是调用后就会直接出现仿真波形,我这边是没有出现还要对测试脚本进行编译和点击开始仿真。刚开始的时候也是没有看到正确的仿真波形的,我实验了好多从都是一样,看到的波形是只有三条直线的。后来通过对比发现是波形图下面的两个间隔之间的距离太小了,在窗口看到的知识波形图的一部分。尝试了各种方法之后,发现在工具栏上的放大和缩小工具可以用来放大和缩小波形。从而得到了张雀的波形。
虽然这是一个最简单的功能的仿真,但是在我学习FPGA的过程中也算得上是一个小进步啦。还是要感谢特权同学的书的指导,让我解开了一些对于FPGA的迷惑。也让我感觉到选着一般好的参考书对于学习还是很重要的。还有一点是,在按照教程去操作的时候,自己这边出现的救国并不一定会和教程中一样,当遇到不一样的时候要学会自己分析是不是自己在操作上错误了,然后想办法去解决。其实我觉得出错是好事,这样才能让自己去钻研去学习。