FPGA入门——开发流程
链接:https://pan.baidu.com/s/1GLpXD4Xg92Ha3ulUc0q3hw
提取码:jw9d
看文章之前先下载好QuartusⅡ 还有ModuleSim-altera。
若没有下载的,可以到文末点击打开链接下载,下面的工程也压缩在里面,有兴趣的同学可以自行下载。
首先需要了解的是FPGA的开发流程,那么下来有多少个流程呢?
1、设计定义
2、设计输入
3、分析与综合
4、功能仿真(我们在这里使用ModuleSim-Altera)
5、布局布线
6、时序仿真(同上ModuleSim-Altera)
7、IO口分配以及配置文件生成
8、配置(烧录)
9、在线调试
下面,我们来用一个流水灯来解释一下上面的开发流程。
两个输入IO(a,b),可以是高电平,也可以是低电平
输入按键按下时,LED灯与a端口状态保持一致;
输入按键释放时,LED灯与b端口状态保持一致。
1、先打开QuartusⅡ,然后新建工程;
2、然后设置项目路径,还有名称;
我命名项目为led_text,注意文档保存路径不能含有中文,否则软件可能会报错!!!
3、然后点击next,
这里直接点next就好,不用添加;
4、选择型号,我的芯片型号是CY4的EP4CE6E22C8,
选择好之后点击next;
5、仿真软件选择ModuleSim-Altera,选择VerilogHDL语言,然后点击next;
6、最后一步,主要看你前面的设置,这里点击Finish就好。
这样就完成新建工程了。
然后新建一个文件,点击红色框,然后选择Verilog HDL File;
我的QuartusⅡ与Notepad++关联,所以我在Notepad++里面编写程序;
新建一个名为led_test.v的文件;
然后点击Files,把刚刚新建的led_test.v添加进去;
选择文档之后,点击add,然后点击ok;
右击文档,点击红色框一栏,设为顶层文件。
然后,可以开始编写文档了。注意module后面的名字要跟文件的名字一样
然后再编写一个testbench文件,testbench是一种验证的手段。首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验,这个就是testbench的含义。
文档新建跟刚刚的led_test一样,我命名为led_test_tb.v;
然后点击Assignment→Setting,
然后在新弹出的框里面点击New,之后
然后点击OK,再点击OK。
这样就可以进行功能仿真了,点击
就会弹出ModuleSim-Altera,然后点击黑色的放大镜;
就会看到仿真图
可以看到在理想状态下仿真图是没有问题的,退出ModuleSim,
然后进行时序仿真(门级仿真)点击工具栏上
,
再点击Run
然后跟刚刚操作一样,点击黑色放大镜,可以看到在恶劣情况下,时序仿真是存在一定偏差的。
再退出ModuleSim。
接下来进行IO口分配,点击
然后我们来看板子的原理图,
我在这里使用a,b分别对应IO_1,IO_2,
IO_1,还要IO_2,分别连接137, 138引脚;
switch连接91引脚;
led_out对应led[0],为30引脚
设定好之后,双击Location,在对应的信号选择刚刚设定的引脚
那么接下来再编译一边就可以烧录到FPGA里面。
点击Add Files,点击output_files的 led_test.sof文件
打开FPGA开关,点击Start,烧录程序即可。
灰色线为a(IO_1),红色线为b(IO_2)!!
- 当a = 0,b= 1,时,且switch = 0;
switch = 1;
- 当a = 1,b= 0, switch = 0
switch = 1
注意其他图与第一张图红框部分的区别。
就这样,一套比较完成的开发流程完成了,若有不正,欢迎指出,一起学习哈。
链接:https://pan.baidu.com/s/1GLpXD4Xg92Ha3ulUc0q3hw
提取码:jw9d