超简明QuartusII教程
(CPLD篇)
黄俊
2007-9-29
http://www.edacn.net/index.php/2599 huangjun5927@163.com
在很多设计中,CPLD仅作为电路中的辅助元件,坦白地说,对大多数硬件开发工程师
来说,CPLD部分的设计并不是他们主要的工作,并不想花太多时间去学习。QuartusII功能
强大,但很多工具并不需要在CPLD设计中使用。
QuartusII使用极其方便,可简可繁,本文力争让读者在两小时内就掌握基本的使用方
法。本文同样适用于FPGA设计的一部分,FPGA设计中涉及更深一些的时序分析、时序约
束、逻辑分区,逻辑锁定,逻辑分析仪,功耗分析等等功能,所需工具较多,请参看其它教
程。本文图片配合文字和箭头为主要讲解方式,所以需多用一下放大功能,在200%左右看
插图时,可以清晰看到文字。
引子
CPLD基本设计流程如下:
z 工程管理——新建工程、工程管理;
z 源文件输入——VHDL/Verilog程序或原理图的设计,Altera内嵌模块的调用
(对CPLD而言,只有MAXII还有内嵌模块可调);
z 综合、编译——检查语法、连接错误,生成综合后网表;
z 功能仿真——综合后的功能仿真(可选);
z 简单的约束——管脚分配、I/O特性约束(电平标准,驱动能力等)、简单的
时序约束;
z 全编译——软件自动完成布局布线、生成最终编程文件;
z 时序仿真——带延时的和实际情况非常相近的时序仿真(推荐使用);
z 编程——下载到硬件中。
实战
1、 工程管理
a) 新建工程
i. 输入工程名,
ii. 选源文件
iii. 选器件
iv. 设置第三方工具
具体方法见下图。
在此有一个重要的设置需了解,即未用I/O的状态。
4 b) 工程管理
i. 整个工程可单纯复制
ii. 整个工程可存不同版本(有相互比较的功能)
iii. 整个工程可以压缩(可供存档、打包之用)
技术支持人员一般会希望用户用这一工具,将工程打包,以便再现遇到的问题。
5
2、 源文件输入
a) 新建源文件:
i. HDL;
1. 可导入模板
6
2. 保存;
3. 窗口的操作
QuartusII对操作界面提供灵活的设置,可自己组合窗口以满足自己的审
美。个人感觉,在操作一些窗口时,留出来的位置太小,用满屏显示还是蛮实用的。满屏显示和退出满屏显示均可以用快捷键: Ctrl+Alt+空格键。
4. 将HDL文件转成原理图模块及设置顶层文件的方法
5. 导入源文件
ii. 原理图; 1. 基本工具的使用,添加元件;
2. 连线的技巧:
3. 添加输入输出管脚:
9
4. 标明输入输出管脚;
iii. 内嵌模块;
MAXII里面只嵌入了一个8K的FLASH,一个晶振,所以在CPLD设计里也
只有调用它们,调用后,会生成HDL文件和原理图文件,可以分别在HDL
文件中例化,在原理图文件中调用。在此以调一个晶振为例:
如下图所示:
10
3、 综合编译
a) 下面为方便讲解,以下图为顶层文件。该文件调用Verilog编写的底层文件
binary_up_down_counter.v文件。调用MAXII内部晶振,由一个使能端控制是否输
出,输出频率为5.6MHz。
b) 综合编译: 很简单,点击工具上的图标即可。
c) 排错:
11
4、 功能仿真参见下面的时序仿真,方法类似的。对CPLD设计,因比较简单,建议直接到
后面进行时序仿真即可。
5、 简单约束:
a) 管脚约束:
12 b) 驱动能力约束:
13 c) 简单时序约束,在此略过。一般都能满足时序的需求。需时序仿真时发现不满足要
求,可参考其它教程约束时序(对MAXII而言,最多也就是最大频率fMAX约束一
下)
d) 其它约束,例如约束某个信号为全局信号的方法,见附录1.
6、 全编译 也很简单,直接按工具栏上的按钮即可。
7、 时序仿真:
a) 仿真工具和方法很多,在此只讲简单的,用QuartusII自带仿真工具的方法。
b) 方法如下:
i. 新建仿真文件;
14
ii. 设置仿真时间及波形显示窗口的精度。
iii. 设置仿真输入;
15 iv. 选择仿真文件,仿真类型,开始仿真;
1. 选择仿真文件,设置仿真类型。
2. 点击工具栏上的图标,开始仿真。 3. 查看仿真波形,检查是否有时序问题。(略)
注:如果需进行功能仿真,需做以下设置:
8、 编程下载: 点击工具栏上的按钮,打开编辑界面
9、附录1
约束某个信号为全局信号的方法
黄俊
2007-6-7
1、 点工具栏上的图标,打开Assignment Editor。
2、 在里面To的位置双击,点右边的,再选择Node Finder…,
3、 找到想要设置的信号。(在这里以clk_92M16Hz为例)
18
4、 在Assignment里面设置为Global Signal(可按G键直接搜索到)。
5、 再双击Value下面,可以选择是全局时钟,还是区域时钟还是其它的全局信号。
点保存,即可完成这个Global Clock的约束。