基于香橙派鲲鹏Pro开发板实现FPGA的LED灯控制
发表于 2025/05/27
0
作者|楼佳明
1.实验环境说明
- 香橙派鲲鹏 Pro开发板、显示器+键鼠一套、openEuler22.03操作系统;
- 每套实验环境可供1名学员上机操作。
2.实验原理介绍
FPGA上总共有16个可编程的LED。下图显示了这些LED的位置、其在原理图中的信号名称,以及在FPGA代码中驱动它们对应的FPGA引脚。
本实验案例通过在开发板上自带的Gowin IDE软件,实现LED灯的闪烁控制。
3.实验步骤
3.1 启动Gowin IDE软件
步骤1 打开终端
通过显示器连接到开发板后,以root用户完成登录,输入密码openEuler并按Enter键。

登录成功后点击桌面左上角的活动,然后点击终端。
步骤2 进入Gowin IDE启动程序所在文件夹
在终端中运行下面的命令进入Gowin IDE启动程序所在文件夹。
cd /opt/Gowin/IDE/bin
步骤3 运行软件
运行下面的命令打开Gowin IDE。
./gw_ide
Gowin IDE打开后的界面显示如下所示:
3.2 创建工程
使用Gowin IDE创建一个名为led_on的工程。
步骤1 创建保存FPGA工程的文件夹
创建一个名为opimsoc的文件夹,用于保存在本手册中创建的FPGA工程文件。
mkdir -p /root/opimsoc
步骤2 创建FPGA工程
Gowin IDE启动后打开的页面如下图所示,主要分为分为4个板块:
1)Recent Projects:显示近期打开过的工程。
2)Quick Start:用来快速的创建一个新工程、打开已有工程和打开工程样例。
3)Tools:包括 FloorPlanner(物理约束编辑器)、Timing
Constrains Editor(时序约束编辑器)和Programmer(FPGA下载器软件)工具。
4)User Manuals:用户手册,点击可进入高云官网的产品介绍。
步骤3 新建工程
在Quick Start中点击New Project来新建一个Gowin FPGA工程。
接着点击OK按键即可。
步骤4 完成Project wizard
然后在Project wizard界面中填写工程名称以及设置工程文件保存到前面创建的opimsoc文件夹。再根据实际情况确定是否勾选 Use as default project location,勾选之后,下一次建立工程的时候,将会默认保存到opimsoc文件夹中。设置完成之后,点击
注意,工程名称中不能有中文字符和空格。
步骤5 设置FPGA的器件信息
然后在Select Device界面中设置OPi MSOC使用的FPGA的器件信息,选择完成之后,再点击Next。
a) Series:用来过滤系列,OPi MSOC需要选择GW5AT。
b) Device:用来过滤器件,OPi MSOC需要选择GW5AT-138。
c) Package:用来过滤封装类型,OPi MSOC需要选择PGBA484A。
d) Speed:用来过滤速度等级,OPi MSOC需要选择C1/10。
e) Device Version:用来过滤器件的版本,OPi MSOC需要选择B。
f) Part Number:用来选择型号,该栏中会显示所选择器件的详细资源信息。
步骤6 完成工程创建
最后会出现Summary界面,然后点击 Finish,完成工程的创建。
工程创建好后显示的界面如下所示:
3.3 编写FPGA源文件
在Design板块的空白处点击鼠标右键。
然后选择New File。
然后输入Verilog File源文件名字,led_on。再点击OK即可。
然后在Design板块中会自动新建一个Verilog Files文件夹,并且该文件夹下会包含刚才创建的名为led_on.v的Verilog 源文件。
然后在代码编辑框中就可以编写Verilog的代码了。
在led_on.v文件中输入下面代码,控制前8个LED灯,其中4个点亮,4个熄灭。
module led_on(
output wire [7:0] LED
);
//Assign LED to be ON
assign LED = 8'b01010101;// Turn on the LED
endmodule
编写完成后,请点击下图所示位置的按钮来保存下Verilog源文件。
3.4 分析综合
通过运行工具栏中的Run Synthesis按钮来运行综合。
运行完成后,如果Console中没有出现任何错误,说明综合成功了,如果有报错,就需要根据报错来修改代码,再重新执行综合。
3.5 物理约束
直接点击工具栏中的快捷按钮来运行物理约束。
然后会打开FloorPlanner界面。
然后点击左下角的I/O Constraints进行I/O约束,分别设置成如下图所示的引脚位置。
约束完成之后,请点击下图所示的位置保存下物理约束文件。
关闭FloorPlanner页面,再回到Design窗口中,可以看到会多了一个cst格式的文件,并且里面有刚才设置的物理约束的内容。
LED[0]对应OPi MSOC开发板上丝印为2的LED灯,程序会控制其点亮。
LED[1]对应OPi MSOC开发板上丝印为3的LED灯,程序会控制其熄灭。
LED[2]对应OPi MSOC开发板上丝印为4的LED灯,程序会控制其点亮。
LED[3]对应OPi MSOC开发板上丝印为5的LED灯,程序会控制其熄灭。
LED[4]对应OPi MSOC开发板上丝印为6的LED灯,程序会控制其点亮。
LED[5]对应OPi MSOC开发板上丝印为7的LED灯,程序会控制其熄灭。
LED[6]对应OPi MSOC开发板上丝印为8的LED灯,程序会控制其点亮。
LED[7]对应OPi MSOC开发板上丝印为9的LED灯,程序会控制其熄灭。
3.6 布局布线
直接点击工具栏中的快捷按钮来运行布局布线。
布局布线完成后的打印如下所示,然后还会生成fs格式的比特流文件。
3.7 板级验证
在OPi MSOC开发板上测试编写的程序,LED灯的显示情况正常应该和下图所示的一样。
直接点击工具栏中的快捷按钮来打开Programmer。
然后如果弹出了下图所示的界面,说明OPi MSOC已正常连接到了OPi Kunpeng Pro开发板上。
首先点击 USB Cable Setting,然后再点击弹框中的Save按钮进行保存。
点击Gowin Programmer中的Program按钮,就会将生成的fs比特流文件下载至FPGA的SRAM中。
Programmer下载成功fs文件后会打印下图所示的信息。
下载比特流文件到FPGA的SRAM中后会自动运行,此时可以看到OPi MSOC开发板上对应的LED灯被点亮。
至此本实验案例顺利完成。
4.更多学习资源
1)香橙派鲲鹏Pro开发板技术学习加油站:
2)香橙派鲲鹏Pro开发板专区二维码: