搜档网
当前位置:搜档网 › quartusii教程

quartusii教程

quartusii教程
quartusii教程

Q u a r t u s I I教程-CAL-FENGHAI.-(YICAI)-Company One1

第3章 Altera Quartus II软件开发向导

基于Altera Quartus II软件的设计方法有模块编辑法、文本编辑法、宏模块编辑法和包含前三种方法的混合编辑法。宏模块设计法放在第6章讲述,本章通过实例简单介绍使用Quartus II软件的模块原理图编辑法、文本编辑法和包含前两种方法的混合编辑法。

模块编辑及设计流程

Quartus II软件的模块编辑器以原理图的形式和图标模块的形式来编辑输入文件。每个模块文件包含设计中代表逻辑的框图和符号。模块编辑器可以将框图、原理图或符号集中起来,用信号线、总线或管道连接起来形成设计,并在此基础上生成模块符号文件

(.bdf)、AHDL Include文件(.inc)和HDL文件。

3.1.1 原理图输入文件的建立

在这里我们设计非常简单一个二输入的或门电路。它只包含一个或门、两个输入引脚和一个输出引脚。首先创建一个原理图形式的输入文件。步骤如下:

(1)打开模块编辑器

单击【File】|【New】,弹出新建文件对话框,如图所示。

图新建文件对话框

选择文件类型【Block Diagram/Schematic File】,打开模块编辑器,如图所示。使用该编辑器可以编辑图标模块,也可以编辑原理图。

图模块编辑器

Quartus II提供了大量的常用的基本单元和宏功能模块,在模块编辑器中可以直接调用它们。在模块编辑器要插入元件的地方单击鼠标左键,会出现小黑点,称为插入点。然后鼠标左键,弹出【Symbol 】对话框,如图所示。或者在工具栏中单击图标,也可打开该对话框。

图 Symbol对话框

在Symbol对话框左边的元件库【Libraries】中包含了Quartus II提供的元件。它们存放在\altera\quartus60\libraries\的子目录下,分为primitives、others、megafunctions三个大类。

基本逻辑函数(primitives)

基本逻辑函数存放在\altera\quartus60\libraries\ primitives\的子目录下,分别为缓冲逻辑单元(buffer)、基本逻辑单元(logic)、其它单元(other)、引脚单元(pin)和存储单元(storage)五个子类。Buffer子类中包含的是缓冲逻辑器件,如alt_in buffer、alt_out_buffer、wire等;

217

logic子类中包含的是基本逻辑器件,如and、or、xor等门电路器件;other子类中包含的是常量单元,如constant、vcc和gnd等;pin子类中包含的是输入、输出和双向引脚单元;storage子类中包含的是各类触发器,如dff、tff等。

宏模块函数(megafunctions)

宏模块函数是参数化函数,包括LPM函数 MegaCore AMPP函数。这些函数经过严格的测试和优化,用户可以根据要求设定其功能参数以适应不同的应用场合。这些函数存放在\altera\quartus60\libraries\ megafunctions\的子目录下,包含arithmetic、gates、I/O和storage四个子类。arithmetic子类中包含的是算法函数,如累加器、加法器、乘法器和LPM算术函数等;gates子类中包含的是多路复用器和门函数;I/O子类中包含的是时钟数据恢复(CDR)、锁相环(PLL)、千兆位收发器(GXB)、LVDS接收发送器等;storage 子类中包含的是存储器、移位寄存器模块和LPM存储器函数。

其他函数(others)

其他函数包含了MAX+Plus 所有的常用的逻辑电路和Opencore_plus函数,这些函数存放在\altera\quartus60\libraries\ others\的子目录下。这些逻辑函数可以直接应用到原理图的设计上,可以简化许多设计工作。

在模块编辑器的左边是工具栏,熟悉这些工具按钮的性能,可以大幅度提高设计速度。下面详细介绍这些按钮的功能。

选择工具:选取、移动、复制对象,是最基本且常用的功能。

文字工具:文字编辑工具,设定名称或批注时使用。

符号工具:用于添加工程中所需要的各种原理图函数和符号。

图标模块工具:用于添加一个图表模块,用户可定义输入和输出以及一些相关参数,用于自顶向下的设计。

正交节点工具:用于画垂直和水平的连线,同时可定义节点的名称。

正交总线工具:用于画垂直和水平的总线。

正交管道工具:用于模块之间的连线和映射。

橡皮筋工具:使用此项移动图形元件时引脚与连线不断开。

部分连线工具:使用此项可以实现局部连线。

放大/缩小工具:用于放大或缩小原理图。

全屏工具:用于全屏显示原理图编辑窗口。

查找工具:用于查找节点,总线和元件等。

元件翻转工具:用于图形的翻转,分别为水平翻转,垂直翻转和90度的逆时针翻转。

画图工具、、、:画图工具,分别为矩形、圆形、直线和弧线工具。

(2)添加元件符号

打开Symbol对话框左边的元件库【Libraries】,选择【primitives】|【logic】|【or2】,弹出Symbol对话框,如图所示。

218

图在Symbol对话框选择元件

单击【OK】按钮。鼠标变为+和选中的符号,将目标元件移动到合适位置单击左键,编辑器窗口就出现了该元件,如图所示。

图在编辑器窗口添加或门

同理,在【Libraries】中,选择【primitives】|【pin】|【input】,放两个输入引脚到编辑器窗口;选择【primitives】|【pin】|【output】,放一个输出引脚到编辑器窗口。如图所示。

219

图在编辑器窗口添加输入/输出引脚

(3)连接各元件并给引脚命名

放置好元件后,接下来的就要连接各个功能模块,通过导线将模块间的对应管脚直接连接起来。其具体做法如下:将鼠标移到其中一个端口,待鼠标变为“+”形状后。一直按住鼠标左键,将鼠标拖到到待连接的另一个端口上。放开左键,则一条连线画好了。如果需要删除一根线,单击这根连线并按Del键。这里分别将两个输入引脚连接到或门的两个输入端,将输出引脚连接到或门的输出端。

连线完成后可以给输入/输出引脚命名。在引线端子的PIN_NAME处双击鼠标,弹出Pin Properties对话框,在【Pin name】栏中填入名字。这里三个引脚分别命名为A、B、C。如图所示。

图连接元件并命名

引脚名称可以使用26个大写英文字母和26个小写英文字母,以及10个阿拉伯数字,或是一些特殊符号“/”“_”来命名,例如AB, /5C,a_b都是合法的引脚名。引脚名称不能超过32个字符;大小写的表示相同的含义;不能以阿拉伯数字开头;在同一个设计文件中引脚名称不能重名。

220

总线(Bus)在图形编辑窗口中显示为的是一条粗线,一条总线可代表2~256个节点的组合,即可以同时传递多路信号。总线的命名必须在名称后面加上 [a …b],表示一条总线内所含的节点编号,其中a和b必须是整数,但谁大谁小并无原则性的规定,例如A[3..0]、B[0..15]、C[8..15]都是合法的总线名称。

(4)保存文件

最后如需要保存文件,选择【File】菜单中的【Save As 】项或单击按钮,弹出Save As对话框,如下图所示,在File Name 对话框内输入设计文件名my_or_2,然后选择【OK】,即可保存文件。

图保存文件

原理图和图表模块设计的文件名称与引脚命名规则相同,长度必须在32个字符以内,不包含扩展名“.bdf”。

3.1.2 图表模块输入

图表模块输入是自顶向下的设计方法。首先在顶层文件中划出图形块或器件符号,然后在图形块上设置端口和参数信息,用信号线、总线和管道把各个组件连接起来。下面以3-8译码器为例介绍图表模块输入法。

打开模块编辑器,单击工具栏上的图表模块工具,将该模块拖到右边的空白处,用鼠标在需作图的地方画矩形框,在所画的矩形框范围就会出现图表模块,如图所示。

221

222

图 生成的图表模块

在图表模块上单击鼠标右键,弹出如图左图所示的菜单,选择【Block Properties 】选项,弹出模块属性设置对话框,如图右图所示。

图 模块属性设置对话框 模块属性设置对话框有四个属性标签页.。在【General 】标签页中的【Name 】栏设置模块名称为decode3_8;在【I/Os 】标签页设置3-8译码器的端口信息,在【Name 】栏中输入端口名称A ,【Type 】栏输入INPUT ,设定为输入端口。单击【Add 】按钮,即可将输入端口A 添加到模块属性设置对话框下面的【Existing Block I/Os 】列表中,如图左图所示。以此类推,添加另外两个输入信号B 、C ,添加三个使能信号G1、G2a 、G2b ,添加八个输出信号y0、y1、y2、y3、y4、y5、y6、y7。如图右图所示。

223

图 添加输入端口 单击【确定】,就生成了图标模块。使用鼠标选中图标模块,调整其大小,以便显示所有的端口。如图所示。

图 生成的图标模块 单击,保存设计的图标模块文件,将该文件的后缀名定义为.bdf 。

以上的设计过程只是规定了设计的图标模块的外部端口,图标模块的功能由硬件描述语言或图形文件实现。Quartus II 软件支持的设计文件格式有:AHDL 语言格式、VHDL 语言格式、Verilog HDL 语言格式、Schematic 图形格式。在图标模块单击鼠标右键,在弹出的菜单中选择【Create Design File from Selected Block 】选项,弹出创建设计文件对话框,如图所示。

图创建设计文件对话框

选择文件设计类型,这里选VHDL,确定是否把将要生成的文件添加到当前工程中。单击【OK】,就生成了设计文件。如图所示。

图生成设计文件

单击【确定】,弹出包含端口声明的VHDL文本编辑窗口,如图所示。

图包含端口声明的VHDL文本编辑窗口

在该窗口中,已经自动生成了包含端口定义的VHDL程序的实体部分,用描述模块功能的结构体部分是个空白,需要插入相应的语句,完成设计。

如果在图创建设计文件对话框选择Schematic,则弹出包含已经定义的输入输出端口原理图编辑窗口,如图所示。

224

图已经定义的输入输出端口原理图编辑窗口

在原理图编辑窗口左边,是输入端口;在原理图编辑窗口右边,是输出端口。下面我们要做的工作就是在中间插入元件,以构成自动decode3_8的原理图。

在生成图标模块的设计文件之后,如果需要对顶层图标模块的端口名或端口数目进行修改,那么在修改后,在模块上单击右键,在弹出的菜单中选择【Update Design File from Selected Block】选项,Quartus II软件会自动更新底层设计文件。

在设计较为复杂的电路时,顶层文件中需要包含多个图标模块和多个元件符号,而且需要把它们连接起来。,一般来说,连接元件符号的是信号线或总线,连接图标模块的既可以是信号线或总线,也可以是管道。

当用管道连接两个图标模块时,如果两边端口名称相同,如图所示则不必在管道上加标注,两者能够智能连接。在连接两个图标模块的管道上单击右键,在弹出的菜单中选择【Properties】选项,弹出Conduct Properties对话框,如图所示。选择【Signal】属性页,可在【Connections】列表中看到对应的连接关系。如图所示。

图具有相同端口名称的两图标模块

225

226

图 Conduit Properties 对话框 当需要连接的两个图标模块端口名称不同时,或者是图标模块和元件符号相连时,使用端口映射的方法将两个模块的端口连接起来。以如图所示的电路为例。

图 图标模块和元件符号相连

图中显示的时一个图标模块和一个二输入的与门,首先用两条信号线分别从与门的两个输入端引向图标模块,在图标模块会产生一个连接器端点。选中连接的信号线,在弹出的菜单中选择【Properties 】选项,弹出Conduct Properties 对话框,对该信号线命名,例如这里为wire01和wire02。

选中图标模块中需要映射的连接器端点,在连接器端点上单击右键,在弹出的菜单中选择

【Mapper Properties 】选项,弹出Mapper Properties 对话框,如图所示。

图 Mapper Properties 对话框

在Mapper Properties 对话框中选择【Mapping】属性页,该属性页用于设置模块I/O端口和连接器上的信号映射。例如,这里在【I/O on block】填入M,在【Signal in node】填入单击wire01,单击【Add】按钮,就将映射关系添加到了下面的【Existing mapping】列表中,表示将图标模块的输出端连接到信号线wire01上,而信号线wire01又连接在与门的一个输入端上,这样就实现了图标模块和元件符号的相连。依此类推,将其它映射关系也添加进来。完成映射后,在图表模块连接器端点处可以看到相关信息,如图所示。

图映射后的连接图

如果连接的是两个图标模块,用类似同样地办法设置。

3.1.3原理图设计流程

本节以上节建立的二输入或门输入文件为顶层文件,通过全部流程,实现设计。详细介绍基于Quartus II软件的原理图设计方法,具体实现步骤如下。

1.建立工程

(1)单击【File】|【New Project Wizard】选项,弹出工程向导的基本信息对话框,如图所示,在此对话框中,第一栏填入新工程的文件夹名,这里单击,弹出Select Directory 对话框,找到上节建立的输入文件(),单击【打开】,在第一栏就出现新工程的文件夹名,第二栏出现工程名,第三栏出现顶层实体名。注意工程名要和顶层实体名相同。

图工程向导的基本信息

227

(2)选择需要加入的文件和库

单击图所示对话框中的【Next】按钮进行下一步操作。此时如果文件夹不存在的话,系统会自动提示用户是否创建该文件夹,选择【Yes】按钮后会自动创建。已经创建就弹出添加文件对话框,如图所示。如果此设计中还需要其他设计文件,可以单击【File name】栏右边的,选择要添加的文件,单击【Add All】按钮就将该文件加入到上面的工程中。或者直接单击【Add All】按钮加入在该目录下的所有文件,如果需要用户自定义的库,单击【User Libraries】按钮进行选择。选中已加入的文件,单击【Remove】可以将其移除。这里不需要添加任何其它文件,直接单击【Next】。

图添加文件对话框

3)选择目标器件

单击图所示对话框中的【Next】按钮后,弹出器件类型设置的对话框,如图所示。在【Target device】选项中选择【Auto device selected by the Fitter】选项,系统会自动给所设计的文件分配目标器件。选择【Specific device selected in ‘Available devices’list】选项,用户可以根据实验条件指定目标器件。在右侧的选项中,可以选择目标器件的封装类型(Package),引脚数量(Pin count)和速度等级(Speed grade)以便快速查找用户所需的器件范围。

228

图器件类型设置

(4)选择第三方EDA工具

单击图中的【Next】按钮,弹出EDA工具设置对话框,如图.10所示。在此选择使用的第三方EDA工具。本例中不需要第三方EDA工具,直接单击【Next】按钮。

图3. 10 EDA工具设置

(5)结束工程设置

最后弹出新工程确认对话框,如图所示。从对话框中可以看到建立的工程名称,选择的器件等信息,如确认无误后,单击【Finish】按钮,创建新工程。

229

图工程信息概要

2. 编译工程

单击工具栏上的按钮,对工程文件进行编译,这时Quartus II界面不断变化,编译结束后产生的界面如图所示,这是编译成功的情况。单击【确定】,生成的编译结果界面如图所示。该界面显示了编译时的各种信息。如果编译不成功,在信息显示窗口给出错误和警告,可根据提示错误和警告进行相应的修改后重新编译,直到没有错误提示为止。

图编译完成时界面

230

图编译结果

3. 建立仿真矢量波形文件

(1)创建文件

在工具栏中单击【File】|【New】,弹出新建对话框,如图所示。在出现的【New】对话框中选择【Other Files】页面,在该页面选择【Waveform Editor File】选项,单击【OK】按钮,弹出矢量波形文件编辑窗口,如图所示。

图建立矢量波形文件

231

图矢量波形编辑窗口

(2)添加引脚或节点

双击图中【Name】下方空白处,弹出Insert Node or Bus对话框,如图所示。

图 Insert Node or Bus对话框

点击【Node Finder】按钮,弹出Node Finder对话框,如图所示。

232

图 Node Finder对话框

单击【Filter】栏的下拉菜单选择【Pins:all】选项后,点击【List】按钮,弹出设计文件引脚列表窗口,如图所示。在【Node Found】栏中列出了设计文件的列表。

图输入/输出引脚列表

在列表中双击需要的引脚,选中的信号将出现在右边的一侧,或者单击按钮,也可以如此,如图所示。

233

图选择输入/输出节点

单击【OK】按钮。返回insert Node or Bus对话框,如图所示。

图查找节点后的“ Insert Node or Bus”对话框

单击【OK】按钮后,选中的输入/输出引脚就出现在波形编辑窗口的【Name】栏下,引脚添加成功,如图所示。

234

相关主题