User Tools

Site Tools


quartus_hello_world

使用Quartus Prime和电路图绘制方法探究门电路

实验目的

  • 初步学习Quartus Prime的使用, 熟悉基本操作流程
  • 了解各种门电路

实验内容

1. 创建一个空项目

  1. 双击Quartus Prime的图标, 打开软件, 基本界面如下图所示:
  2. 选择File»New Project Wizard: , 出现如下界面:
  3. 单击Next, 输入项目的保存路径 (精确到项目文件夹) , 项目名称和top-level design entity的名称, 第3个暂时保持和项目名称一致 (默认) , 不用修改它. 单击Next:
  4. 项目类型选择Empty Project, 单击Next:
  5. 没有需要预先添加的文件, 直接单击Next:
  6. 接下来选择FPGA的型号, Family选择Cyclone V, Device选择Cyclone V SX Extended Features, 这个时候幸运的话可以直接看到我们的FPGA开发板的型号: 5CSSXFC6D6F31C6, 选中它, 点击Next:
  7. EDA工具的设置保留空白即可, 目前不需要特别设定, 直接点击Next:
  8. 最后是汇总, 可以再检查一下项目配置, 有不对的地方可以退出去改, 没有问题的话, 点击Finish, 一个空项目就创建完成了!

2. 创建Top-design entity, 绘制门级电路图

  1. 选择File»New, 打开新建文件对话框:
  2. 选择Block Diagram/Schematic File, 单击OK:
  3. 现在先认识几个常用的按钮, 如下图所示, 有Selection Tool, Pin Planner, Start Compilation, Programmer, Pin Tool, Orthogonal Node Tool:
  4. 双击编辑区的空白处, 打开符号库:
  5. 在Name文本框中输入诸如and2之类的门电路名称进行检索, 选中我们需要的and2, or2, xor, not, 摆放到编辑区中的这张图纸上. 使用Pin Tool添加input引脚两个, output引脚3个. 可以看到图纸上有很多小点. 我们可以把这张图纸看作一个虚拟的巨大的九孔板, 我们的元件摆放在这上面, 然后用Orthogonal Node Tool进行连线, 如下图所示:
  6. 保存文件为HelloWorld.bdf, 注意文件名必须和之前设置的Top-design entity的名称一致!

3. 执行第一次编译 (预编译)

  • 预编译的主要任务是检查电路设计的原则性错误, 识别出电路的输入引脚和输出引脚
  • 点击Start Compilation进行编译, 大概需要1分钟, 这取决于电脑的性能
  • 编译成功的情形大致如下图:

4. 指定引脚定义

  1. 点击 Pin Planner, 打开引脚规划窗口:
  2. 按照下图定义各个Node的Location和I/O Standard:
  3. 对于没有使用的引脚, 我们也要定义状态, 选择菜单中的Assignments»Device, 在弹出来的窗口中选择Device and Pin Options, 在新弹出的窗口中选择As input tri-stated, 这样没有使用的引脚就设置在了三态输出的高阻态:
  4. 如果没有执行上面这步操作, 你将会在后面的测试中发现没有使用的LED灯依然微微亮着!

5. 正式编译

  • 点击Start Compilation, 完成最终的编译

6. 烧录

  1. 将FPGA开发板连接好电源, 接好USB-TypeB-to-TypeA线, 如下图所示:
  2. 点击Programmer:
  3. 如果出现No Hardware的情况, 需要点击Hardware Setup, 在弹出的窗口中选中DE-SoC[USB-1], 注意这个时候开发板的电源键 (红色) 要打开!
  4. 设置好Hardware之后, 点击Auto Detect, 选择5CSXFC6D6, 弹出的警告框选择Yes:
  5. 选中5CSXFC6D6F31, 选择Change File, 打开output_files中的HelloWorld.sof:
  6. 勾选5CSXFC6D6F31的Program/Configure, 点击Start, 等待Progress转变为绿色, 烧录完成.

.sof文件是描述FPGA内部如何连线的文件, 该文件传输至板上的存储器, 经由板上的烧录器的解析, 对FPGA内部的连接进行修改, 编程为我们设计的电路. 关于比较粗浅的原理可以阅读半导体存储器可编程逻辑器件

测试

  • 通过拨动SW0和SW1两个开关, 我们可以改变所设计的电路的两个输入端的逻辑值, SW0为连接了NOT的输入端, SW1为没有连接NOT的输入端
  • LEDR0~LEDR3本别表示AND, OR和XOR的输出, 灯亮为逻辑1, 灯灭为逻辑0.
  • 开关拨至远离LED一侧为接GND, 即逻辑0, 靠近LED一侧为VDD, 即逻辑1.
  • 通过测试00, 01, 10, 11一共4种组合, 我们可以发现3个LED灯按照预设的AND, OR, XOR和NOT的连接方式进行变换.

至此, 一个最简单的FPGA项目就完成了!

quartus_hello_world.txt · Last modified: 2019/01/07 20:12 by daizhirui