Lattice FPGA iCE40 UltraPlus 转接板(基于 APIO 开发)

Lattice iCE40 UltraPlus 转接板的基础入门演示。这款开发板定位入门级 FPGA 开发,同时性能强大,能够满足多种应用场景的需求,套件内还配备了用于连接电脑主机的 USB 数据线。

在本次演示中,我们将展示如何使用 APIO 机制在 Linux 主机上开发该板卡。正如我们之前提到的,APIO 本质上是一个封装工具,它为 yosys、nextpnr、icepack 等工具提供了一个非常易用的操作界面。

第一步:安装 APIO
首先,在 Linux 主机上安装 APIO。按如下步骤创建一个 Python 虚拟环境:

使用以下命令安装 apio:

DigiKey_Coffee_Cup (venv) # pip install apio

安装所有 APIO 工具包:

DigiKey_Coffee_Cup (venv) # apio install -a

启用 ftdi 驱动程序:

DigiKey_Coffee_Cup (venv) # apio drivers --ftdi-enable

验证安装是否成功,检查版本:

DigiKey_Coffee_Cup (venv) # apio --version

若安装无误,终端会输出 APIO 的当前版本号。

第二步:编写代码与配置

在项目文件夹中保存以下 Verilog HDL 演示代码 blink.v。这是一个计数器程序,用于让 Lattice iCE40 UltraPlus 转接板上的绿色 LED 灯闪烁:

module rgb_test (input clk, output led_green);

   localparam N = 21;

   reg [N:0] counter;

   always @(posedge clk) counter <= counter + 1;

   assign led_green = counter[N];

endmodule

在文件夹中定义项目配置文件 apio.ini:

;APIO configuration file
[env:default]
board = ice40-up5k
top-module = rgb_test

最后,为该板卡创建引脚定义文件 up5k.pcf:

set_io -nowarn clk 35
set_io -nowarn led_green 40

第三步:构建与烧录

APIO 提供了一系列功能命令。在本次演示中,我们将使用最基础的命令。首先是使用 lint 验证 Verilog 代码:

DigiKey_Coffee_Cup (venv) # apio lint

这会检查 HDL 语法错误。如果没有错误,则开始构建项目:

DigiKey_Coffee_Cup (venv) # apio build

现在,使用套件自带的 USB 线将 Lattice iCE40 UltraPlus 转接板连接到 Linux 计算机,然后上传(烧录)项目:

DigiKey_Coffee_Cup (venv) # apio upload

程序烧录完成后, Lattice iCE40 UltraPlus 转接板上的绿色 LED 灯将进入高频闪烁状态。

至此,基于 APIO 工具链开发 Lattice iCE40 UltraPlus 转接板的流程演示完毕。APIO 还提供了多种测试类功能,可满足更多开发需求。

Lattice iCE40 UltraPlus 转接板是一款高性价比的 FPGA 开发板,板载原型开发区域,适用场景丰富,目前可在 DigiKey(得捷电子)平台选购。