专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Verilog

小弟我的 FPGA 学习历程(02)—— 实验点亮 LED 灯

发布时间:2011-06-30 07:19:00 文章来源:www.iduyao.cn 采编人员:星星草
我的 FPGA 学习历程(02)—— 实验点亮 LED 灯

关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程。

中文网络教程链接(链接至 altera中文官网,点击观看)

  1. Quartus II 软件设计系列:基础
  2. Quartus II 软件中的原理图设计
  3. SignalTap II 嵌入式逻辑分析器
  4. 使用 Nios II 处理器
  5. 系统控制台
  6. Nios II 处理器开发软件:设计流程
  7. Nios II 处理器开发软件:MMU 和 MPU

无论是英文帮助还是网络中文教程,他们的前提是 你是有基础的,这些教程之会教给你我们的 quartus 套件该如何使用,至于 verilog 你应该实现学习,处理器的基本支持您应该都听的懂。入门知识并不在他们的职责之内,这本无可厚非,却给了入门带来了极大的困难。

这是我的第一个实验,目的是用一个按键控制一个 LED 灯,使用原理图输入。

1. 点击 file –> new project wizard,新建一个项目

新建项目1

 

2. 输入工程目录

        quartus要求事先新建一个空目录用于保存项目文件,路径不能有中文和空格。

        此外项目名称和顶层模块名称一般和目录名称一致。

        第三行的名称在使用 HDL 输入时必须和 顶层模块名称一致,否则编译报错,这里用的是原理图输入,暂时可以不管

新建项目2

3.添加其他文件到项目中

        如果你已经写好了 verilog 文件,并且顶层模块名称与项目要求一致,在这里添加其他文件路径,这里我们留空。

新建项目3

4.选择 FPGA 的型号。

       我用的 AX301 板上的 FPGA 属于 Cyclone IV EP4CE6FC8N,

Cyclone IV 是 Altera 的低端系列,Cyclone IV 有两个系列,其中 E 系列为不带高速收发器,而GX 系列带有高速收发器。另外结尾的 N 代表无铅工艺,L 代表 低电压。

       从下面的表格中可也看到,该芯片有 6272 个 LE 单元,180 个用户管脚,2 个锁相环。

新建项目4

5.其他工具

       quartus 可以使用其他工具来完成 FPGA 的设计,第一项是综合器的选择,第二项是仿真工具的选择,第四项是板级选择。

       因为我们用不着,所以留空。

新建项目5

6.项目总览

      用于确认前几部的选择是否正确,看看就可以。

新建项目6

7.项目建成之后,点击 file –-> new,新建一个原理图文件

新建原理图文件

8.原理图编辑器

       双击原理图空白处,弹出以下对话框,在搜索框中输入 not,表示选择非门。

同理 and2 就是两输入的与门、or2 就是或门。要注意看看其他原件的符号,免得用的时候不知道。

加入非门

       输入完成后是这个样子,箭头按钮表示选择,小手表示拖动,此外还有导线(wire),总线(bus)和几个绘图按钮(方块、椭圆什么的)

如果输入或者输出是总线,则需要把名称改为像这样的 led[7..0],而不是 led[7:0]。

除了输入输出、符号之外,导线也可命名(右键点击导线,进行重命名)。

quartus 和 protel 一样使用网络标号来连接导线和总线,比如把一段总线命名为 a[3..0],接着把四根其他导线命名为a[3]、a[2]、a[1]、a[0],就可以可以实现他们之间的连接。

非门原理图

9.分配 FPGA 管脚

        这个项目中用到了两个引脚,一个按键和一个 LED,查看用户手册,我的用户手册如下

按键对应引脚

LED引脚

        这里我选择使用 LED0 和 KEY1,需要记住两个引脚名称 G15 和 E15。(-。-;)

       分配管脚后

分配管脚

10.项目设置

        这片 EP4CE6F17C8 芯片上可以接多个时钟,但由于该芯片内置了 PLL (锁相环,用于分频,倍频,改变时钟相位),对于初学者而言锁相环就够了并不需要使用多个时钟,所以芯片上就多出来的时钟管脚就用在按键上了,这个需要设置一下

       在 project –> settings 下点击右上角的 Device…

设置

       找到 Device and Pin Options 这个页面,设置复用管脚为普通管脚特殊管脚设置

       设置不用的管脚为三态,点击确定

未使用管脚设置为三态

        由于上次我们没有设置引脚对应的管脚,虽然也生成了 sof 文件,但这个文件不能用。需要再次编译一下项目。

        编译后查看一下警告、错误和提示信息。这里提示的是没有时序约束文件,初学者不用理会。

编译报告(没有时序约束文件)

        警告提示没有时钟,时钟在时序逻辑中一定会用到,这里是简单组合逻辑,没用用到时钟

        而最上面的提示就是多用管脚的设置信息。

编译报告(没有时钟和管脚分配问题)

       分配管脚后原理发生了变化,图上显示了分配的管脚名称

分配管脚后的原理图编辑器

11.USB-Blaster 驱动安装

黑金的手册和视频上反复强调,不要带电插拔 Jtag 线(就是那组10pin 的排线),由于低端的 Cyclone IV 中没有钳位二极管,带电插拔 Jtag 口可能会烧坏 FPGA,我的流程是先关闭开发板开关,连上 Jtag 的两头,将 USB-Blaster 的另一头接上 usb 线,然后连接 USB-blaster 到电脑,连接开发板电源,最后打开开发板电源开关。

         连好 USB-Blaster 到电脑,在控制面板依次找到 系统和安全 >> 系统 >> 设备管理器

       没有安装驱动的在设备管理器中选择有黄色感叹号的设备,选择更新驱动程序,手动指定驱动文件夹路径到 C:\altera\13.0sp1\quartus\drivers\usb-blaster (这里假设安装路径为C盘)。

       装好驱动后设备管理器是这个样子的

USB-Blaster驱动

12.烧写到SRAM

        一些个介绍 FPGA 的书中应该有提到,FPGA 基于 SRAM 工艺,SRAM 可以被反复配置,这个配置的过程就对 FPGA 进行编程,使之变成我们想要的功能,简单的编程可能像本项目一样只用到几个门,而复杂点的或许是编写数码管或者屏幕驱动。

后期可以把 FPGA 配置为一个处理器 ,quartus 中的 Qsys 或 SOPCBuilder 可以方便的生成一个处理器的 HDL 代码,这个被称为为 NIOS 的处理器远不像 ARM 那么复杂,可以供嵌入式处理器的入门学习。

       连好开发板的必须线缆,下面进入烧写步骤。

       设置 USB-Blaster

配置USB-Blaster

        点击 AddFile… 选择项目 output_files 目录的 sof 文件(我的是 test_project.sof)。点击 start 按钮开始烧写,图为烧写成功。

烧写成功

     由于 sof 文件烧写到的 SRAM 断电后就会丢失。所以 sof 文件多用与用户调试,而 jic 文件和 pof 文件可以固定在 altera 的专用配置芯片 EPCS 上,从而实现离线运行。

保持连接电脑的状态,测试下按键,是否在按下时LED点亮了。你是否成功了呢?   (●'◡'●)

最后当然记得按照以下步骤来断开连接:

  1. 关闭开发板电源
  2. 拔下 USB-Blaster 和电脑的 USB 连线
  3. 取下开发板的电源线
  4. 最后断开 Jtag口。 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: