#####超简明Quartusii教程cpld篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的约束。