You are on page 1of 59

研究生电类综合实验

■ 课程性质
集中性实践课程,1学分
■ 时间安排
一周
每天时间
验收时间
■ 考核方式
出勤率+验收+实验报告
■ 实验要求
●带笔记本电脑和U盘
●不得拷贝他人设计程序
●离开实验室时:关好电脑、实验箱、整理好桌面及凳子等
设计目的

● 学习EDA集成工具软件Quartus的使用;

● 学习基于可编程逻辑器件的EDA设计流程;

● 掌握EDA设计方法。

参考教材

EDA技术与设计,电子工业出版社,2019.3
设计内容

1 QUARTUS软件应用

2 多功能数字钟设计

3 实验报告要求
1 QUARTUS软件应用

1.1 QUARTUS软件概述与设计流程
1.2 设计输入
1.3 项目编译
1.4 设计仿真
1.5 引脚分配
1.6 编程下载
1.1 QUARTUS软件概述与设计流程
1.1.1 QUARTUS软件概述
QUARTUS软件界面友好,功能强大,是一个完全集成化
的可编程逻辑设计环境,是先进的EDA工具软件。
QUARTUS支持Altera公司的ACEX1K系列、APE X20K系
列 、 APEXII 系 列 、 FLEX6000 系 列 、 FLEX10K 系 列 、
MAX3000A 系 列 、 MAX7000 系 列 、 MAX9000 系 列 ; 支 持
MAX7000/MAX3000 等 乘 积 项 器 件 ; 支 持 MAX II 系 列 、
Cyclone 系 列 、 Cyclone II 、 Cyclone III 、 Stratix II 系 列 、
Stratix GX系列等;支持IP核,包含了LPM/Mega Function宏
功能模块库,从而使用户简化了设计的复杂性、加快设计速度。
1.1.2 QUARTUS软件设计流程
设计描述

设计输入 设计修改

项目编译

设计仿真

引脚分配

编程下载

验 证

QUARTUS设计流程图
1.2 设计输入

1.2.1 工程项目建立
1. 启动QUARTUS
2.建立新工程项目
(1)在主菜单中,选择File—
New Project Wizard。出
现新建工程项目向导界
面。
(2) 单击“Next”按钮,弹出
如图所示对话框,第一个文本
行中输入工程文件存放的目录;
第二个文本行中填写此项工程
项目名称;第三个文本行中为
当前工程顶层文件的实体名。
可先建立工程文件存放的目录
如:D:\design\adder,建议工程
顶层文件实体名和工程项目名
保持一致。
(3) 继续单击“Next”按钮,
打开Add Files对话框。若需添
加设计输入文件可单击“Add”
按钮;如果工程中用到用户自
定 义 的 库 , 则 单 击 “ User
Libraries”按钮,添加相应的库
文件。在这里,直接单击
“Next”按钮进入可编程逻辑器
件选择对话框。
(4) 在可编程逻辑器件选
择对话框可以选择器件的系
列、器件的封装形式、引脚
数目和速度级别约束可选器
件 的 范 围 。 这 里 选 择
CycloneIII 系 列 中 的
“EP3C25F324C8”。
(5) 单击“Next”按钮,进
入EDA工具选择对话框,在
该对话框中可以选择其它
EDA工具。这里可不做选择,
表 示 使 用 QUARTUSII 软 件
自带的综合器、仿真器等。
(6) 单击“Next”按钮,
出现新建工程的文件信
息摘要框,单击“Finish”
按钮,至此完成新工程
项目的创建。
1.2.2 设计输入
1. 原理图设计输入
(1) 在主菜单中,选中File—New,出现文件类型选择对话框。
选择“Block Diagram/Schematic File”,单击“OK”,进入图
形编辑界面。
(2) 左键双击图形编辑区空白处,弹出 “Symbol”对话框。
或单击鼠标右键,在弹出的选择对话框中选择Insert—Symbol,
也会弹出该对话框。

点击Symbol对话框的左上角“…/Libraries/”,可以用来选择
需要的功能模块库。
也可在Name框直接输入需要使用的模块名称。如设计中用到
译码器74138,只需在Name框中输入74138。
(3) 单 击 “ OK” 按
钮,选定模块就会出
现在图形编辑区中。
重复上述过程,添加
两个四输入端与非门
( nand4 ) 、 代 表 高
电平的VCC、代表低
电平的GND、三个输
入端口INPUT及两个
输出端口OUTPUT等
逻辑符号(这里以设
计一位全加器所需的
功能模块为例)。
(4) 元件间连线:如果需要连接元件的两个端口,则将光标移
到其中一个端口上,这时光标指示符会自动变为“+”形,然后按
住鼠标左键并拖动光标至第二个端口(或其他地方);松开鼠标
左键后则可画好一条连线。若想删除一条连线,只需用鼠标左键
点中该线,被点中的线会变为蓝色,此时按“Delete”键即可删除。

或者:如果需要连接元件的两个端口,则将光标移到其中一
个端口上,这时光标指示符会自动变为“+”形,然后按住鼠标
左键并拖动光标,画出一小段线,且该线段为蓝色时,并有闪
烁标志,此时键入文字即可;按同样的方法在另一端口作类似
操作,这样相同名字的导线代表它们在电气上是相连的。
如此操作后,完
成连线图。并在输
入、输出端口双击
PIN_NAME, 将 端 口
名分别改为a、b、ci
和s、co。

(5) 在 主 菜 单 中 , 选 中 File—Save As , 输 入 的 文 件 命 名
“adder1”,原理图文件的扩展名为“.bdf”。
完成电路原理图设计输入后,即可进行项目编译。
2. 文本编辑设计输入
如果采用VHDL语言输入方式,则建立文本编辑设计文件的
步骤如下:
(1) 完成新工程项目的创建后,在主菜单中,选中File—New,
出现文件类型选择对话框。选择“VHDL File”,单击“OK”,
进入文本编辑界面。
(2) 在当前的
文本编辑窗口直
接输入VHDL程
序,以一位全加
器的带使能的3
线-8线译码器功
能模块为例说明。

在主菜单中,选中File—Save As,输入的文件命名“decoder38”,
VHDL语言文件的扩展名为“.vhd”。
1.3 项目编译
1. 选择“Project”
菜单,点击“Set as
Top-Level Entity”
项, 把当前文件设
置为顶层实体 。 或
右键点击所要编译
的 文 件 , 如
adder1.bdf , 弹 出
菜单,点击“Set as
Top-Level Entity”
项, 也可将当前文
件设置为顶层实体。
2. 点击工具栏上的“ ”按钮或打开“Processing”菜单,点
击“Start Compilation”执行完全编译。
3. 编译成功后,编译器产生相应的输出文件。如果有错误,
编译器将停止编译,并给出错误信息,双击错误信息条,一般
可给出错误之处,根据“Messages”消息栏给出的错误提示修改
程序,保存后再次编译,直至所有错误均改正后,系统会弹出
编译结束窗口,显示零错误(一般警告信息可以忽略),单击
“确定”按钮,出现编译状态显示窗口。编译报告给出硬件信
息、资源占用率等信息。
1.4 设计仿真
1. 在主菜单中,选择File—New,打开“Other Files”标签项,
选中“Vector Waveform File”,点击“OK” 。
2. 在波形编辑窗口左侧栏的Name栏目下的空白框里,双击鼠
标左 键 ,出 现 “ Insert Node or Bus”框口 ,再点击 “Node
Finder”按钮,弹出 “Node Finder”对话框。
3. 查找节点信息,插入节点。在图中的“Filter:”选项下
选择管脚类型为“Pins:all”,然后单击List按钮,可在左下侧区
域看到设计项目中的输入输出信号,再单击按钮“》”,可将这
些信号选择到“Selected Nodes”区,表示对这些信号进行观测。
4. 点击上图中的“OK”按钮后自行回到插入节点对话框;
再点击“OK”按钮即可完成节点的添加,出现添加节点后的波形
编辑窗口。
5. 在主菜单中,选中File—Save As或点击工具栏中的“ ”
按钮,输入的文件命名“adder1”,波形文件的扩展名为“.vwf ”。
6. 编辑输入节点波形,也就是为输入信号建立输入波形。下
图给出了与绘制波形图操作的相关工具条说明。

选择某个对象执行复制、剪切和移动等操作 文本编辑
选中某段波形,并直接对其赋值 波形显示缩放
全屏显示

查找

选定波形为未初始化 赋值‘X’,代表不定值
赋值‘0’,代表低电平 赋值‘1’,代表高电平
赋值‘Z’,代表高阻状态 选定波形为弱未知状态
选定波形为弱低电平 选定波形为弱高电平
选定波形为无关状态 选定波形为电平取反
为有规律/周期性的单个信号或总线赋值 为时钟信号赋值
选定波形为任意设定值 选定波形为为随机值
选定波形对齐网络 设定波形的排序方式
(1) 设置合适的仿真结束时
间。在主菜单中,选中
Edit—End Time…选项,打
开End Time对话框,在Time
框内输入2.0,单位为us,单
击“OK”按钮即可完成仿真
时间设定。(Time框内默认
状态为1.0,单位为us,用户
可根据实际情况设定仿真时
间)
(2) 设 置 合 适 的 栅 格 时 间 。 在 主 菜 单 中 , 选 中 Edit—Grid
Size…选项,打开Grid Size对话框,在Time period框内输入20.0,
单位为ns,单击“OK”按钮即可完成栅格时间设定。(Time
period框内默认状态为10.0,单位为ns。用户可根据实际情况设
定栅格时间)。
(3) 这里需要对一
位全加器进行波形
仿真,故对输入信
号 a 、 b 、 ci 分 别 赋
值000、001、010、
011 、 100 、 101 、
110 、 111 的 一 个 周
期。

在主菜单中,选中File—Save As或点击工具栏中的“ ”按钮,


再次保存波形文件“adder1.vwf”,至此完成波形输入。
7. 时序仿真

选 择 Processing 菜 单 下
的Simulator Tool选项,打
开仿真工具对话框,在
“ Simulation mode” 选 择
Functional(功能仿真)或
Timing(时序仿真)等模
式;在“Simulation input”
后面的文本框里指定需要
仿真的波形文件的路径。
若 进 行 Functional ( 功 能 仿 真 ) 操 作 , 则 需 先 点 击
“ ”运行,确定后再点击“ ”
按钮,开始仿真。仿真完成如无问题,确定后点击“ ”
按钮,即可观察到仿真后的波形。
若进行Timing(时序仿真)操作,点击“ ”按钮,
即可开始仿真。仿真完成如无问题,确定后点击“ ”按
钮,即可观察到仿真后的波形。
1.5 引脚分配
1.选择器件
这里以将上述一位全加器电路下载到CycloneIII系列器件中的
EP3C25F324C8为例进行说明。
(1)返回到上例的一位全加器电路图形编辑窗口
(2)在主菜单Assignments中选择Device项,打开器件选择对
话窗。
(3)单击Family 区的下拉列表,可进行器件系列选择,本例
应选择CycloneIII系列。
(4)在Available devices的下拉列表中选择EP3C25F324C8。
(5)单击OK按钮,对话框关闭,即完成器件选择。
2.管脚锁定
(1)在主菜单Assignments中选择Pins项,弹出管脚分配对话
窗口,在下方的列表中列出了本项目所有的输入/输出引脚名。
(2)在需要锁定的信号处,例如选择a节点信号,双击引脚锁定区
Location后弹出引脚列表,从中选择合适的引脚,这里将a节点信号锁定在V9
号引脚上,则输入信号a的引脚锁定完毕。也可双击a节点信号引脚锁定区
Location后,直接写入V9就可以完成信号a的引脚锁定。
(3)按照步骤(2)中的引脚锁定过程,完成一位全加器电路其
他引脚的锁定。具体引脚分配如下:

信号名 对应器件名 物理引脚号


a(被加数,输入) KEY1(开关) V9
b(加数,输入) KEY2(开关) U10
Ci(低位向本位的进位,输入) KEY3(开关) B9
co(本位向高位的进位,输出) LED1(LED灯) R4
S(全加器的和,输出) LED2(LED灯) M5
一位全加器电路的所有输入/输出引脚锁定完毕,如图所示:
(4)未使用的引脚设置。
在 主 菜 单 Assignments 中 选 择
Device项,打开对话窗口,点
击 其 中 的 “ Device & Pin
Options…” , 打 开 Device and
Pin Options 对 话 框 , 选 择
Unused Pins标签页,将未使用
的 引 脚 设 置 为 高 阻 输 入 “ As
input tri-stated” , 单 击 “ 确
定”。
(5)重新编译。器件选择和引脚分配后,需要重新运行编译器,
QuartusII将生成如.pof和.sof等编程数据文件通过下载电缆载到预先选择的
FPGA芯片中。选择“Processing-Start Compilation”进行全程编译,重新编
译后,逻辑电路图上出现已分配的引脚号。
1.6 编程下载
■ 实验箱驱动程序的安装
我的电脑(右键) 属性 设备管理器
USB-Blaster(右键) 更新驱动程序软件 浏览计算
机以查找驱动程序软件 C:\altera\91\quartus\drivers(根
据各自安装QuartusII的目录更改)
■ 编程下载
选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点
击“ ”图标,打开下载对话框。
如果此对话框中的“ ”后为“No Hardware”,
则需要选择编程的硬件。点击Hardware Setup,进入Hardware
Setup对话框,在此添加硬件设备。(读者需要根据自己的实验
设备情况,进行器件编程的设置。)
配置编程硬
件后,选择下
载模式,在
Mode 中 指 定
的编程模式为
JTAG模式。

选中“adder1.sof ” 文件后的Program/Configure选项,然后点
击“ ”按钮即可开始往目标板上下载所需程序。Process进
度条中显示编程进度。
※ QuartusII使用注意事项
1. 如果信号的命名有a0,a1……,那么a不能再单独用做其他
信号的命名;
2. 信号及文件的命名不能与元器件库中已有的器件名称相同,
如不能用vcc,gnd……;
3. 如果自己定义的某个符号模块文件的内部有修改,那么需要
重新编译生成该文件的符号模块文件,且所有调用该模块
的地方都需要用新的模块替换;
4. 分配完管脚后要重新编译再下载;
5. 下载时如果找不到硬件,说明尚未安装驱动程序;
6. 下载时如果出现“Error: Can‘t access JTAG chain”的错误提
示,一般是由于连接电脑和实验箱的数据线不通造成的,
检查实验箱端是否接反或者确定是否数据线有断的地方;
7. 编译任何文件之前都要先将该文件设成顶层实体;
8. 仿真时Simulator Tool对话框中的“Overwrite Simulation
input file with simulation results”复选框要选中,如下图,
否则仿真结果中的输出信号全是XXXXX。
2 多功能数字钟设计

利 用 Quartus 软 件 设 计 一 个 数 字 钟 , 并 下 载 到
SmartSOPC实验系统中。

2.1 设计原理
设 计 一 个 数 字 计 时 器 , 可 以 完 成 00:00:00 到
23:59:59的计时功能,并在控制电路的作用下具有保
持、清零、快速校时、快速校分、整点报时等功能。
译码显示模块

时钟产生模块 计时模块 整点报时模块

校时校分模块 系统复位、保持模块

多功能数字钟整体设计方案框图
■ 模为16的计数器(可用于分频)波形图

CP
Q0
Q1
Q2

Q3

C
■ 整点报时示
意图

门 门

1000Hz

59’59’’

500Hz

59’53’’ (55’’、57’’)
■ 计数、译码、
显示示意图

译码器

计数器

模24 模60 模60


(小时) (分) (秒)
■ 动态显示工作原理 DIG0

8421
BCD
SL
DIG1
SH
a
8421
ML BCD 显示 b
c
24选4 译码器 d DIG2
MH MUX 7447 e
f
g
HL
DIG3
HH

DIG0
DIG1
DIG4
译码器 DIG2
A2 A1 A0
74138 DIG3
CLK2 计数器 DIG4
DIG5
DIG5
2.2 设计基本要求

1. 能进行正常的时、分、秒计时功能;
2. 分别由六个数码管显示时分秒的计时;
3. K1 是系统的使能开关(K1=0正常工作,K1=1时钟保持不
变);
4. K2 是系统的清零开关(K2=0正常工作,K2=1时钟的分、
秒全清零);
5. K3 是系统的校分开关(K3=0正常工作,K3=1时可以快速
校分);
6. K4 是系统的校时开关(K4=0正常工作,K4=1时可以快速
校时);
7. 使时钟具有整点报时功能(当时钟计到59’53”时开始报时,
在59’53”, 59’55”,59’57” 时报时频率为500Hz,59’59”时报
时频率为1000Hz)。

2.3 设计提高部分要求
1. 星期功能;
2. 音乐功能;
3. 闹表设定功能;
4. 万年历功能;
5. 自主发挥其他功能。
3 实验报告要求
3.1 实验报告内容
★ 封面:参照群里的封面文档要求;
★ 摘要和关键词(中英文);
★ 目录;
★ 正文:
*设计要求说明
*方案论证(整体电路的工作原理)
*各子模块设计原理、源程序、测试程序、仿真结果
*编程下载情况、电路调试结果
★ 结论;
★ 实验感想
* 实验过程中遇到的问题及解决问题的方法;
* 实验的收获与感受;
* 期望及要求。
★ 参考文献。

3.2 实验提交文档

★ 实验报告纸质版
★ 实验报告电子版、实验程序电子版
文件夹命名:学号+姓名
说明:对于部分或全部拷贝他人设计程序、抄袭他人报告、
不交报告以及无故旷课等情形,将会影响成绩或取消成绩!

You might also like