练习1.2-Quartus-II仿真工具的使用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

练习1.2QuartusII仿真工具的使用1.首先,打开QuartusII开发软件,新建一个名称为Encoder4_2工程(路径可自行指定,如D:\Design_Project\Altera\Practice1_2),选择器件类型EP2C8Q208C8。(有关工程的创建,请参考练习1.1)。2.在菜单栏中,选择“File”-“New”,新建一个名为Encoder4_2.v(或是Encoder4_2.vhd)的文件,编辑好代码并保存,并将此文件添加至工程。(详细步骤请参见练习1.1)3.接下来,选择菜单栏的“Processing”-“AnalyzeCurrentFile”,或者在工具栏中找到快捷键并单击,于是QuartusII便开始了分析和综合,以检查代码的语法正确性,并得到电路的逻辑网表。4.接下来,我们将新建一个向量波形文件,并通过此文件实现对我们编写的源文件的仿真。5.在菜单栏中,选择“File”-“New”,在如下所示的窗口中,我们在“Verification/DebuggingFiles”的子目录中,选中“VectorWaveformFile”,然后点击下方的“OK”按钮。6.新建的*.vwf文件的视图如下所示,接下来我们需要在这个文件里添加待观测的仿真信号。我们在其左侧空白处双击,见图。7.在弹出的“InsertNodeorBus”窗口中,我们点击“NodeFinder”按钮。8.在如下窗口中,我们保持“Named”一栏中的“*”不变,在“Filter”一栏中选择“Pins:all”,然后单击其后的“List”按钮。9.我们在找到的信号列表中(左侧方框中),选中我们想要添加的信号(按住ctrl键可多选),并点击连个方框中间的按钮,如下图所示。10.我们在如下图所示的对话框中点击“OK”按钮。11.接下来,我们刚改所选择的带观测的信号会被添加到波形的窗口中。如下图所示。12.视图中的“LED”和“SW”均是总线类型的信号,我们可以用鼠标点击器前方的“+”来展开这些总线信号,如下图所示。13.接下来,我们开始设置激励源。比如,我们要设置SW[3]信号在10ns到20ns的时间段里为高电平,我们可以用鼠标在SW[3]这一行的10ns处按住鼠标左键,并向后拖至20ns处,然后松开,接下来,找到左侧的波形编辑按钮并点击。我们会发现,被我们所选中的这一段就被设置成电平了。14.请注意波形编辑按钮栏中的按钮。当其被按下时,我们所选择的波形区域,均是以网格为基本单位的。当其弹起时,我们所选择的波形区域,可以不拘于网格的限制,如下图所示。15.此例中,波形文件中的默认网格精度是10ns,我们可以在菜单栏中的Edit中选择GridSize,在弹出的如下图所示的窗口中,我们可以设置“Timeperiod”的值,以改变波形文件中的网格精度值,比如我们把它设置为20ns,然后点击“OK”。16.我们用鼠标按下左侧波形编辑按钮栏中的按钮,然后在波形窗口中单击鼠标左键,我们会发现窗口中显示的波形会放大,如果我们点击的鼠标右键,窗口中显示的波形会缩小。在菜单栏中选择View-FitinWindow可以把波形全部以最佳效果显示在窗口中。17.下表是波形编辑工具栏中各按钮的功能简介。在这里我们就不逐个演示了。表1波形编辑工具栏各按钮功能说明图标功能图标功能选择拾取按钮文本按钮波形编辑按钮缩放按钮全屏显示按钮查找按钮替换按钮设定选中波形为未初始化设定选中波形为未知电平设定选中波形为低电平设定选中波形为高电平设定选中波形为高阻状态设定选中波形为弱未知态设定选中波形为弱低电平设定选中波形为弱高电平设定选中波形为无关状态电平取反按钮设定选中波形为计数脉冲时钟设置按钮设定选中波形为任意指定值设定选中波形为随机值设定波形对齐网格按钮设定波形排序按钮18.为了显示的方便,我们选中SW总线信号,右击选择Properties,在弹出的对话框中,把Radix项设为Binary,然后点击确定按钮。LED信号也同样处理。19.为了遍历所有的数字输入情况,我们在SW上选择中时间0~80ns时间段,然后点击波形编辑工具栏中的按钮,在弹出的窗口中,我们做如下设置,然后点击确定。20.在菜单栏中选择File-Save,或者在工具栏中点击按钮,在弹出的对话框中,我们选择默认的与工程同名的文件名保存。21.我们在工具栏中点击按钮或是在菜单栏中选择Processing-StartSimulation。如果您是按照本教程一步步走下来的,您的QuartusII会在此时提示仿真失败,请不要着急。我们点击“确定”按钮,并在QuartusII的消息栏中,找到错误信息,这些错误信息会以红色字体显示,如下图所示。22.上图的错误信息,提示我们QuartusII无法进行时序仿真,原因在于布线的延迟信息丢失。于是我们便知道,时序分析在工作前,必须先得到各个逻辑门的延迟信息。在QuartusII里面,这些信息是经过Filter(Place&Route)环节得到的。那么接下来,我们有两种途径来使QuartusII完成Place&Route。一是对工程执行全编译,一是仅执行Place&Route环节。我们不妨仅执行Place&Route,因为这样比较节省时间,况且我们还没有进行引脚锁定呢,全编译就留在以后做吧。23.我们在task栏中,找到“Filter(Place&Route)”字体,如下图所示。注意到“Analysis&Synthesis”前面绿色的钩了吗。对,你很聪明,打钩代表这一步已经执行过了。那么有时候,在某些项的前面会出现一个黄色的问号,这个标识提示我们工程的某些地方被改动过了,这些改动会影响此环节的结果,如果我们要得到最新的结果,必须重新执行它。好了,我在这里就不再做多的介绍了。我们在“Filter(Place&Route)”字体上单击,让QuartusII开始布线吧。24.QuartusII完成Filter(Place&Route)后,会弹出对话框以作提示,我们点击“确定”按钮。25.好的,接下来我们再次点击工具栏中的按钮,使QuartusII进行仿真,完成仿真后,QuartusII会提示“Simulatorwassuccessful”,我们点击确定按钮,并观察仿真的结果,如下图所示。26.我们将仿真后的波形放大,如下图所示。从图中,我们可以看到两种现象。首先,当输入变化时,输出不是立马随之变化,他们直接是存在一定的时延的。另外,当用于激励的输入信号改变时,连个输出信号改变的时间也不一样,他们之间也存在一定的时延。为什么仿真的结果跟理想情况不是一样的呢?难道是我们设计存在错误码?27.其实,这是一种正常的情况。因为输入信号经过我们布线所产生的电路,是必定存在时延的。不同的输出信号,所经过的路径也是不一样的,不同的路径所引起的时延也是不一致的。QuartusII的时序仿真工具将这些时延信息添加到了仿真结果里面。那么,我们能否将这些时延信息去掉呢,也就是我们只想从功能验证我们的设计是否正确。答案当然是可以的。28.我们在菜单栏中选择assignment-settings,如图所示。我们在Simulationmode一栏中,选择Functional,然后点击下面的“OK”按钮。29.接下来我们再次点击工具栏中的按钮,仿真工具在运行时,会提示错误,如下图所示。我们首先点击确定,然后在信息栏里面,查找错误的原因。这些信息,提示我们需要先“GenerateFunctionalSimulationNetlist”。30.我们按照提示,在菜单栏中选择processing-GenerateFunctionalSimulationNetlist,成功后点击“确定”。然后,我们再次点击工具栏中的按钮,进行功能仿真。31.功能仿真结束之后,我们点击确定。查看仿真的结果,我们发现,跟以前不同的是,时延信息已经没有了。32.本教程中,我们设置的激励是非常简单的。对于较大的设计,我们需要通过编写测试激励源文件,使用专门仿真工具(如modelsim)来完成仿真。33.通过仿真,我们从功能上验证了电路的正确性,接下来,我们需要进行引脚锁定了。在菜单栏中选择“Assignment”-“Pins”或者“Processing”-“PinPlanner”,或者找到工具栏中的快捷键按钮并单击,会弹出如下窗口,设置引脚的位置。引脚锁定的信息如下图所示。34.我们将PinPlanner的窗口关掉。回到QuartusII的界面,我们发现task栏中的Filter(Place&Route)一项前面出现了一个蓝色的问号(还记得前面我们提到的这个问号的含义吗?)这一点,说明,改变引脚的约束信息,会导致Filter(Place&Route)结果的改变。35.我们在工具栏中,选择“Processing”-“StartCompilation”,或是在工具栏中找到快捷键并单击。QuartusII便开始了对整个工程的全编译。如下图所示。36.如果您是按照本教程中图片上显示的引脚位置来约束引脚的,Quartus会在Filter(Place&Route)这一环节出错。并在信息栏中显示如下信息。37.上图的信息提示我们,不能把电路中的多个PIN指派到PIN_108上。原来,EP2C8Q208的PIN_108一个多功能引脚,默认情况下,它是作为program功能的PIN使用的,而在此工程里,我们又把它作为I/O使用了。这样矛盾就产生了。下面,我们将解决此矛盾。38.在菜单栏中,我们选择Assignment-Settings,如图所示。我们在左侧选中“device”,然后点击右侧的“DeviceandPinOptions”按钮。39.在弹出的如下图所示的对话框中,我们选中上方的“Dual-PurposePins”,然后将下方的“nCEO”后面的value设置为“USEasregularI/O”,然后点击确定,最后在settings窗口中点击“OK”。40.接下来,我们再次在工具栏中,选择“Processing”-“StartCompilation”,或是在工具栏中找到快捷键并单击。这一次,QuartusII会成功的完成全编译。41.最后一步,是将我们生成的电路文件(*.sof或是*.pof),烧写至FPGA或是EPCS4中,这一步骤我们在本节中不做详细介绍。

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功