这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore3lfpga_2 [2020/10/13 09:37] zgf |
icore3lfpga_2 [2020/10/13 09:46] zgf |
||
---|---|---|---|
行 5: | 行 5: | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-10-13 | zgf | 初次建立 | | | V1.0 | 2020-10-13 | zgf | 初次建立 | | ||
+ | \\ | ||
===== 实验二:新建FPGA工程——驱动LED ===== | ===== 实验二:新建FPGA工程——驱动LED ===== | ||
+ | \\ | ||
==== 一、 实验目的与意义 ==== | ==== 一、 实验目的与意义 ==== | ||
行 21: | 行 21: | ||
* 1、通过双击安装目录/hqui/子目录下的可执行文件hqui.exe启动HqFpga GUI,可以看到HqFpga界面包含三个主操作按钮:RTL综合、设计实现、DRC\Bitgen,如图2-2所示。 | * 1、通过双击安装目录/hqui/子目录下的可执行文件hqui.exe启动HqFpga GUI,可以看到HqFpga界面包含三个主操作按钮:RTL综合、设计实现、DRC\Bitgen,如图2-2所示。 | ||
- | {{ :icore3l:icore3l_fpga_2_2.png?direct |图 2-2 HqFpga软件主界面}} | + | {{ :icore3l:icore3l_fpga_2_2.png?direct&800 |图 2-2 HqFpga软件主界面}} |
* 2、点击左侧栏中的“新建工程”按钮,建立新工程。 | * 2、点击左侧栏中的“新建工程”按钮,建立新工程。 | ||
- | {{ :icore3l:icore3l_fpga_2_3.png?direct |图 2-3 新建工程}} | + | {{ :icore3l:icore3l_fpga_2_3.png?direct&800 |图 2-3 新建工程}} |
* 3、弹出新建工程向导对话框,在“工程目录”栏设置工程存放路径;在“工程名称”栏填写工程名称,这里以“led”为例; iCore3L双核心板的FPGA采用国产器件,西安智目标器件选择SL2S-25E,设计输入选择RTL描述;然后点击“下一步”。 | * 3、弹出新建工程向导对话框,在“工程目录”栏设置工程存放路径;在“工程名称”栏填写工程名称,这里以“led”为例; iCore3L双核心板的FPGA采用国产器件,西安智目标器件选择SL2S-25E,设计输入选择RTL描述;然后点击“下一步”。 | ||
行 34: | 行 34: | ||
* 5、至此已经建立了工程,然后点击左侧栏的“设计管理”按钮,弹出“设计管理”界面;点击“新建文件”图标,建立源文件,如图2-6所示。 | * 5、至此已经建立了工程,然后点击左侧栏的“设计管理”按钮,弹出“设计管理”界面;点击“新建文件”图标,建立源文件,如图2-6所示。 | ||
- | {{ :icore3l:icore3l_fpga_2_6.png?direct |图 2-6 设计管理界面建立新文件}} | + | {{ :icore3l:icore3l_fpga_2_6.png?direct&800 |图 2-6 设计管理界面建立新文件}} |
* 6、在设计管理界面的编辑区输入工程代码,点击“语法检查”按钮,检查语法错误;语法检查通过后,点击“保存”按钮图标,并命名为led.v;然后点击3标号处的“+”号,将保存的led.v添加到工程中。 | * 6、在设计管理界面的编辑区输入工程代码,点击“语法检查”按钮,检查语法错误;语法检查通过后,点击“保存”按钮图标,并命名为led.v;然后点击3标号处的“+”号,将保存的led.v添加到工程中。 | ||
- | {{ :icore3l:icore3l_fpga_2_7.png?direct |图 2-7 设计管理界面编辑源代码并检查语法}} | + | {{ :icore3l:icore3l_fpga_2_7.png?direct&800 |图 2-7 设计管理界面编辑源代码并检查语法}} |
* 7、或者在保存完led.v文件后,关闭“设计管理”界面,再点击左侧边栏的“工程属性”按钮,弹出窗口中点击“+”号,添加刚刚建立的led.v文件,并点击“确定”,如图2-8所示。 | * 7、或者在保存完led.v文件后,关闭“设计管理”界面,再点击左侧边栏的“工程属性”按钮,弹出窗口中点击“+”号,添加刚刚建立的led.v文件,并点击“确定”,如图2-8所示。 | ||
行 43: | 行 43: | ||
* 8、至此,工程建立完成,点击“RTL综合”按钮,运行指定的RTL综合工具。 | * 8、至此,工程建立完成,点击“RTL综合”按钮,运行指定的RTL综合工具。 | ||
- | {{ :icore3l:icore3l_fpga_2_9.png?direct |图 2-9 主界面RTL综合按钮}} | + | {{ :icore3l:icore3l_fpga_2_9.png?direct&800 |图 2-9 主界面RTL综合按钮}} |
* 9、综合完成后,可以看到界面上产生一个大的活页标签,如图2-10中所示;标签上半部分显示综合后的FPGA资源利用概要信息。下半页显示有时序分析和网表文件两个标签。 | * 9、综合完成后,可以看到界面上产生一个大的活页标签,如图2-10中所示;标签上半部分显示综合后的FPGA资源利用概要信息。下半页显示有时序分析和网表文件两个标签。 | ||
- | {{ :icore3l:icore3l_fpga_2_10.png?direct |图 2-10 主界面可查看RTL综合后的资源利用情况}} | + | {{ :icore3l:icore3l_fpga_2_10.png?direct&800 |图 2-10 主界面可查看RTL综合后的资源利用情况}} |
* 10、点击左侧栏“物理约束”按钮,添加约束;弹出窗口点击选中“约束编辑器”,然后点击“确定”。 | * 10、点击左侧栏“物理约束”按钮,添加约束;弹出窗口点击选中“约束编辑器”,然后点击“确定”。 | ||
- | {{ :icore3l:icore3l_fpga_2_11.png?direct |图 2-11 添加物理约束}} | + | {{ :icore3l:icore3l_fpga_2_11.png?direct&800 |图 2-11 添加物理约束}} |
* 11、弹出物理约束窗口,首先点击“全选”,然后点击“启用”,可以看到下方信号列表的状态一栏都变成了启用,如图2-12中所示。 | * 11、弹出物理约束窗口,首先点击“全选”,然后点击“启用”,可以看到下方信号列表的状态一栏都变成了启用,如图2-12中所示。 | ||
- | {{ :icore3l:icore3l_fpga_2_12.png?direct |图 2-12 添加引脚约束}} | + | {{ :icore3l:icore3l_fpga_2_12.png?direct&800 |图 2-12 添加引脚约束}} |
* 12、然后在信号行的“位置”栏下单击,会出现一个带“...”的方框,点击方框,弹出“选择端口位置”窗口,通过单击相应位置,为信号添加引脚约束;之后点击确定,即实现信号对应引脚的绑定。图2-14中以clk_25m为例,绑定到B9引脚,绑定之后,其对应“位置”列出现“B9 bank7”字样。 | * 12、然后在信号行的“位置”栏下单击,会出现一个带“...”的方框,点击方框,弹出“选择端口位置”窗口,通过单击相应位置,为信号添加引脚约束;之后点击确定,即实现信号对应引脚的绑定。图2-14中以clk_25m为例,绑定到B9引脚,绑定之后,其对应“位置”列出现“B9 bank7”字样。 | ||
行 58: | 行 58: | ||
{{ :icore3l:icore3l_fpga_2_13.png?direct |图 2-13 FPGA三色LED的硬件原理图}} | {{ :icore3l:icore3l_fpga_2_13.png?direct |图 2-13 FPGA三色LED的硬件原理图}} | ||
- | {{ :icore3l:icore3l_fpga_2_14.png?direct |图 2-14 绑定引脚信息}} | + | {{ :icore3l:icore3l_fpga_2_14.png?direct&800 |图 2-14 绑定引脚信息}} |
* 13、完成了RTL综合、添加了约束之后,可以在“设计实现”之前对各个步骤设置不同的优化选项;点击界面左侧栏的“设置”按钮,弹出“设置优化选项窗口”,可以进行综合、布局布线等步骤的优化设置。 | * 13、完成了RTL综合、添加了约束之后,可以在“设计实现”之前对各个步骤设置不同的优化选项;点击界面左侧栏的“设置”按钮,弹出“设置优化选项窗口”,可以进行综合、布局布线等步骤的优化设置。 | ||
行 65: | 行 65: | ||
* 14、点击主界面的“设计实现”按钮;设计实现运行完毕生成一个大的活页标签;标签上半部分是显示FPGA资源使用情况,下半部分是生成的是一些报告和网表文件,可用于分析检查设计实现结果。 | * 14、点击主界面的“设计实现”按钮;设计实现运行完毕生成一个大的活页标签;标签上半部分是显示FPGA资源使用情况,下半部分是生成的是一些报告和网表文件,可用于分析检查设计实现结果。 | ||
- | {{ :icore3l:icore3l_fpga_2_16.png?direct |图 2-16 点击“设计实现”按钮进行布局布线}} | + | {{ :icore3l:icore3l_fpga_2_16.png?direct&800 |图 2-16 点击“设计实现”按钮进行布局布线}} |
* 15、点击“DRC/Bitgen”按钮,进行设计规则检查(DRC)并生成位流(Bitstream)文件,检查运行结果。 | * 15、点击“DRC/Bitgen”按钮,进行设计规则检查(DRC)并生成位流(Bitstream)文件,检查运行结果。 | ||
* DRC通过后,在产生活页的下半页有“位流文件”和“下载编程”两个图标。 | * DRC通过后,在产生活页的下半页有“位流文件”和“下载编程”两个图标。 | ||
- | {{ :icore3l:icore3l_fpga_2_17.png?direct |图 2-17 全编译后生成bit文件,活页出现“下载/编程”按钮}} | + | {{ :icore3l:icore3l_fpga_2_17.png?direct&800 |图 2-17 全编译后生成bit文件,活页出现“下载/编程”按钮}} |
* 16、将下载器和核心板与电脑连接,并给核心版供电。点击DRC活页中的“下载/编程”图标,弹出“HqFpga下载器”界面;此界面下文件类型选择 .bit,点击“检测器件”按钮,查看检测到的器件型号和工程设计中选择的器件型号是否一致;然后点击“打开”按钮,找到生成的led.bit文件并选中,点击“下载”按钮。 | * 16、将下载器和核心板与电脑连接,并给核心版供电。点击DRC活页中的“下载/编程”图标,弹出“HqFpga下载器”界面;此界面下文件类型选择 .bit,点击“检测器件”按钮,查看检测到的器件型号和工程设计中选择的器件型号是否一致;然后点击“打开”按钮,找到生成的led.bit文件并选中,点击“下载”按钮。 | ||
- | {{ :icore3l:icore3l_fpga_2_18.png?direct |图 2-18 弹出的HqFpga下载界面}} | + | {{ :icore3l:icore3l_fpga_2_18.png?direct&800 |图 2-18 弹出的HqFpga下载界面}} |
* 17、下载成功将会看到“输出信息”栏有如图2-18所示提示,且开发板上三色LED显示绿色。 | * 17、下载成功将会看到“输出信息”栏有如图2-18所示提示,且开发板上三色LED显示绿色。 | ||
行 80: | 行 80: | ||
* 点击左侧栏“设置”按钮,弹出的“设置优化选项”窗口中点击“位流生成”页,勾选“生成二进制文件格式”选项和“压缩比特流”选项,点击“确定”,如图2-19所示。 | * 点击左侧栏“设置”按钮,弹出的“设置优化选项”窗口中点击“位流生成”页,勾选“生成二进制文件格式”选项和“压缩比特流”选项,点击“确定”,如图2-19所示。 | ||
* 设置好之后重新编译即可生成 .bin文件。 | * 设置好之后重新编译即可生成 .bin文件。 | ||
- | {{ :icore3l:icore3l_fpga_2_20.png?direct |图2-20 HqFpga生成.bin文件的设置。}} | + | {{ :icore3l:icore3l_fpga_2_20.png?direct&800 |图2-20 HqFpga生成.bin文件的设置。}} |
==== 四、 代码分析 ==== | ==== 四、 代码分析 ==== |