FPGA初学者之路
FPGA,这个词在我脑海里很长时间了,以前从百度百科中查到FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
最近想试着学习下这个新东西.
想要学习FPGA,第一应该是要学习编程语言,调查了下,现在业界基本上都是用Verilog语言,用VHDL的相对较少,所以选择了大众化的语言Verilog:
数字逻辑是芯片电路的基本组成部分,先来一个最基本的模块设计
首先:新建一个模块,命名为andgate,类型为:module,输入端口2,输出端口1,点击ok. andgate模块就建立好了
接下来要修改管脚名称:在属性栏中,把 p0 的名称改成 a,p1 的名称改成 b,p2 的名称改成 y
在属性栏中还能修改颜色,这给我这个初学者增加了一些亮点,不用看着枯燥的界面打瞌睡了
接下来就是输入核心代码了,Robei软件这点好,可以一边框图连线,一边写自己想要的核心代码
这个地方Graph和Code可以互相切换.进入Code中输入核心代码
输入:assign y = a & b;
一开始我很奇怪,这个代码开头行数 为什么从16开始的,不是从1开始,根据视频和[7天搞定FPGA教材]. Robei在接口部分代码都是自动生成的,可以通过View----Code-view查看完整的代码
简单的设计文件就完成了,对我这个新手来说,完全不是问题,接下来要做测试文件了.
在andgate框图模块中,右击 出来一个"Create test",点击Create test,自动新建一个andgate_test 测试文件,简直不要太方便了吧.
把之前设计好的andgate模块放入到测试模块中,这个地方有点别捏,就是先要单击andgate模块,然后再单击放入andgate的模块.还不是很习惯,一般是拖动.不过,多操作几下,感觉比拖到模块更好使用.
注意这里要把所有的文件都要放在一个文件名中,而且文件名不能有中文,空格等特殊字符,要不然到时候编译代码的时候,这些都不会被识别.
点击连线按钮,选中要连接的端口,然后连接到另外一个端口,这个地方,端口中间的连接线就是信号输入和输出的模式.连接线的颜色可以根据两边端口的颜色自动渐变,这个我喜欢
现在写入测试激励代码
initial begin
p0 = 0;
p1 = 0;
#1
p0 = 1;
#1
p1 = 1;
#1
p0 = 0;
#1
p1 = 0;
#1
$finish;
end
想看全部代码也点击codeview
接下来将simulation,看仿真,也是验证我们设计有没有问题的时候了
仿真没有问题,说明我的andgate设计成了,第一个逻辑门设计的还可以.
整体来说,Robei软件在使用的时候非常方便,而且也节省了不少时间,整体操作还是非常直观可见.
接下来的日子,疫情期间,很多事情不能做,就好好开始学习新的知识.