FPGA初学者之路

FPGA初学者之路

FPGA初学者之路

FPGA,这个词在我脑海里很长时间了,以前从百度百科中查到FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 
最近想试着学习下这个新东西.

第一步

想要学习FPGA,第一应该是要学习编程语言,调查了下,现在业界基本上都是用Verilog语言,用VHDL的相对较少,所以选择了大众化的语言Verilog:

  1. 了解Verilog ,还好之前学过C语言,有一定的编程基础,看网上说Verilog语言和C语言相似度还是比较高;所以花了基本上一周时间学习完了编程语言,在这里重点说下,Verilog语言中最基本的就是数据类型: reg:可以存储数据,如触发器; wire:连接两个引脚,不能存储数据.
    后面学习中会用到很多这样的类型,一定要搞清楚.另外就是一些运算符号.总知和C语言还是有一定的相似度,如果有C语言基础的,学习Verilog语言就要简单很多.
  2. 基本语言搞清楚后,然后选择工具练练手;进入动手做做自己想要的设计了.在网上看了几款IC设计软件,Modelsim,Quartus, Vivado,Robei. 前几款看了下,都是国外的软件,都下载了,想选一款趁手的工具.花了几天时间下载了几款软件,电脑内存基本上给耗光了,找了很多相关资料,都是蒙圈似的,没有找到基本的门路,安装也耗了我几个晚上.Robei软件是国产的一款EDA 工具,在他们官网上把软件下载下来了,这款软件就几十兆,开始以为可能不怎们好用,抱着试试的心态,安装并注册了,获得了一个免费的学生版软件,15个模块,我想能够够我初学用了.打开这个软件的时候,眼前一亮,这款软件很直观,采用的是框图和代码的形式,非常直观.但是网上关于这款软件的资料都还比较少,不过他们官网上提供的视频教程和相关资料还是很丰富的,够我这个初学者用了.
  3. 先来一个逻辑门设计

逻辑门设计

数字逻辑是芯片电路的基本组成部分,先来一个最基本的模块设计
首先:新建一个模块,命名为andgate,类型为:module,输入端口2,输出端口1,点击ok. andgate模块就建立好了
FPGA初学者之路_第1张图片
接下来要修改管脚名称:在属性栏中,把 p0 的名称改成 a,p1 的名称改成 b,p2 的名称改成 y
FPGA初学者之路_第2张图片
FPGA初学者之路_第3张图片在属性栏中还能修改颜色,这给我这个初学者增加了一些亮点,不用看着枯燥的界面打瞌睡了

接下来就是输入核心代码了,Robei软件这点好,可以一边框图连线,一边写自己想要的核心代码
在这里插入图片描述
这个地方Graph和Code可以互相切换.进入Code中输入核心代码

输入:assign y = a & b;FPGA初学者之路_第4张图片
一开始我很奇怪,这个代码开头行数 为什么从16开始的,不是从1开始,根据视频和[7天搞定FPGA教材]. Robei在接口部分代码都是自动生成的,可以通过View----Code-view查看完整的代码
FPGA初学者之路_第5张图片
简单的设计文件就完成了,对我这个新手来说,完全不是问题,接下来要做测试文件了.
在andgate框图模块中,右击 出来一个"Create test",点击Create test,自动新建一个andgate_test 测试文件,简直不要太方便了吧.

FPGA初学者之路_第6张图片
把之前设计好的andgate模块放入到测试模块中,这个地方有点别捏,就是先要单击andgate模块,然后再单击放入andgate的模块.还不是很习惯,一般是拖动.不过,多操作几下,感觉比拖到模块更好使用.
FPGA初学者之路_第7张图片
注意这里要把所有的文件都要放在一个文件名中,而且文件名不能有中文,空格等特殊字符,要不然到时候编译代码的时候,这些都不会被识别.
FPGA初学者之路_第8张图片
点击连线按钮,选中要连接的端口,然后连接到另外一个端口,这个地方,端口中间的连接线就是信号输入和输出的模式.连接线的颜色可以根据两边端口的颜色自动渐变,这个我喜欢
现在写入测试激励代码
initial begin
p0 = 0;
p1 = 0;
#1
p0 = 1;
#1
p1 = 1;
#1
p0 = 0;
#1
p1 = 0;
#1
$finish;
end

FPGA初学者之路_第9张图片
想看全部代码也点击codeview
接下来将simulation,看仿真,也是验证我们设计有没有问题的时候了
FPGA初学者之路_第10张图片
仿真没有问题,说明我的andgate设计成了,第一个逻辑门设计的还可以.
整体来说,Robei软件在使用的时候非常方便,而且也节省了不少时间,整体操作还是非常直观可见.
接下来的日子,疫情期间,很多事情不能做,就好好开始学习新的知识.

你可能感兴趣的:(FPGA)