文章目录
- @[toc]
- 1. 工程目录创建
- 2. 新建工程
- 3. 设计输入
- 4. 设计仿真
- 5. 综合
- 6. 管脚分配
- 7. 时钟约束
- 8. 比特流文件生成
- 9. 程序下载
- 10. 程序固化
- 11. 总结
- 12. 工程下载
本文是高云FPGA系列教程的第2篇文章。
介绍完高云FPGA开发板,高云FPGA开发环境搭建之后,接下来才是真正的高云FPGA实战开发,如果你有国外FPGA芯片的使用经验,那么对于高云FPGA的使用,也可以很快的上手。
本文介绍基于高云FPGA开发环境——云源软件的使用,介绍如何创建FPGA点灯工程、管脚分配、时钟约束、综合、布局布线、比特流文件生成、下载和固化。
1. 工程目录创建
为了规范的进行开发,建议按照如下文件结构对FPGA工程进行管理,先创建一个文件夹:gw1nsr_4c_fpga_demo
,在这个文件夹下再创建以下文件夹:
- rtl:用于存放Verilog设计文件
- tb:用于存放仿真文件
- modelsim:由于云源软件不支持仿真,需要借助第三方仿真工具进行仿真,此文件夹用于存放modelsim工程文件
- mcu:用于存放MCU工程
- sct:用于存放约束文件,如管脚约束,时钟约束等
(后续实际操作发现,此种文件管理方式不利于工程文件夹的复制和修改)
2. 新建工程
打开高云云源软件教育版,点击新建工程,或者直接按下Ctrl+N
快捷键,打开工程创建向导。
输入工程名称:project
,保存路径选择之前创建的gw1nsr_4c_fpga_demo
,创建工程的同时,会创建一个和工程名称相同的project
文件夹。
以后就可以直接打开project目录下的gprj
后缀的工程文件。
选择芯片型号:GW1NSR-4C
在工程上右键,选择New File
,新建设计文件,在弹出的窗口,输入模块名top_hdl
,文件类型根据需要选择,保存路径为之前创建的rtl
文件夹。
勾选添加到当前工程
3. 设计输入
在云源软件编辑器中输入功能描述,本文以LED点灯为例,结合按键来控制闪烁频率。
实现的功能为:
- 对外部27MHz时钟信号进行计数,控制LED周期性闪烁。
- TangNano 4K板载的两路按键,一路作为复位,一路作为用户按键。
- 用户按键未按下时,LED每500ms翻转一次状态。
- 用户按键被按下后,LED每100ms翻转一次状态。
Verilog源文件
Testbench仿真文件:
源文件截图:
激励文件截图:
4. 设计仿真
由于云源软件暂时不支持仿真功能,我们还需要借助第三方工具来完成功能仿真,这里我选择的是Modelsim,仿真的波形如下:
和我们的预期设计是一致的,为了缩短仿真时间,我把LED闪烁周期值减小了。
5. 综合
在进行管脚分配前,需要先进行综合,综合工具为高云自研GowinSynthesis工具,如果有多个设计文件,还需要指定顶层模块的名称,在综合选项右键点击Configuration
指定工程的顶层模块名称为:top_hdl
6. 管脚分配
新建物理(管脚)约束文件,命名为top_sct
,并保存到sct文件夹下。
输入管脚约束文件名。
点击Floor Planner
,打开图形化管脚分配工具。
分配管脚,和开发板上的管脚保持一致
或者直接输入约束语句:
7. 时钟约束
时序约束不是必须要做,可以省略。
新建时序约束文件,命名为top_sdc
,也保存到sct文件夹中。
点击时序约束Timing Constraints Editor
,打开时钟约束工具。
这里只对外部时钟进行约束,右键点击Ports->gclk
,Add Clock
,输入时钟频率为27MHz。
或者直接输入以下语句:
8. 比特流文件生成
点击Place and Route
,生成比特流文件,速度很快,几秒钟,比国外的EDA环境快很多!
查看时序报告,可以看到满足设计要求,最大频率可以到128MHz。
查看逻辑资源占用情况
9. 程序下载
点击Program Device
,打开编程工具,执行编程。
配置为SRAM模式,选择project/impl/pnr
下的fs格式的比特流文件。这个模式是下载到内部RAM中,掉电程序会丢失。
右键执行编程,下载速度很快。
10. 程序固化
选择Embedded Flash Mode
会把程序固化到内部Flash中,掉电程序不丢失,上电程序瞬时启动,同样是选择fs文件。
fs程序文件的保存路径
fs文件的内容格式
11. 总结
相比于国外FPGA厂商EDA开发环境,几个G到几十个G的大小,高云云源软件安装包也很小巧,界面也很简洁,综合速度非常快,是我没想到的,好像在使用单片机一样,点一下就编译完成了,以本文简单的LED示例工程为例,比特流文件几乎在几秒钟内生成;无论是下载比特流文件到RAM还是Flash中,速度都很快,而且只有一种fs程序文件格式,不用再进行bit/mcs转换;云源软件自带的编辑器也很好用,和Notepad++界面差不多,而且快捷键很方便,具有基本的自动补全功能。
12. 工程下载
以下链接是本次笔记中建立的高云FPGA工程,开发环境是Gowin V1.9.8.07 Education
- gw1nsr_4c_fpga_demo.rar
本文是高云FPGA系列教程的第2篇文章。