关于 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,新建一个项目

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点亮了。你是否成功了呢?   (●'◡'●)

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

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

我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯的更多相关文章

  1. CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)

    目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1 ...

  2. CC2530学习路线-基础实验-定时器控制LED灯亮灭(3)

    目录 1. 前期预备知识 1.1 定时器中断触发 1.2 相关寄存器 1.3 寄存器相关问题 1.4 T1.T3定时器初始化流程 2 程序及代码 THE END 1. 前期预备知识 1.1 定时器中断 ...

  3. JZ2440开发板:用按键点亮LED灯(学习笔记)

    本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...

  4. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

  5. 嵌入式实验一:LED灯点亮

    实验一:LED灯程序 一. 实验环境 开发机环境 ​ 操作系统:ubuntu 12.04 ​ 交叉编译环境:arm-linux-gcc 4.3.2 ​ 6410板子内核源码:linux-3.0.1 目 ...

  6. 我的 FPGA 学习历程(01)—— FPGA 基础知识和 Quartus 的安装

    高级的嵌入式市场主要分为以下三类:ARM.DSP 和 FPGA. 其中 ARM 是行业内的佼佼者,目前几乎所有的安卓智能手机都使用 ARM 授权的 CPU架构:而 DSP(数字信号处理器) 早年就被大 ...

  7. 我的 FPGA 学习历程(14)—— PWM 脉冲宽度调制

    PWM 是一种调节输出功率的技术(俗称调压),其原理在于改变输出方波的占空比,具体输出见下图: 输出信号为电压值,当负载为恒阻时,上图中的输出功率分别为 25%.50%.75%. 实现方法如下: 设置 ...

  8. 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯

    关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...

  9. zigbee学习之路(二)点亮LED

    一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...

随机推荐

  1. 来了解质量管理工具——质量屋(HOQ)

    质量屋(The House Of Quality),又名HOQ,它是质量功能配置(QFD)的核心.一般QFD的学习会涉及到.同时HOQ也是项目管理十大知识领域领域中质量管理工具中的一种,今天我们就来了 ...

  2. Ubuntu18.04 安装32bit库后出现问题

    ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared ob ...

  3. POJ - 3616 Milking Time (动态规划)

    Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...

  4. JS学习笔记Day12

    一.浏览器的默认行为以及阻止行为 (一)右键菜单事件:oncontextmenu: 阻止:return false: (二)超链接的默认行为:跳转: 阻止:标准浏览器:event.preventDef ...

  5. ajax实现长连接

    项目需求:需要实时的读取日志文件里的数据,并且使用Echart实时更新折线图. 使用ajax实现客户端与服务器端的数据传输. 目的:我想通过ajax与服务器建立一个长连接,服务器会不断的传输数据给前台 ...

  6. Windows启动过程(MBR引导过程分析)

    catalogue . 电脑启动过程 . MBR分析(master boot record) - 位于整个硬盘的 扇区 . DBR(DOS boot record) - 位于柱面0,磁头1,扇区1,即 ...

  7. command not found

    1.问题(problem) #wget gzip.x86_64 0:1.5-10.el7 -bash: wget command not found 2.解决(solution) 两个都能用 yum ...

  8. [再寄小读者之数学篇](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 ...

  9. [物理学与PDEs]第5章第4节 本构方程 - 应力与变形之间的关系

    5. 4 本构方程 - 应力与变形之间的关系 5.4.1. 本构关系的一般形式 1. 若 Cauchy 应力张量 ${\bf T}$ 满足 $$\bex {\bf T}({\bf y})=\hat{\ ...

  10. densenet 中的shortcut connection

    DenseNet  在FCN 网络中考虑加入skip connection,在resnet 中加入identity 映射,这些 shortcut connection等结构能够得到更好的检测效果,在d ...