薛宏熙《数字逻辑设计》附录a_第1页
薛宏熙《数字逻辑设计》附录a_第2页
薛宏熙《数字逻辑设计》附录a_第3页
薛宏熙《数字逻辑设计》附录a_第4页
薛宏熙《数字逻辑设计》附录a_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,附录AEDA工具QuartusII简介,A.1Quartus的安装与运行A.2设计流程A.3项目的建立与版本管理A.4设计的原理图描述A.5设计的VHDL描述A.6综合和编译A.7模拟验证A.8层次化设计实例A.9时序分析器A.10调用带参数的库元件A.11可编程器件的物理实现A.12用SignalTap实时测试FPGA中的信号波形,2,设计方法的选择,3,使用EDA工具设计集成电路,设计者的注意力集中于设计描述,细节交给EDA工具,4,QuartusII设计流程,5,A.1QuartusII的下载与安装,6,从Altera网站下载安装程序,访问请务必记住你的用户名(UserName)和口令(Password)。点击SubmitRequest(递交申请)将得到Quartus网络版,7,申请授权许可证(license),在DOS命令提示符下键入命令:ipconfig/all在屏幕显示的结果中,在physicaladdress后面有一串12位的16进制数,这就是本计算机的NIC(每2个数字之间有连字符隔开)。例如:00-0F-7D-86-3E-25。,-准备工作:查找当前计算机的NIC-(NetworkInterfaceCard),8,申请授权许可证(license),访问ALTERA网站,申请licience。,9,QuartusII的安装,安放授权许可证(license),运行QuartusII安装软件。将收到的文件license.dat放到合适的目录下。例如:c:Quartus2licienselicense.dat启动QuartusII选择命令Tools|licenseSetup,出现对话框在对话框中指明license文件的名称(含路径)。从AvailableFeatures中可以看到被允许使用的功能QuartusII网络版可以正常工作。,10,A.2启动QuartusII,双击QuartusII图标,11,QuartusII主界面,12,File菜单的一个实例,13,QuartusII主界面的一个实例,14,用户定制主界面,选择命令ToolsCustomize在对话框中操作:,15,A.3开始一个新项目,Project:项目,工程,设计Quartus2只对项目进行编译,模拟,编程.而不对单独的文件,除非把该文件设置为项目,16,指定新项目的工作目录及名称,选择命令File|NewProjectWizard在对话框中操作:,17,将本项目所需文件包含进来的窗口,18,为本项目指定目标器件,19,指定所需的第三方EDA工具,20,项目的版本管理,一个项目可以有多个设置(例如选择不同的器件,不同的约束条件)。每一个设置文件对应于该项目的一个版本。如果不使用版本管理,则只有一个(默认的)版本。,21,和项目版本管理有关的文件,22,版本管理:创建新版本或选择旧版本,使用命令Project|Revisions:,23,如果选择了创建新版本,24,A.4设计的原理图描述,25,进入原理图编辑器,26,原理图编辑器窗口,27,从库中调入元件及引脚符号,在原理图编辑器的空白处选择一个适当位置双击鼠标左键选择库名选择库元件名调入该元件符号,28,从库中调入元件及引脚符号(续),选择引脚符号名调入该引脚符号,29,绘制原理图(本例为半加器),连线;给引脚命名;,30,绘制原理图中的其他操作,删除符号或连线;复制元件符号;橡皮筋功能:打开橡皮筋功能时,拖动元件符号或连线时,原理图拓扑关系保持不变。,31,A.5设计的VHDL描述,32,进入文本编辑器,33,文本编辑器窗口,文件名后缀:VHDL:.vhd;Verilog:.v;AHDL:.tdf。,34,在文本编辑器中利用VHDL模板,选择Edit|InsertTemplate|VHDL(或点击鼠标右键),35,插入Entity模板后的文本编辑器窗口,将带双下划线的虚拟标识符替换为用户自己的标识符,36,4位加法器的VHDL代码,37,4位加法器的VHDL代码(续),38,发现并纠正VHDL代码中的错误,故意制造一个错误:例如将第20行末尾处的分号删除,重新编译编译器将产生出错报告;点击确定。,点击确定,39,发现并纠正VHDL代码中的错误(续),在消息窗口中找到第1条出错信息:它告诉我们与第21行的文字“end”相邻的地方缺少1个分号。鼠标双击该消息,文本编辑器中出错位置被高亮度显示;纠正该错误重新编译通过;本例说明出错消息的不准确性,应首先纠正第1个错误。,40,A.6综合和编译,41,编译前的准备工作,QuartusII只对项目进行编译方法1:先借助于NewProjectWizard创建一个新项目,再创建设计输入文件(已介绍)。方法2:先建立设计输入文件,使用命令Save|As,后续步骤同前,42,进入编译器,选择命令ProcessingCompilerTool,打开编译器窗口:编译器包含4个主模块,可以连续运行4个模块,也可以单独运行某模块。,43,编译器的4个主模块,分析和综合(Analysis,44,编译结果的报告,本例为半加器的编译结果:,45,发现并纠正原理图中的错误,故意制造1个错误(断开1条连线)编译出错报告鼠标双击第一个出错信息出错位置加亮显示纠错,46,A.7模拟验证,47,模拟前的准备工作,准备好网表(netlist)文件:如果准备进行功能模拟,在Analysis对该项目进行编译和模拟,验证其正确性功能模拟结果,69,4位加法器的时序模拟结果,时序模拟结果,70,数组信号的波形编辑,71,为4位加法器创建一个符号,72,在图形编辑器中建立8位加法器原理图,73,在图形编辑器中怎样分拆数组信号,举例:将a7.0分拆为a7.4和a3.0分别连接到不同元件:用粗实线连接到实例元件inst的对应端口awidth1.0;用鼠标左键选中该连线;使用命令EditProperties,出现对话框在对话框中操作:,74,8位加法器功能模拟结果,75,A.9时序分析器,76,打开时序分析器窗口,使用命令ProcessingClassicTimingAnalyzerTool打开时序分析器窗口在窗口中操作,77,时序分析结果实例,全加器full_adder.bdf的分析结果之一:,78,时序分析结果实例(续),全加器full_adder.bdf的分析结果之二:,79,设计优化,综合工具优化时,按照哪个方向去优化?需要设计者在编译之前发出指示,称为约束条件。面积优先;速度优先;兼顾(默认的选择);实例:VHDL描述的32位加法器。EDA工具为Quartus。,80,综合前设置约束条件,使用命令:Assignments|Settings,81,选择速度优先,82,速度优先的编译结果,资源占用:关键路径上的延迟时间:,83,选择面积优先,84,面积优先的编译结果,资源占用:关键路径上的延迟时间:,85,A.10调用带参数的库元件,实例:在原理图编辑器中调用库元件lpm_ram_d,它是一个带参数的存储器元件,本例字长8位,地址码长度5位(存储容量32字)。,86,调用库元件lpm_ram_d,使用命令FileNewProjectWizard出现对话框在该对话框中创建新项目:,87,调用库元件lpm_ram_d(续),在出现的对话框中指定器件:,88,调用库元件lpm_ram_d(续),使用命令:FileNew|BlockDiagram/SchematicFile出现原理图编辑器窗口:,89,调用库元件lpm_ram_d(续),双击鼠标左键(或使用命令EditInsertSymbol)在出现的对话框中选择库元件,90,调用库元件lpm_ram_d(续),指定输出文件类型和名称,91,调用库元件lpm_ram_d(续),指定元件lpm_ram_dq0的参数:,92,调用库元件lpm_ram_d(续),在出现的对话框中点击Next:,93,调用库元件lpm_ram_d(续),决定是否为存储器元件赋初值(否则,默认值为全0)本例赋初值文件名ram_5.mif,(memoryinitializationfile,mif)稍后需要编辑文件ram_5.mif,以确定存储器初值。,94,调用库元件lpm_ram_d(续),在出现的对话框中点击Finish,95,调用库元件lpm_ram_d(续),自动返回到原理图编辑器原理图编辑器中出现被调用的元件lpm_ram_dq0将此图形文件以文件名ram_5.bdf保存起来,96,调用库元件lpm_ram_d(续),添加输入/输出引脚将此图形文件以文件名ram_5.bdf保存起来,97,初始化存储器的内容,使用命令FileNew,98,初始化存储器的内容(续),在出现的对话框中指定存储器的参数,99,初始化存储器的内容(续),在出现的对话框中为每一个存储单元指定初始值指定完毕后,以文件名ram_5.mif将其保存。,100,存储器的模拟实例,存储器的某些单元已经指定了初始值。如果没有对其作写入操作,读出的将是初始值;如果对其写入新内容,则此后读出的将是被写入的新值。,101,A.11可编程器件的物理实现,(1)确定电路的输入/输出端口和引脚的对应关系;(2)将设计结果下载到可编程器件中,使之变成所希望的集成电路,这个过程称为编程(Programming)。,102,引脚分配,如果设计者未明确地指定端口和引脚的对应关系,则是把引脚分配的权力交给了编译器;如果设计者部分地指定了引脚分配关系,则未指定的引脚分配由编译器自动处理;如果设计者完全规定了引脚的分配关系,则编译器将严格遵照设计者的指定形成编程文件。,103,引脚分配实例,实例为前面介绍过的半加器,并且编译之前指定目标器件为EP2C35F672C6;编译之前未指定引脚分配;编译时由编译器自动指定引脚分配,其结果记录在文件half_adder.qsf中;为了观察编译器自动指定引脚分配情况:使用命令AssignmentsPinPlanner打开引脚规划器(PinPlanner),104,引脚分配实例(引脚规划器示例),105,引脚分配实例(观察引脚分配结果),观察引脚分配结果的方法:鼠标移至已被分配的引脚(涂有深色)将显示对应端口名称。观察结果:输入端口X被分配到引脚PIN_C13;输入端口Y被分配到引脚PIN_D13;输出端口Half_Sum被分配到引脚PIN_B12;输出端口Half_Cout被分配到引脚PIN_B11。,106,手工指定引脚分配实例,在PinPlanner的引脚列表中操作:,107,原理图中可显示引脚分配,如果没有出现引脚标注,可在原理图编辑器中使用命令View|ShowLocationAssignments。,108,使手工指定引脚分配有效,重新编译生成新的编程文件(.pof/.sof),才能按照指定的引脚分配对器件编程。使用命令:AssignmentsPinPlanner打开引脚规划器(PinPlanner)可观察到重新编译后的引脚分配,109,取消此前对引脚的指定,使用命令Assignments|RemoveAssignments在弹出的窗口中操作:,110,指定引脚分配的另一个方法,用普通的文本编辑器(例如记事本)创建一个以逗号相隔的文本文件,例如将文件以Half_Adder.csv名字保存。使用命令Assignments|ImportAssignments,在弹出窗口中操作:,111,对目标器件编程,仍然沿用前文所用半加器的例子;实际上,编译完成之后就已经产生了编程文件(后缀为.pof/.sof);编程之前再检查一遍,确保:已经选定了合适的目标器件;经过模拟验证,电路的功能和时序关系和预期相符;输入/输出端口的引脚分配符合要求。执行了全程编译。,112,实验板DE2,113,编程之前的准备工作,用USB-Blaster将实验板DE2和计算机相连。用专用的电源装置向实验板DE2提供直流电源(9V)。下载模式选择开关置于ON,以JATG方式将计算机中Half_Adder.sof文件下载至FPGA芯片。JTAG方式是IEEE的一个标准(IEEE1149.1-1990),该标准最初由联合测试行动小组(JointTestActionGroup,JTAG)提出,从而得名。如果此前没有安装USB-Blaster的驱动程序,现在要执行相应的安装操作。,114,安装USB-Blaster的驱动程序,Step1计算机需要事前安装Quartus,USB-Blaster的驱动程序的存放目录为:.Quartusdriversusb-blasterStep2按动电源开关,给实验板DE2加电:,计算机发现新硬件,115,安装USB-Blaster的驱动程序(续),116,安装USB-Blaster的驱动程序(续),117,安装USB-Blaster的驱动程序(续),此软件不需要通过Windows的测试:,118,安装USB-Blaster的驱动程序(续),安装工作完成:,119,对目标器件编程的步骤,使用命令ToolsProgrammer打开编程模块窗口,目标器件名和编程文件名必须正确地显示在该窗口中点击HardwareSetup按钮,120,对目标器件编程的步骤(续),在出现的硬件设置对话框中操作:,121,对目标器件编程的步骤(续),回到编程器窗口,在该窗口中操作,启动编程,122,编程完毕,开始硬件实验,拨动开关SW0和SW1为半加器提供输入数据;观察指示灯LEDG0和LEDG1的状态,看是否和预期相符。,123,SignalTap,-用SignalTap实时测试FPGA中的信号波形-Quarts6.0新增功能-,124,SignalTap与Simulator的比较,Simulator:显示的波形(包括延时)是计算所得,与实际波形难免有差异。SignalTap:显示的波形(包括延时)是实际波形。利用FPGA中富裕的资源形成嵌入式逻辑分析仪(EmbeddedLogicAnalyzer,ELA),用以捕捉目标芯片内部信号节点的信息,而不影响原硬件系统的正常工作。ELA把采集的数据从JTAG口经USB-Blaster送往主机,显示有关信号的实测波形。,125,SignalTap流程图,126,实例8421码十进制计数器CNT10,clk用作采样信号,采样信号的频率必须大于目标电路中信号变化的速度,才能够精确采样。,127,实例CNT10代码,128,实例CNT10代码(续),129,实例CNT10代码(续),130,进入SignalTap流程的前提,项目CNT10已完成了引脚“绑定”、编译和模拟;目标芯片已经安装在实验板DE2上;芯片上有富裕的逻辑单元和存储单元;实验板和主机通过USB-Blaster相连;,131,Step1:打开SignalTapII编辑窗口,File|New|Verification/DebuggingFiles|SignalTapIILogicAnalyzerFile,132,Step2:设置SignalTapII参数,133,设置SignalTap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论