这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
icore4tfpga_2 [2020/02/17 23:38] zgf 创建 |
icore4tfpga_2 [2024/04/10 10:51] (当前版本) zhaowenzhe [一、 实验目的与意义] |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2019-02-17 | gingko | 初次建立 | | | V1.0 | 2019-02-17 | gingko | 初次建立 | | ||
行 10: | 行 9: | ||
==== 一、 实验目的与意义 ==== | ==== 一、 实验目的与意义 ==== | ||
- | - | ||
- 了解Quartus新建工程方法 | - 了解Quartus新建工程方法 | ||
- 了解Verilog语言描述功能模块的基本机构组成 | - 了解Verilog语言描述功能模块的基本机构组成 | ||
行 16: | 行 14: | ||
* 本实验的主要目的是根据led的驱动原理编写led控制程序,通过编写简单的led驱动代码使用户对Quartus的基本使用方法有简单的了解 | * 本实验的主要目的是根据led的驱动原理编写led控制程序,通过编写简单的led驱动代码使用户对Quartus的基本使用方法有简单的了解 | ||
* led的驱动原理是通过程序控制FPGA数字IO的电平变化实现led的亮灭。其硬件原理图如图2.1所示。 | * led的驱动原理是通过程序控制FPGA数字IO的电平变化实现led的亮灭。其硬件原理图如图2.1所示。 | ||
- | {{ :icore3:icore4t_fpga_2_1.png?direct |图2.1}} | + | {{ :icore4t:icore4t_fpga_2_1.png?direct |图2.1}} |
* 由原理图可以看出,当FPGA_LED对应的数字IO为高电平时LED灭;当FPGA_LED对应的数字IO为低电平时LED亮。 | * 由原理图可以看出,当FPGA_LED对应的数字IO为高电平时LED灭;当FPGA_LED对应的数字IO为低电平时LED亮。 | ||
行 22: | 行 20: | ||
1、双击Quartus桌面图标打开软件,出现下面界面,如图2.2所示。 | 1、双击Quartus桌面图标打开软件,出现下面界面,如图2.2所示。 | ||
- | {{ :icore3:icore4t_fpga_2_2.png?direct |图2.2}} | + | {{ :icore4t:icore4t_fpga_2_2.png?direct |图2.2}} |
- | 2、 点击新建图标出现下面对话框,选择New Quartus II Project选项,如图2.3所示。 | + | 2、点击新建图标出现下面对话框,选择New Quartus II Project选项,如图2.3所示。 |
- | {{ :icore3:icore4t_fpga_2_3.png?direct |图2.3}} | + | {{ :icore4t:icore4t_fpga_2_3.png?direct |图2.3}} |
3、直接点击Next,如图2.4所示。 | 3、直接点击Next,如图2.4所示。 | ||
- | {{ :icore3:icore4t_fpga_2_4.png?direct |图2.4}} | + | {{ :icore4t:icore4t_fpga_2_4.png?direct |图2.4}} |
4、在此界面选择工程存放的路径,设置工程名及顶层文件名称,如图2.5所示。 | 4、在此界面选择工程存放的路径,设置工程名及顶层文件名称,如图2.5所示。 | ||
- | {{ :icore3:icore4t_fpga_2_5.png?direct |图2.5}} | + | {{ :icore4t:icore4t_fpga_2_5.png?direct |图2.5}} |
5、此界面主要用来添加已经编辑好的模块文件,若没有直接下一步即可,如图2.6所示。 | 5、此界面主要用来添加已经编辑好的模块文件,若没有直接下一步即可,如图2.6所示。 | ||
- | {{ :icore3:icore4t_fpga_2_6.png?direct |图2.6}} | + | {{ :icore4t:icore4t_fpga_2_6.png?direct |图2.6}} |
6、选择设备所用的芯片型号,芯片的系列、封装、引脚数、速度等级的选项方便用户更快速精确的找到目标芯片的型号,如图2.7所示。 | 6、选择设备所用的芯片型号,芯片的系列、封装、引脚数、速度等级的选项方便用户更快速精确的找到目标芯片的型号,如图2.7所示。 | ||
- | {{ :icore3:icore4t_fpga_2_7.png?direct |图2.7}} | + | {{ :icore4t:icore4t_fpga_2_7.png?direct |图2.7}} |
7、进行仿真器的一些设置,可忽略,如图2.8所示。 | 7、进行仿真器的一些设置,可忽略,如图2.8所示。 | ||
- | {{ :icore3:icore4t_fpga_2_8.png?direct |图2.8}} | + | {{ :icore4t:icore4t_fpga_2_8.png?direct |图2.8}} |
8、至此,工程建立完成,如图2.9所示。 | 8、至此,工程建立完成,如图2.9所示。 | ||
- | {{ :icore3:icore4t_fpga_2_9.png?direct |图2.9}} | + | {{ :icore4t:icore4t_fpga_2_9.png?direct |图2.9}} |
9、回到软件主界面可以看到新建的工程已经显示在左边列表中,如图2.10所示。 | 9、回到软件主界面可以看到新建的工程已经显示在左边列表中,如图2.10所示。 | ||
- | {{ :icore3:icore4t_fpga_2_10.png?direct |图2.10}} | + | {{ :icore4t:icore4t_fpga_2_10.png?direct |图2.10}} |
10、重新点击新建图标进入下面界面选择将要编译的文件类型,此处选择Verilog HDL硬件语言描述类型,如图2.11所示。 | 10、重新点击新建图标进入下面界面选择将要编译的文件类型,此处选择Verilog HDL硬件语言描述类型,如图2.11所示。 | ||
- | {{ :icore3:icore4t_fpga_2_11.png?direct |图2.11}} | + | {{ :icore4t:icore4t_fpga_2_11.png?direct |图2.11}} |
11、界面出现新建文件编辑窗口,通常一个完整的模块由module和endmodule为开始和结尾,除此外还包括模块名、端口变量及类型的定义、硬件语言描述、内部变量定义等信息,如此组成一个完整的功能模块,如图2.12所示。 | 11、界面出现新建文件编辑窗口,通常一个完整的模块由module和endmodule为开始和结尾,除此外还包括模块名、端口变量及类型的定义、硬件语言描述、内部变量定义等信息,如此组成一个完整的功能模块,如图2.12所示。 | ||
- | {{ :icore3:icore4t_fpga_2_12.png?direct |图2.12}} | + | {{ :icore4t:icore4t_fpga_2_12.png?direct |图2.12}} |
12、代码编辑完成后进行保存,通常将源文件保存在src文件夹下,且文件名称必须与模块名称一致,如图2.13所示。 | 12、代码编辑完成后进行保存,通常将源文件保存在src文件夹下,且文件名称必须与模块名称一致,如图2.13所示。 | ||
- | {{ :icore3:icore4t_fpga_2_13.png?direct |图2.13}} | + | {{ :icore4t:icore4t_fpga_2_13.png?direct |图2.13}} |
13、程序编写后进行一些设置,点击Setting按钮,如图2.14所示。 | 13、程序编写后进行一些设置,点击Setting按钮,如图2.14所示。 | ||
- | {{ :icore3:icore4t_fpga_2_14.png?direct |图2.14}} | + | {{ :icore4t:icore4t_fpga_2_14.png?direct |图2.14}} |
14、选择Device,如图2.15所示。 | 14、选择Device,如图2.15所示。 | ||
- | {{ :icore3:icore4t_fpga_2_15.png?direct |图2.15}} | + | {{ :icore4t:icore4t_fpga_2_15.png?direct |图2.15}} |
15、选择Device and Pin设置选项,如图2.16所示。 | 15、选择Device and Pin设置选项,如图2.16所示。 | ||
- | {{ :icore3:icore4t_fpga_2_16.png?direct |图2.16}} | + | {{ :icore4t:icore4t_fpga_2_16.png?direct |图2.16}} |
16、将本工程中没有用到的引脚设置为高阻态,如图2.17所示。 | 16、将本工程中没有用到的引脚设置为高阻态,如图2.17所示。 | ||
- | {{ :icore3:icore4t_fpga_2_17.png?direct |图2.17}} | + | {{ :icore4t:icore4t_fpga_2_17.png?direct |图2.17}} |
17、将芯片引脚设置为IO状态,如图2.18所示。 | 17、将芯片引脚设置为IO状态,如图2.18所示。 | ||
- | {{ :icore3:icore4t_fpga_2_18.png?direct |图2.18}} | + | {{ :icore4t:icore4t_fpga_2_18.png?direct |图2.18}} |
18、配置完成后点击编译按钮进行编译,如图2.19所示。 | 18、配置完成后点击编译按钮进行编译,如图2.19所示。 | ||
- | {{ :icore3:icore4t_fpga_2_19.png?direct |图2.19}} | + | {{ :icore4t:icore4t_fpga_2_19.png?direct |图2.19}} |
19、编译通过后会出现下面界面,显示编译通过并显示工程运行所需要的资源信息,如图2.20所示。 | 19、编译通过后会出现下面界面,显示编译通过并显示工程运行所需要的资源信息,如图2.20所示。 | ||
注意:编译通过表示编写程序无语法问题,并不能代表程序功能没问题,功能是否满足需求需要在线调试。 | 注意:编译通过表示编写程序无语法问题,并不能代表程序功能没问题,功能是否满足需求需要在线调试。 | ||
- | {{ :icore3:icore4t_fpga_2_20.png?direct |图2.20}} | + | {{ :icore4t:icore4t_fpga_2_20.png?direct |图2.20}} |
20、至此工程建立完成,接下来就可以进行分配引脚及调试工作了,后面会有相应介绍,在此就不多做说明。 | 20、至此工程建立完成,接下来就可以进行分配引脚及调试工作了,后面会有相应介绍,在此就不多做说明。 | ||