1、(笔记)Quartus II 与 DE2 入门指导(Digital Logic)(DE2)作者:yf.x 来源:博客园 发布时间: 2010-03-04 21:18 阅读:1218 次 原文链接 收藏 Version 1.0By yf.x03/03/2010Abstract通过一个简单的实例介绍 Quartus II 9.1 和 DE2 基本使用方法。Introduction典型的计算机辅助设计流程开始新建一个项目(project)Verilog 设计输入编译设计管脚分配仿真设计电路规划、配置 FPGA 器件测试设计的电路一个典型的 FPGA 计算机辅助设计流程如图 1 所示。图 1 FPGA
2、 CAD 设计流程设计流程的步骤:设计输入(Design Entry)- 用原理图或者硬件描述语言说明设计的电路。综合(Synthesis)- 将输入的设计综合成由 FPGA 芯片的逻辑元件(logic elements)组成的电路。功能仿真(Functional Simulation)- 测试、验证综合的电路功能正确与否,不考虑延时。适配(Fitting)- 将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给最佳逻辑单元位置,进行布线和时序分析,并选定相应的互连路径和引脚分配。时序分析(Timing Analysis)- 通过对适配电路的传播延迟的分析,提供电路的性能指标。
3、时序仿真(Timing Simulation)- 验证电路的功能和时序的正确性。编程和下载配置(Programming and Configuration)- 在 FPGA 上实现设计的电路。本文主要介绍 Quartus II 的基本特性。演示如何用 Verilog HDL 在 Quartus II 平台设计和实现电路。包括:创建一个项目(project)用 Verilog 代码设计输入综合适配分配管脚仿真编程与下载1 创建一个项目(1)启动 Quartus II ,选择 File New Project Wizard,弹出窗口(图 2)图 2 新建项目向导(2)选择 Next,如图 3 输入
4、项目路径和项目名。接着按 Next,出现图 4,提示:输入的项目文件夹不存在,是否要创建。选择“是”。图 3 项目路径和项目名图 4 确认项目路径(3)新建项目向导里可以添加已存在的文件,假设我们这个项目没有要包含已存在的文件,在图 5 选择 Next。图 5 添加已存在的项目文件图 6 选定目标芯片(4)我们需要指定实现电路的目标器件,在图 6 中 Device family 的 Family 中选择Cyclone II,在 Available devices 里选择 EP2C35F672C6。(DE2 上使用的型号),选择 Next。图 7 指定第三方工具 (5)在图 7 里我们可以指定第
5、三方的开发工具,本文只用到 Quartus II,未用其他工具,所以选择 Next。图 8 项目说明(6)一份摘要出现在图 8,按 Finish,返回 Quartus II 的主界面。2 用 Verilog 代码设计输入本文以实现一个 2 路输入控制灯开关的电路为例,如图 9,x1,x2 为 2 个开关,f 为电路输出。图 9 原理图和功能表使用 Quartus II 的文本编辑器File New 出现图 10,选择 Verilog HDL File,ok 确认。图 10 文件类型File Save as,如图 11,文件名为 light,文件类型为 Verilog HDL File,保存。在
6、文本编辑器里输入图 12 所示的代码,保存。图 11 文件名和保存路径图 12 2 选一多选器代码3 编译设计的电路Processing Start Compilation,或者单击 开始编译,编译完成,会有提示。编译成功,会看到图 13 所示的编译报告,在 Analysis & Synthesis Equntions 里可以看到 f=x1$x2,这里$表示异或。图 13 综合生成的功能表达式当然,如果编译提示错误,可以在信息栏双击错误提示,光标会回到错误处,修正,重新编译即可。4 管脚分配我们用到 2 个拨动开关 SW0 和 SW1 提供外部输入,对应的 FPGA 管脚是 N25 和N26。
7、输出 f 练到 LEDG0,对应的 FPGA 管脚是 AE22。用 Assignment Editor 指定管脚Assignments Assignment Editor ,在 Category 选择 Pin,双击 To 列的选择管脚 x1,双击 Location,选择 Pin_N25,同样操作分配 x2 和 f。如图 14。然后保存:File Save.图 14 管脚分配另一种指定管脚的方法:Quartus II 支持导入和导出管脚分配文件,可以记事本等文本编辑器编辑图 15 所示的内容,保存为扩展名为.csv 的文件。通过 File Assignments Import Assignmen
8、ts添加编辑 csv 文件。如图 16。图 15 .csv 文档图 16 导入.csv 文档5 仿真在仿真之前,需要创建测试用的波形文件:(1)File New 在图 17 窗口中选择 Vector Waveform File,ok 确认。图 17 文件类型(2)波形文件编辑器如图 18 所示图 18 波形编辑器保存文件为 light.vwf,设置仿真时间: Edit End time ,设置为 200ns。选择 View Fit in Window 调节窗口显示的效果如图 19。图 19 全屏显示(3)添加电路仿真需要的节点Edit Insert Nodes or Bus 打开图 20 所示
9、的窗口,单击 Node Finder,图 20 添加节点在图 21 所示的窗口里,filter 选择 Pins:all,单击 List,列出输入、出节点,单击选择,ok 确认。图 21 选择节点(4)设定 x1、x2 的值,如图 22。保存。图 22 设置输入变量的值功能仿真选择 Assignments Settings 打开设置窗口,仿真模式选择 Functional ,如图 23。Ok 确认。仿真之前,需要生产功能仿真连线表:Processing Generate Functional Simulation Netlist。通过 Processing Start Simulation 或者
10、 开始仿真,仿真结果如图 24。图 23 仿真类型图 24 功能仿真结果时序仿真当通过功能仿真确认设计的电路功能正确之后,开始时序仿真。在图 23 的仿真模式选择Timing,然后开始仿真,结果如图 25。可以看到约有 6ns 的延迟。图 25 时序仿真的结果6 编程和配置 PFPGA首先连接电源适配器和 usb 数据线,在 DE2 开发板上,靠近电源的 usb 接口连接到数据线。DE2 支持 2 种程序烧录方式:JTAG 和 AS。JTAG 模式把程序直接写在 FPGA 芯片里,断电后数据丢失。AS 模式把数据写在配置的存储芯片里,每次通电后,数据会自动装载到 FPGA 芯片里。两种模式的选
11、择由 RUN/PROG 开关的位置决定,JTAG 模式对应RUN 档,AS 模式对应 PROG 档。(1)JTAG 模式编程把 RUN/PROG 开关置于 RUN 档。选择 Tools Programmer 打开窗口如图 26。这里要指定编程用到的硬件和模式。模式选择 JTAG,硬件设置为 USB_blaster,如果缺省没有选择,单击 Hardware Setup,在图 27 中选择。图 26 JTAG 模式编程图 27 选定硬件设置类型图 28 添加编程文件注意编程的器件和文件是否已添加到图 28 中,没有的话,手动添加。单击 Start 开始编程。Active Serial 模式将 RU
12、N/PROG 开关置于 PROG 档,选择 assignments device device and pin options configuration 选择 EPCS16。确认后在 Quartus II 的主界面选择 tools programmer 确认 hardware setup 为 usb_blaster ,mode 为 active serial programming,文件为.pof 文件,勾选 program/configure, start7 验证电路设计把 RUN/PROG 开关置于 PROG 档,切换 SW0,SW1 的 4 组不同组合,观察 LEDG0,验证设计。参考:Quartus II Introduction Using Verilog