我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯
关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程。
中文网络教程链接(链接至 altera中文官网,点击观看)
- Quartus II 软件设计系列:基础
- Quartus II 软件中的原理图设计
- SignalTap II 嵌入式逻辑分析器
- 使用 Nios II 处理器
- 系统控制台
- Nios II 处理器开发软件:设计流程
- Nios II 处理器开发软件:MMU 和 MPU
无论是英文帮助还是网络中文教程,他们的前提是 你是有基础的,这些教程之会教给你我们的 quartus 套件该如何使用,至于 verilog 你应该实现学习,处理器的基本支持您应该都听的懂。入门知识并不在他们的职责之内,这本无可厚非,却给了入门带来了极大的困难。
这是我的第一个实验,目的是用一个按键控制一个 LED 灯,使用原理图输入。
1. 点击 file –> new project wizard,新建一个项目
2. 输入工程目录
quartus要求事先新建一个空目录用于保存项目文件,路径不能有中文和空格。
此外项目名称和顶层模块名称一般和目录名称一致。
第三行的名称在使用 HDL 输入时必须和 顶层模块名称一致,否则编译报错,这里用的是原理图输入,暂时可以不管
3.添加其他文件到项目中
如果你已经写好了 verilog 文件,并且顶层模块名称与项目要求一致,在这里添加其他文件路径,这里我们留空。
4.选择 FPGA 的型号。
我用的 AX301 板上的 FPGA 属于 Cyclone IV EP4CE6FC8N,
Cyclone IV 是 Altera 的低端系列,Cyclone IV 有两个系列,其中 E 系列为不带高速收发器,而GX 系列带有高速收发器。另外结尾的 N 代表无铅工艺,L 代表 低电压。
从下面的表格中可也看到,该芯片有 6272 个 LE 单元,180 个用户管脚,2 个锁相环。
5.其他工具
quartus 可以使用其他工具来完成 FPGA 的设计,第一项是综合器的选择,第二项是仿真工具的选择,第四项是板级选择。
因为我们用不着,所以留空。
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,查看用户手册,我的用户手册如下
这里我选择使用 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盘)。
装好驱动后设备管理器是这个样子的
12.烧写到SRAM
一些个介绍 FPGA 的书中应该有提到,FPGA 基于 SRAM 工艺,SRAM 可以被反复配置,这个配置的过程就对 FPGA 进行编程,使之变成我们想要的功能,简单的编程可能像本项目一样只用到几个门,而复杂点的或许是编写数码管或者屏幕驱动。
后期可以把 FPGA 配置为一个处理器 ,quartus 中的 Qsys 或 SOPCBuilder 可以方便的生成一个处理器的 HDL 代码,这个被称为为 NIOS 的处理器远不像 ARM 那么复杂,可以供嵌入式处理器的入门学习。
连好开发板的必须线缆,下面进入烧写步骤。
设置 USB-Blaster
点击 AddFile… 选择项目 output_files 目录的 sof 文件(我的是 test_project.sof)。点击 start 按钮开始烧写,图为烧写成功。
由于 sof 文件烧写到的 SRAM 断电后就会丢失。所以 sof 文件多用与用户调试,而 jic 文件和 pof 文件可以固定在 altera 的专用配置芯片 EPCS 上,从而实现离线运行。
保持连接电脑的状态,测试下按键,是否在按下时LED点亮了。你是否成功了呢? (●'◡'●)
最后当然记得按照以下步骤来断开连接:
- 关闭开发板电源
- 拔下 USB-Blaster 和电脑的 USB 连线
- 取下开发板的电源线
- 最后断开 Jtag口。
我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯的更多相关文章
- CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)
目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1 ...
- CC2530学习路线-基础实验-定时器控制LED灯亮灭(3)
目录 1. 前期预备知识 1.1 定时器中断触发 1.2 相关寄存器 1.3 寄存器相关问题 1.4 T1.T3定时器初始化流程 2 程序及代码 THE END 1. 前期预备知识 1.1 定时器中断 ...
- JZ2440开发板:用按键点亮LED灯(学习笔记)
本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...
- 30个物联网传感器小实验:三行代码点亮LED灯
30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...
- 嵌入式实验一:LED灯点亮
实验一:LED灯程序 一. 实验环境 开发机环境 操作系统:ubuntu 12.04 交叉编译环境:arm-linux-gcc 4.3.2 6410板子内核源码:linux-3.0.1 目 ...
- 我的 FPGA 学习历程(01)—— FPGA 基础知识和 Quartus 的安装
高级的嵌入式市场主要分为以下三类:ARM.DSP 和 FPGA. 其中 ARM 是行业内的佼佼者,目前几乎所有的安卓智能手机都使用 ARM 授权的 CPU架构:而 DSP(数字信号处理器) 早年就被大 ...
- 我的 FPGA 学习历程(14)—— PWM 脉冲宽度调制
PWM 是一种调节输出功率的技术(俗称调压),其原理在于改变输出方波的占空比,具体输出见下图: 输出信号为电压值,当负载为恒阻时,上图中的输出功率分别为 25%.50%.75%. 实现方法如下: 设置 ...
- 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...
- zigbee学习之路(二)点亮LED
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...
随机推荐
- 来了解质量管理工具——质量屋(HOQ)
质量屋(The House Of Quality),又名HOQ,它是质量功能配置(QFD)的核心.一般QFD的学习会涉及到.同时HOQ也是项目管理十大知识领域领域中质量管理工具中的一种,今天我们就来了 ...
- Ubuntu18.04 安装32bit库后出现问题
ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared ob ...
- POJ - 3616 Milking Time (动态规划)
Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...
- JS学习笔记Day12
一.浏览器的默认行为以及阻止行为 (一)右键菜单事件:oncontextmenu: 阻止:return false: (二)超链接的默认行为:跳转: 阻止:标准浏览器:event.preventDef ...
- ajax实现长连接
项目需求:需要实时的读取日志文件里的数据,并且使用Echart实时更新折线图. 使用ajax实现客户端与服务器端的数据传输. 目的:我想通过ajax与服务器建立一个长连接,服务器会不断的传输数据给前台 ...
- Windows启动过程(MBR引导过程分析)
catalogue . 电脑启动过程 . MBR分析(master boot record) - 位于整个硬盘的 扇区 . DBR(DOS boot record) - 位于柱面0,磁头1,扇区1,即 ...
- command not found
1.问题(problem) #wget gzip.x86_64 0:1.5-10.el7 -bash: wget command not found 2.解决(solution) 两个都能用 yum ...
- [再寄小读者之数学篇](2014-06-23 Bernstein's inequality)
$$\bex \supp \hat u\subset \sed{2^{j-2}\leq |\xi|\leq 2^j} \ra \cfrac{1}{C}2^{jk}\sen{f}_{L^p} \leq ...
- [物理学与PDEs]第5章第4节 本构方程 - 应力与变形之间的关系
5. 4 本构方程 - 应力与变形之间的关系 5.4.1. 本构关系的一般形式 1. 若 Cauchy 应力张量 ${\bf T}$ 满足 $$\bex {\bf T}({\bf y})=\hat{\ ...
- densenet 中的shortcut connection
DenseNet 在FCN 网络中考虑加入skip connection,在resnet 中加入identity 映射,这些 shortcut connection等结构能够得到更好的检测效果,在d ...