超简明Quartus_II教程(CPLD篇)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

超简明QuartusII教程

(CPLD篇)

黄俊

2007-9-29

/index.php/2599

huangjun5927@

在很多设计中,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的状态。

b)工程管理

i.整个工程可单纯复制

ii.整个工程可存不同版本(有相互比较的功能)

iii.整个工程可以压缩(可供存档、打包之用)

技术支持人员一般会希望用户用这一工具,将工程打包,以便再现遇到的问题。

a)新建源文件:

i.HDL;

1.可导入模板

2.保存;

3.窗口的操作

QuartusII对操作界面提供灵活的设置,可自己组合窗口以满足自己的审

美。个人感觉,在操作一些窗口时,留出来的位置太小,用满屏显示还是

蛮实用的。满屏显示和退出满屏显示均可以用快捷键:Ctrl+Alt+空格键。

4.将HDL文件转成原理图模块及设置顶层文件的方法

5.导入源文件

ii.原理图;

1.基本工具的使用,添加元件;

2.连线的技巧:

3.添加输入输出管脚:

4.标明输入输出管脚;

iii.内嵌模块;

MAXII里面只嵌入了一个8K的FLASH,一个晶振,所以在CPLD设计里也只有调用它们,调用后,会生成HDL文件和原理图文件,可以分别在HDL 文件中例化,在原理图文件中调用。在此以调一个晶振为例:

如下图所示:

3、综合编译

a)下面为方便讲解,以下图为顶层文件。该文件调用Verilog编写的底层文件

binary_up_down_counter.v文件。调用MAXII内部晶振,由一个使能端控制是否输

出,输出频率为5.6MHz。

b)综合编译:

很简单,点击工具上的图标即可。

c)排错:

4、功能仿真参见下面的时序仿真,方法类似的。对CPLD设计,因比较简单,建议直接到

后面进行时序仿真即可。

5、简单约束:

a)管脚约束:

b)驱动能力约束:

c)简单时序约束,在此略过。一般都能满足时序的需求。需时序仿真时发现不满足要

求,可参考其它教程约束时序(对MAXII而言,最多也就是最大频率f MAX约束一

下)

d)其它约束,例如约束某个信号为全局信号的方法,见附录1.

6、全编译

也很简单,直接按工具栏上的按钮即可。

7、时序仿真:

a)仿真工具和方法很多,在此只讲简单的,用QuartusII自带仿真工具的方法。

b)方法如下:

i.新建仿真文件;

ii.设置仿真时间及波形显示窗口的精度。

iii.设置仿真输入;

1.选择仿真文件,设置仿真类型。

2.点击工具栏上的图标,开始仿真。

3.查看仿真波形,检查是否有时序问题。(略)注:如果需进行功能仿真,需做以下设置:

8、编程下载:

点击工具栏上的按钮,打开编辑界面

9、附录1

约束某个信号为全局信号的方法

黄俊

2007-6-7

1、点工具栏上的图标,打开Assignment Editor。

2、在里面To的位置双击,点右边的,再选择Node Finder…,

3、找到想要设置的信号。(在这里以clk_92M16Hz为例)

4、在Assignment里面设置为Global Signal(可按G键直接搜索到)。

5、再双击Value下面,可以选择是全局时钟,还是区域时钟还是其它的全局信号。

点保存,即可完成这个Global Clock的约束。

相关文档
最新文档