项目五 Quartus II软件基础
Quartus II是Altera公司的EDA设计工具,由该公司早先的MAX+PLUSII演变而来。不仅继承了MAX+PLUSII工具的优点,更提供了对新器件和新技术的支持, 使设计者能够能轻松和全面地介入设计的每一个环节。
本章将通过四位串行加法器、 简单流水灯电路和SignalTapII的学习掌握QuartussII软件平台上创建工程、 新建文件、 波形仿真、 管脚分配、 设计下载和硬件测试等基本操作, 为后续项目的学习打好基础。
任务5.1 四位串行加法器设计
四位串行加法器是由四个全加器利用低位进位输出与高位进位输入相连构成。假设全加器的一个加数是ain,另一个加数是bin,来自低位的进位是cin,和输出sum,进位输出cout。根据全加器的功能可得真值表如表5-1所示,由真值表计算得出各输出的最简表达式:

5.1.1新建four_add工程
新建一个存放工程的文件夹,位置不要放在安装目录中,此文件夹将被EDA软件默认为工作库。一般不同的设计项目最好放在不同的文件夹中,而同一工程所包含的所有文件都必须存放在同一文件夹中。QUARTUSII软件中所有的设计任务都是一个工程,因此新建工程是每个设计都需要的操作,而此项操作一般是在新建工程向导提示下完成,具体操作如下:
1.打开新建工程向导
2.设置工程保存路径,工程和实体文件的名称
3.添加工程包含文件
4.选择目标器件
5.选择EDA工具





5.1.2新建文件
新建全加器原理图文件full_add和四位串行加法器原理图文件four_add。
选择常用编辑栏的第一个按钮,或者File菜单下New项打开新建文件窗口,如图5-6所示。此窗口提供包括设计输入文件(如原理图文件、VHDL文件)、波形仿真文件、初始化数据文件、硬件测试文件等创建。这里选择原理图文件,点击OK。

5.1.3原理图设计输入
原理图设计输入一般包括元件、输入输出引脚导入,编辑引脚名称,连线。

1.full_add文件的输入步骤
(1)双击空白工作区域,打开导入元件窗口,如图5-7所示,在软件安装路径下library库文件夹中存放了软件提供的所有元件,其中primitives文件夹存放有触发器、基本逻辑门、电源、地、输入输出引脚;others文件夹存放有74系列的标准集成电路;megafunctions文件夹存放了所有宏功能模块。导入全加器的三个输入引脚input,两个输出引脚output,三个两输入与门and2,一个三输入或门or3,两个异或门xor。
(2)编辑修改引脚名称。双击引脚或者两次单击引脚名称将其修改至合适。将三个input的名称修改为ain、bin、cin,两个output的名称修改为sum、cout。
(3)按照设计电路原理图连接元件和引脚。鼠标放置元件引脚出现十字状时可以按住左键不动连线,在需要改变方向的地方停顿下。输入好的全加器电路如图5-8所示。
(4)保存文件。点击保存按钮,在保存对话框中点击确定。

(5)进行编译,至编译成功。
在工程导航窗口选择files标签,右键full_add文件,在弹出的快捷菜单中选择setas toplevelentity,设置为顶层文件,单击水平工具条上的编译按钮开始编译,并伴随着进度不断地变化,编译完成后显示的窗口如图5-9所示,单击确定按钮。
(6)元件打包。元件打包是将设计电路打包成一个模块或元件,以便设计顶层文件或其他设计调用。打开full_add文件,将该页面设成当前页面,单击file/create/createsymbol files for current file即可。

2.four_add文件输入
(1)双击空白工作区域,打开元件导入窗口,这时在元件库路径上面多了一个project文件夹,里面存放了之前打包生成的全加器元件full_add。导入四个full_add,三个Input,两个output。
(2)编辑修改引脚名称。将三个输入引脚改成ain[3..0](总线式引脚),bin[3..0],c0;两个输出引脚编辑成sum[3..0],cout。
(3)按照设计电路原理图连接元件和引脚。这里采用了总线式引脚,它们的元素和具体的元件引脚连接需要使用网络标识。网络标识成对出现,表示电路中的某两点之间有电气连接,它可以使原理图简化,方便纠错。从元件引脚引出一段导线,选中右键,在快捷菜单中选择proterties,然后在打开的窗口中输入网络标识,如ain[0]、ain[1]、ain[2]等。输入好的四位串行加法器如图510所示。
(4)保存文件。点击保存按钮,在保存窗口中点击确定。
(5)进行编译,至编译成功。
在工程导航窗口选择files标签,右键four_add文件,在弹出的快捷菜单中选择setas top-level entity,设置为顶层文件,单击水平工具条上的编译按钮编译。根据错误信息进行相应的修改,并重新编译,直到没有错误提示为止。

5.1.4波形仿真
波形仿真是在波形编辑器中将设计的逻辑功能用波形图的形式显示,通过查看波形图,检查设计的逻辑功能是否符合设计要求。波形仿真的目的是进一步检验设计文件描述的逻辑功能能否实现预期的目标。波形仿真分析是验证逻辑功能正确性必不可少的环节。
波形仿真的步骤包括新建波形文件、插入仿真节点、编辑输入波形、运行仿真器、检查输出波形是否符合设计要求。
1.建立波形图文件
在“file”菜单下选择“New”,选中“vectorwaveform file”,点击“OK”打开波形编辑窗口,如图5-11所示。

2.导入仿真观测的输入输出节点
在View/Utility下单击NodeFinder,弹出导入节点窗口。在“Filter:”选项下选择管脚类型为“Pins∶all”,然后单击List按钮,可在下边空白区域看到设计项目中的输入输出信号,选中需要观测的信号,如图5-12所示,用鼠标拖至波形编辑器的左边空白区域。
关闭信号查找窗口,保存波形文件,文件名为four_addvwf(注:扩展名默认不填,文件名与项目名同名)。

3.为输入信号编辑波形
波形编辑器窗口左侧为信号赋值工具条,根据实际要求点选工具按钮对输入信号编辑波形。这些工具条按钮和菜单的含义,如图5-13所示。

(1)设置仿真时间。
(2)设置输入信号波形。
手动编辑:按住鼠标左键不动拖动至某一位置可以选中某一时间段,然后选择工具条上的波形编辑按钮即可为信号在该时段编辑好了波形。自动编辑:选中波形编辑器左栏中的某一信号,然后点击工具条按钮中的某一按钮即可按照按钮具体功能给信号编辑好了波形。这里手动将输入的ain、bin、cin的8种状态用波形编辑出来,波形按10ns变化一次。设置好的波形如图5-14所示。
(3)设置完后保存波形文件。名称与工程名字一致。

4.时序仿真 QuartusII中默认的仿真是时序仿真,直接选择Processing菜单下的StartSimulation选项(或者是单击按钮),即开始波形仿真。状态窗口会显示出仿真进程,仿真结束后,得到的仿真报告如图5-15所示。 5.功能性仿真 功能仿真是对VHDL、原理图描述或其他描述形式的设计的逻辑功能进行模拟测试,以了解其实现的功能是否满足要求,仿真过程不涉及任何具体器件的硬件特性,是最理想的仿真。首先选择Assignmennts|settings菜单命令,在弹出的Settings对话框中进行设置。操作界面如图5-16所示,单击左侧标题栏中的SimulatorSettings选项后,在右侧Simulationmode下拉列表中选择Functional选项即可(软件默认的是Timing选项),单击OK按钮后设置完成。 设置完成后还需要生成功能仿真网络表。最后单击按钮进行功能仿真,结果如图5-17和图5-18所示,显示仿真后的波形没有延时,验证了全加器和四位串行加法器功能。



