ARTICLE · 992408
Gowin 云源软件入门教程(一)—— 建立工程
今天开始云源软件的使用教程,想要熟悉 FPGA 开发,基本的软件使用还是要熟练,Gowin IDE 难度不大,一天就能熟练使用。
第一期我们把先开发的整条流程走一遍:新建工程、选器件、写代码、综合、配引脚、加时钟约束,最后下载到板子上。
本教程使用的云源软件版本为 V1.9.12.03
一、准备工作
开始之前需要准备以下东西:
已安装 Gowin 云源软件商业版(教育版一样); 对应开发板及 JTAG 下载器; 一块高云 FPGA 开发板
云源软件直接在高云官网下载安装:https://www.gowinsemi.com.cn/
安装很简单,这里就不赘述了,如果真的有需要,可以去看看 Sipeed 官网的安装教程
打开 Gowin 云源软件,下图就是云源软件的起始页。

Gowin 云源软件商业版需要 License,不过很好申请,直接在官网上申请即可,跟他们说买了高云的开发板进行学习就行
二、新建 FPGA 工程
首先点 New Project 来创建一个新工程。
1. 创建 FPGA Design Project
在新建窗口中选择 FPGA Design Project,单击“OK”。

2. 填写项目名称与保存位置
项目名填 led_blink,再选一个保存目录。向导会在这里建好工程文件、src 源码目录和实现目录。

3. 选择目标器件
器件型号必须和你开发板上的器件一致。这里我的开发板是:
GW5AT | |
GW5AT-60 | |
B | |
UBGA225 | |
C1/I0 | |
GW5AT-LV60UG225C1/I0 |
在下方列表中选中对应的 Part Number,再点“Next”。

4. 核对摘要并完成创建
最后看一眼项目名、路径和器件型号,没问题就点“Finish”。

工程建好后,设计摘要页会列出工程文件位置和目标器件。后面如果忘记了芯片型号,也可以回到这里核对。

三、添加并编写 Verilog 源码
1. 新建 Verilog 文件
通过 File → New 新建文件,类型选 Verilog File。

文件名填 led_blink。记得勾选 Add to current project,否则文件写好了,综合时工程里却找不到它。

2. 编辑 Verilog 文件
这里我们写一个简单的 LED 闪烁程序:
module led_blink(input clk,input rst_n,output reg led);reg [31:0] led_cnt;always @(posedge clk or negedge rst_n) beginif (!rst_n) begin led_cnt <= 1'b0;end else begin led_cnt <= (led_cnt == 50_000_000 - 1) ? 0 : led_cnt + 1;endendalways @(posedge clk or negedge rst_n) beginif (!rst_n) begin led <= 1'b0;end else begin led <= (led_cnt == 50_000_000 - 1) ? ~led : led;endendendmodule
四、综合与布局布线
保存源码,切到左侧 Process 标签,直接双击运行 Synthesize。完成后看下方 Message 面板,确保没有 error。
截图中综合已经完成,信息栏显示当前顶层模块为 led_blink。

当前项目只有一个文件,软件会自动将其设置为顶层,如果项目中有多个文件,最好去 Hierarchy 标签页手动设置顶层文件
五、添加引脚与时序约束
1. 配置 I/O 管脚
打开 Tools → FloorPlanner,在 I/O Constraints 标签页完成每个引脚的物理约束,约束完成记得保存。截图中的配置如下:
rst_n | H12 | LVCMOS33 | |
led | E6 | LVCMOS33 | |
clk | G12 | LVCMOS33 |

2. 创建时钟约束
打开 Timing Constraints Editor,将 clk 端口约束为 25 MHz 时钟:
Clock name: clk_25mObject: [get_ports {clk}]Frequency: 25 MHzPeriod: 40 ns

保存后,编辑器会写入等效的 SDC 约束:
create_clock -name clk_25m -period 40 -waveform {0 20} [get_ports {clk}]
加完约束后运行 Place & Route。这一步要让工具按真实引脚和时钟要求实现设计的布局布线。
六、生成文件并下载到开发板
布局布线通过后,双击打开 Programmer。

Programmer 会列出待下载的 .fs 文件。点 USB Cable Setting 选择下载器端口。截图中使用 USB Debugger A,软件已经检测到设备。

保存设置,确认文件和操作类型。这里的 SRAM Program 是 JTAG 在线下载:下载后能立刻运行,但是开发板一断电,配置就没了。
点工具栏的 Program/Configure 按钮,等输出窗口提示成功。板上的 LED 应该已经开始按设定周期翻转。
七、自定义文本编辑器
前面也看到了,Gowin 的内置文本编辑器实在是不怎么好看,也不好用,我们可以关联自己习惯的文本编辑器,
在 Tools → Options → External Editor 中添加你喜欢的文本编辑器,我喜欢用 VS Code,添加完成后记得勾选 Always Use External Editor。

以后从工程中打开 Verilog 文件会直接唤起你关联的文本编辑器。改完保存,再回 Gowin 跑综合和布局布线。
总结
本期只是简单的走了一遍 Gowin IDE 的完整开发流程,也能看出这个软件其实很简单,甚至有点简单过头了,简单到没有那么好用,不过对与入门的同学来说是非常友好的,可以将更多精力放在 FPGA 开发本身上,其实云源软件是自带中文的,但是它的翻译是不完整的!还处于中英混杂的阶段,所以教程我就直接用英文界面做了。
后续会详细解释每个功能页面的用法,以及其中的一些坑。