前几周总结了下MCU, Xavier的GPIO, UART, CAN, 以太网等的使用, 本周开一下FPGA, 水平有限, 只当一个划水的总结, 如有错误, 欢迎指正.
Quartus Prime 精简版下载
官网里可以看到最新的不收费的Lite版本已经更新到19.1了, 但是还没有Windows版本:
那就切换回18.1, 选择Windows:
下面下载Quartus Prime
, Modelsim
以及要用到的Cyclone IV
的器件支持, 用Eagleget
之类的下载软件下载还是挺快的, 注意下载到同一个文件夹, 需要注册一个Intel的帐号:
可以看到更新处有感叹号, 点击更新, 把这个更新也下载下来:
下载完后, 就双击QuartusLiteSetup-18.1.0.625-windows.exe
进行安装, 中间可以换安装位置:
默认(这里当时的器件支持还没下下来, 后面单独装):
之后就可以一路到底了, 接下来安装器件支持, 找到Windows
开始菜单中的Device Installer(Quartus Prime 18.1)
, 找到下载的Cyclone IV
:
一路装下去就可以了.
接着安装更新QuartusSetup-18.1.1.646-windows.exe
(tar包解压):
也是一路到底就好.
这里用Verilog
写一段EP4CE6F17C8
点灯的代码, 引脚分布如下图:
名称 | 引脚 | 说明 |
---|---|---|
sys_clk | E1 | 50M有源晶振 |
sys_rst_n | M1 | 复位, 低有效 |
led | E10 | 高电平点亮 |
步骤如下:
EP4CE6F17C8
:File -> New -> 选择Verilog HDL File:
填入以下代码:
module led_test(
input sys_clk,
input sys_rst_n,
output reg led
);
parameter count_1ms = 50000;
parameter on_time_ms = 1000; //led on 1s
parameter off_time_ms = 500; //led off 0.5s
reg [31:0] counter;
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
counter <= 32'd0;
else if(counter < (on_time_ms+off_time_ms)*count_1ms)
counter <= counter + 1'b1;
else
counter <= 32'd0;
end
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
led <= 1'b0;
else if(counter > off_time_ms*count_1ms)
led <= 1'b1; //led on
else
led <= 1'b0; //led off
end
endmodule
编辑完后保存, 双击左侧Analysis & Elaboration
或上面快捷按钮, 检查是否有代码错误.
分配引脚, Assignments
-> Pin Planner
:
Processing
-> Start Compilation
.
或者点击相应快捷按钮.
USB Blaster
连接FPGA板子与电脑, Tools
-> Programmer
或者点击上方快捷按钮, 可以看到默认已经选中sof文件, 没有的自己点Add File...
按钮添加:
点击Start
按钮, 等待Processing
进度显示100%(Successful)
, 可以看到板子上LED
, 亮1s灭0.5s, 符合预期. 需要注意的是, 这个断电后就没了.
程序断电保存, 可以通过JTAG下载程序到板载Flash中, 使用的M25P16
和官方的EPCS16
用起来是一样的:
引脚对应为:
名称 | 引脚 |
---|---|
EPCS_ASDO | C1 |
EPCS_CS | D2 |
EPCS_DATA0 | H2 |
EPCS_CLK | H1 |
需要将上面的sof
文件转换成jic
文件: File
-> Convert Programming Files...
:
其中, EPCS16是点击右边的...
按钮, 选择:
选中Flash Loader
, 点击右边Add Device...
:
选中SOF Data, 点击右边Add File
, 添加sof文件.
最后点击下方的Generate
按钮生成jic文件.
Tools
-> Programmer
或者点击上方Programmer
快捷按钮, 删掉原来的sof文件, 添加jic文件, 注意图中的勾, 点击Start按钮, 下载比较慢, 等Progress显示100%, 可以看到开发板没有反应, 断电再重新上电可以看到程序运行.
一说用到Flash时, 需要进行引脚配置: Assignments
-> Device
-> Device and Pin Options...
-> Dual-Purpose Pins
-> nCEO
或者全部设置为Use as regular I/O
:
欢迎扫描二维码关注本人微信公众号, 及时获取或者发送给我最新消息: