第二章 软硬件基本功能演示在详细学习每个部分之前,我们先通过一个实例来全程演示Quartus Ⅱ以及便携式EDA-Ⅰ实验平台的基本功能及实验流程,帮助大家提升学习兴趣。
选择4位的3选1多路选择器为例,利用Quartus Ⅱ完成基于VHDL 语言输入的工程设计过程, 包括创建工程文件、VHDL 程序输入、编译综合、波形仿真验证、管脚分配以及下载等。
实例原理介绍:3选1多路选择器是通过控制电路实现三路四位数据的选择输出显示,sel 作为选择信号,d0,d1,d2sel=“01”时选择选择d1,其他情况选择d2。
1、 创建工程文件 Quartus Ⅱ软件的工程文件是指所有的设计文件、软件源文件和完成其他操作所需的相关文件的总称。
双击Quartus Ⅱ软件图标,进入如下界面:图2.1 Quartus Ⅱ软件界面选择左上角的File —>New ProjectWizard ,打开新建工程向导。
点击页面下方的next,进入新建工程向导。
图 2.2 新建工程向导第1页在下图2.1.2的对话框,分别按照提示输入新建工程所在位置、工程名称(mux3_1)和顶层实体名称(mux3_1)。
注意:默认工程名与顶层实体名一致。
图 2.3 新建工程向导第2页完成后点击“Next”按钮,进入下一步,在图示2.4新建工程向导第3页中可以添加工程所需的源文件以及设置用户库。
图 2.4 新建工程向导第3页这一步一般直接点击“Next”跳过,进入下一步,选择目标器件。
在“Family”下拉列表中选择器件系列为Flex10K,在Target device选项中选中Specific device selected in ‘Available devices’list,依据实验平台的型号,确定器件型号Available device 为。
图 2.5 新建工程向导第4页完成后点击“Next”,进入选择第三方EDA工具页面。
用户可以根据需求确定工程所用的第三方设计、综合、仿真、时序分析工具,比如Modelsim、Synplify等,一般情况下我们不需要第三方工具,那么页面默认为None。
图 2.6 新建工程向导第5页点击“Next”,进入工程信息确认界面。
图 2.7 新建工程向导第6页查看工程信息设置,点击“Finish”结束,返回QuartusⅡ的主界面。
2、VHDL程序输入在QuartusⅡ主界面中,和开始新建工程文件同样的位置,界面的左上角选择File—>New,该实例需要通过VHDL编程,所以我们选择VHDL File。
图 2.8 新建文件类型选择框选择后点击“OK”,在出现的文本窗口中输入该4位3选1多路选择器的VHDL代码。
-----实体部分--结构体部分(设置选择规则)。
图2.9 4位3选1多路选择器VHDL程序编辑完毕,点击保存按钮(或选择菜单栏File—>Save,或使用快捷键Ctrl+s), 弹出对话框,默认保存工程文件名mux3_1.vhd。
图 2.10 保存编辑框3、编译综合在菜单中间偏右的位置找这样的按钮,左边的按钮代表“执行全编译”,右边的按钮代表“执行语法检查”,全编译慢些,对于大工程有针对性的编译可节约时间,对于简单程序,习惯于直接点击左边的全编译按钮。
按下全编译之后,在当前界面的右下角看到,从这个图标可以了解编译的进度,到达100%时表示编译完成。
图 2.11 编译成功窗口点击确定之后,指针移到“选项卡”编译报告名称处,右键选择“close”,即可关闭编译报告窗口。
4、波形仿真验证(1)建立波形文件,选择菜单栏中左上角File—>New(步骤和新建VHDL File一样),在弹出的新建文件对话框中选择Vector Waveform File并单击OK按钮,进入到空白波形编辑窗口。
图 2.12 波形编辑窗口(2)添加节点,在Name下方的空白处双击(或选择菜单栏Edit—>Insert—>Insert Node or Bus),弹出下图2.13的对话框。
图 2.13 添加节点或总线对话框点击对话框右侧的Node Finder 按钮,弹出图 2.14 Node Finder对话框在对话框中间的Filter下拉列表中现则Pins:all,其它选项取默认值,单击Filter右侧的List 按钮,在Node Finder列表中显示所有管脚,然后点击中间的>>按钮,将所有的管脚添加到右侧的Selected Nodes中,如图2.15:图 2.15 管脚选择点击OK按钮,返回到添加节点对话框,将对话中的Name、Type、Bus width和Start index 中的内容全部选择为Multiple Items。
图 2.16 添加完节点的节点添加对话框选择好后,点击右侧的OK按钮,返回到波形编辑窗口。
图 2.17 添加节点后的波形编辑窗口为了让结果更加直观,按照sel、d0、d1、d2、dout调整节点顺序。
(补充:单击要调整的节点所在的那一行的行号便可选中整行,选中会成为蓝色高亮状态,然后按着左键拖动到理想位置即可)(3)仿真启动前,需要设置两个重要参数:结束时间End Time 和网格大小Gride Size。
选择菜单栏中Edit—>End Time,弹出设置结束时间的对话框,如图2.18,系统默认值Time:1 us时间轴不足以显示所有的仿真结果时,那么就需要在仿真之前设置好以免重复操作。
图 2.18 波形仿真中设置结束时间对话框选择菜单栏中Edit—>Gride Size,弹出设置网格大小的对话框,如图2.19。
图2.19 网格大小设置对话框这里设置为100.0ns,设置完成后,点击OK。
(4)设置信号数据,选中节点sel,使其成为蓝色高亮状态,接着在左侧的波形编辑工具栏中选择按钮,弹出如图2.20:图2.20 选择信号设置对话框点击确定。
选择信号sel成为从00计数至11,如此的一个循环序列。
为了更清楚的显示选择的效果,我们将数据信号d0、d1、d2和输出信号dout设置为十六进制数,通过双击信号名右侧的信号类型“B 0000”,弹出如图2.21:图2.21 信号类型选择对话框在Radix的下拉列表中选择十六进制Hexadecimal,点击确定。
选中d0(使其成为蓝色高亮状态),在左侧的波形编辑工具栏中选中按钮,弹出如图2.22:图2.22 信号赋值对话框在Numeric or named value 中输入要赋给d0的值2。
同理给d1,d2分别赋值,d1=1,d2=3,为了简单起见,d0、d1、d2只设置了一种值。
(5)保存波形文件,使用之前介绍的三种保存方法的任意一种即可,保存为mux3_1.vwf,需要选中Add file to current project,如图2.23:图2.23 波形仿真文件的保存窗口(6)波形仿真,选择菜单栏Assignments—>Setting,弹出工程设置窗口,如图2.24:图2.24 仿真设置窗口在该窗口左侧单击Simulator Setting 选项,在右侧的simuation mode 下拉列表中选择Timing,其他按默认设置,单击“OK”按钮完成设置。
选择菜单栏Processing—>CompilerTool,点击“Start”按钮,进行全编译,接着点击工具栏中的仿真按钮启动仿真,时序仿真的结果如下图2.25:图2.25 有延时的时序仿真结果5、管脚分配选择菜单栏Assignments—>Pin Planner,弹出下图2.26的窗口:图2.26 引脚分配窗口选中第一行d0[3]使其为蓝色高亮状态,双击Location列的空白格,在下拉列表中选择管脚资源,同理分配其他输出信号的管脚,在便携式EDA-Ⅰ实验平台的管脚分配情况参考如下图2.27:图2.27 管脚分配结果管脚分配结束后,关闭当前页面,选择菜单栏Processing—>Compiler Tool,点击Start执行全编译,编译成功后,点击确定。
6、下载至实验平台按照第一章便携式EDA-Ⅰ型实验平台简介附录中的介绍安装好实验板的驱动,将实验板左下角功能选择开关“通信下载”扳至“下载”一边。
选择菜单栏Tool—>Programmer,进入下载向导如图2.28:图2.28 下载向导在上图2.28左上角选择Hareware Setup,进入如下图2.29窗口:图2.29 下载向导之硬件选择在Currently selected hardware 栏显示No hardware,点击右边的黑色三角形出现的下拉菜单中,选中USB-Blaster[USB-0],点击Close,返回下载向导首页,在所示文件对应的Program/configure栏中选中,然后点击左侧列表的“Start”按钮,当下载向导右上角的Progress 栏中出现100%时表示下载成功,如图2.30:图2.30 下载成功后的下载向导窗口实验平台操作:之前的管脚分配结果是将选择信号sel分配在Pin 70,69,那么通过这两个管脚的高低电平调节,可以选择相应的信号;d0[3..0]分配在Pin 65,64,63,62;d1[3..0]分配在Pin 60,59,51,49;d2[3..0]分配在Pin 48,47,46,44,通过相应的高低电平调节设置d0,d1,d2的值,选择信号sel会依据之前在VHDL中设定的选择规则进行信号选择,并将显示结果显示在dout[3..0]上,dout[3..0]分配在显示灯上,管脚分配为Pin 109,102,101,100;通过这四个显示灯和d0,d1,d2的比较,sel选择的是哪个信号,那么显示灯就会与那个信号的输入一致,下载完毕。
这个实例从创建工程文件、VHDL程序输入、编译综合、波形仿真验证、管脚分配以及下载大致演示了基于QuartusⅡ和便携式EDA-Ⅰ实验平台开发的过程,希望通过这个实例的演示让大家先入为主的了解软硬件平台的基本使用流程,祝大家学习愉快,开发更多更好的案例。