当前位置:文档之家› #####超简明Quartusii教程cpld篇

#####超简明Quartusii教程cpld篇

超简明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的约束。

相关主题