下载

3下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 实验一、正弦信号发生器_9.0_DE2_70

实验一、正弦信号发生器_9.0_DE2_70.doc

实验一、正弦信号发生器_9.0_DE2_70

硫化Ag
2018-09-08 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《实验一、正弦信号发生器_9.0_DE2_70doc》,可适用于游戏领域

《硬件综合实践(A)》实验指导书原《基于FPGA的嵌入式系统设计与实践》《EmbeddedSystemDesignandPracticeBasedonFPGA》实验一、正弦信号发生器DE平台本实验指导书阐述了一个简单的正弦信号发生器在QUARTUSⅡ上的实现。通过这个文档旨在演示利用QUARTUSⅡ开发数字电路的基本流程和QUARTUSⅡ软件的相关操作并借此介绍QUARUTSⅡ的软件界面。我们还针对NIOSⅡ的实验板实现了本文档所示硬件模块的相关配置工作以及下载和实现。实验条件:目录一、设计原理:二、实验步骤:、工程创建、sin信号发生器顶层模块的设计、定制ROM存储sin波形数据建立mif文件ROM数据的生成定制ROM元件调用MegaWizardPlugInManager设置LPMROM模块添加文件到工程、编译、综合等、仿真编辑波形文件配置仿真参数进行仿真、内部电路观察、生成symbol、管脚分配、下载、Signaltap配置:、利用外设DAC观察输出波形、作业一、设计原理:下图所示为正弦信号发生器的结构共有个部分组成:顶层文件singtvhd在FPGA中实现两个部分:、位计数器产生地址信号、存储正弦信号(bits地址线bits数据线)的ROM由LPMROM模块实现LPMROM模块底层由FPGA的EAB、ESB或MK来实现。地址发生器的时钟频率CLK假设为f这里我们设定的地址发生器为bit则周期为=所以一个正弦周期内可以采样个点DAC后的输出频率f为:我们可以如下生成sin数据以用于查找表双、单极性Sin(x)数据波形可如下:x=round((sin(linspace(,*pi,)))*)所要得到的单极性信号波形。二、实验步骤:、工程创建进入QUARTUSⅡ开发软件选择“File”点击“NewProjectWizard”。弹出工程向导对话框选择“Next”输入存放工程及其相关设计文件的文件夹指定“工程名”和工程对应的“顶层设计实体名”。这里我们将工程名和顶层设计实体名都取作“singt”再点击Next。接下来点击“Add”将先期已经输入的设计文件(*bdf*vhd*v等)添加到工程中这里我们没有事先输入好的文件因此不用添加即使点击AddAll也没有文件可以加入。接着点击“UserLiberaryPathname”指定用户自定义元件库的路径这里我们没有要用的用户自定义元件库也忽略跳过直接进入下一步。指定目标器件:由于本实验所用的Altera套件是用“CycloneII”系列的“EPCFC”。在实际实验中可以通过查看开发板参考手册或者直接观察开发板来获得所使用的器件具体型号。接下来指定“设计输入综合仿真时序分析……”用到的工具QUARTUSⅡ对第三方工具的支持比较完善这里我们不选择直接点击“Next”QUARTUSⅡ将使用默认的“设计输入综合仿真时序分析……”工具。上图给出了所创建工程的主要的信息。点击“Finish”工程新建完成工程相关的基本配置工作也完成这些已经配置的参数在开发工作进行的过程中仍然可以通过菜单“Assignments”->“Settings”来修改。、sin信号发生器顶层模块的设计如有已经输入完毕的设计文件可以参照下述方式添加顶层文件:打开此文件正弦信号发生器的VHDL格式的设计文件已在文件框中如没有输入完毕的设计文件可以参照下述方式添加顶层文件:新工程设计文件输入(建立顶层设计文件)模式:新建文件打开File菜单点击New命令选择“DeviceDesignFiles”子类中的“VHDLFile”点击“OK”创建一个vhdl文件作为顶层设计文件顶层设计利用VHDL语言方式输入。我们刚才已经用拷贝文件方式新建了顶层设计文件保存这是工程新建的第一个文件系统会默认保存为顶层设计实体的名字在本实例中也就是“singt”点击“保存”这样就新建好了顶层设计实体的输入文件。下面我们介绍的是如何输入VHDL格式来建立我们所需模块的实现代码没有兴趣的同学可以跳过此节。注意:Quartus给我们提供了很多的帮助比如对VHDL不熟悉或某些语法生疏的情况下该软件提供了如下图的模板生成代码:(模块的设计及其输入)在singtvhd文件中我们可以输入模块对应的实现代码如下:在该文件中我们完成了位计数器的设计工作调用了sin波形数据存储文件dataromvhd并加以了优化。下面我们具体的给出该文件的编写方式!、定制ROM存储sin波形数据构成ROM中初始化数据文件的方式有两种:MemoryInitializationFile(mif)格式和Hexadecimal(IntelFormat)File(hex)格式。下面我们仅仅以mif格式的文件为例来讲解ROM初始化数据文件的生成!建立mif文件点击QuartusII的File->New>OtherFiles项选择MemoryInitializationFile点击OK出现一个参数设置框!这里Numberofwords对应查找表中查找项的个数为Wordsize对应sin输出波形的数据宽度为。点击OK出现如下表格:ROM数据的生成表格中的数据即为sin输出点所对应的bits的幅度我们可以在Matlab下生成这些数据:x=round((sin(linspace(,*pi,)))*)reshape(x,,)'ans=复制这些数据可以很容易的在mif表格中进行粘贴如图。当然我们可以手工输入这些数据也可以通过excel得到这些数据也可以编程得到这些数据。最方便的方式则是在MatlabSimulink的DSPBuilder下完成ROM波形数据文件的编写。我们将文件保存为singtmif。定制ROM元件下面我们对初始化数据文件加载到一定的硬件模块中本例中我们将之加载于LPMROM模块步骤如下。调用MegaWizardPlugInManager设置LPMROM模块选择Createanewcustommegafunctionvariation点击Next。这里我们设置器件为CycloneII输出文件的格式为vhdl输出文件名为dataromvhd选择MemoryComplier中的ROM:PORT。点击Next。在Pageof我们进一步设置ROM:PORT的相关参数如下图:其中器件为上一页面所选的CycloneIIrom输出的总线宽度为bits该查找表共有格查找项RAMblock的类型由quartus进行自动的选择(如ACEXK为EABAPEXK为ESBCyclone为MK)选择DaulClock方式inclock为地址锁存控制信号。点击Next!取消掉‘q’outputport选项点击next!内存初始化的数据文件指定为我们刚才创建的singtmif选择AllInSystemMemoryContentEditorto…表示允许QuartusII将能通过JTAg口对下载于FPGA中的此ROM进行在系统的测试和读写这种读写不影响FPGA中系统的工作。点击next!点击Finish出现如下确认框选择Yes将IP生成的文件加入到工程中:添加文件到工程我们必须将刚才生成的所有文件添加到工程中。选择Quartus的Files选项右键点击AddRemoveFilesinProject。点击右图的AddAll>OK打开dataromvhd修改绝对路径为相对路径!“singtmif”(“singtmif”、编译、综合等QuartusII编译器由一系列处理模块组成如设计工程的查错、逻辑的综合、结构的综合、输出结果的编辑配置、时序分析等。在编译前我们可以设置一些参数使得编译器采取一些特别的综合和适配技术(如时序驱动技术等)也可提高工程编译的速度优化器件的资源利用率等。我们简单的点击StartCompilation进行全程编译。编译的时候QuartusII会给出编译的一些相关信息如果出错则根据这些提示进行排错直至无误。编译完成后出现如下框图。并给出编译报告如图!、仿真对工程的编译通过后必须进行功能和时序的仿真以便了解系统是否满足要求。步骤如下:编辑波形文件File>New>VerificationDebuggingFiles–VectorWaveformFile设置仿真时间:保存波形文件:导入singt工程的相关节点:出现:点击List会列出所有的输入输出管脚如图:也可在波形向量文件编辑器左侧空白处双击左键或者右键->“InsertNodeorBus”弹出“InsertNodeorBus”对话框在对话框中输入名字插入需要仿真的Node和Bus(也就是设计输入文件中的Pin或者Signal)也可直接点击“NodeFinder”让编辑器列出已知的Node和Bus。点击NodeFinder就调出对话框。选择所需的pin到观察列表如图:设置CLK的输入波形:我们可以通过左侧的放大镜进行观察。保存该文件!配置仿真参数在菜单“Assignments”->“Settings”->“Simulator”页面设置SimulationMode根据具体需要选择“Functional”或者“Timing”这里我们选择功能仿真仿真之前先点击下图所示指令生成功能仿真子表(功能仿真特有的步骤)。进行仿真点击菜单工具栏“Simulator”按钮得到仿真的结果。为便于观察DOUT的输出结果设置其数据格式:结果如下:注意:如果采用时序仿真时钟周期太小可能会造成数据输出不正确所以建议时钟周期尽量大于毛刺检测时间的十倍以上。、内部电路观察观察RTL电路:ChipEditor:、生成symbolFile>New>新建一个bdf文件命名为singtbdf:在singtbdf输入栏中双击空白处弹出symbol调用窗口如下图所示选择刚才生成的singt的symbol点击OK。用相同的方式在原理图中添加input和output管脚。输入管脚命名为clk,输出管脚命名为dout如下图所示:将此bdf文件设为顶层实体然后进行全编译:全编译:、管脚分配分析和综合之后点击菜单“Assignments”->“Pins”进入管脚分配编辑器注意:如果手边有开发板并想将设计输入到开发板上演示请具体参考手边开发板的《硬件开发配置参考手册》(名字可能有差别)或类似文档如果不需要将最后的设计生成文件烧写到开发板而只是需要尝试QUARTUS的设计流程任意选择几个管脚就可以。按如下表格进行引脚分配(大家也可以参照DEUsermanualpdf进行自定义设置):PinDE描述clkPINADMHzclockinputdoutPINWLEDGreendoutPINWLEDGreendoutPINWLEDGreendoutPINYLEDGreendoutPINYLEDGreendoutPINYLEDGreendoutPINAALEDGreendoutPINAALEDGreen最后存储这些引脚锁定的信息后必须再编译(:启动StartCompilation)一次才能将引脚锁定信息编译进编程下载文件中。此后就可以准备将生成好的SOF文件下载到实验系统的FPGA中去了。、下载点击菜单工具栏“Programmer”按钮进入下载页面下载工程生成的烧写文件到FPGA芯片首先要配置下载工具点击“HardwareSetup”进入下载工具设置页面首先点击“AddHardware”进入AddHardware对话框添加用到下载电缆根据实际情况选择“ByteBlaster”或者“UsbBlaster”(这里我们选择“UsbBlaster”)下载电缆点击“OK”回到HardwareSetup对话框然后点击Close:输入需要下载的文件(这里是singtsof)选择“ProgramConfigure”复选框点击“Start”即可完成烧写文件的下载。注意:消息框中下载结束的信息条出现:下载成功后我们可以在实验平台上看到个LED在闪亮。(也许会由于主频时钟频率过大而观察不到明显的闪烁)、Signaltap配置:选择“File”菜单点击“New”在弹出的New对话框中选择VerificationDebuggingFiles下的SignalTapIILogicAnalyzerFile如图所示:SignalTap的相关配置:在InstanceManager窗口Instance栏为实例名称右键对Instance进行Create、Delete、Rename操作此处名称我们改为“singt”。在JTAGChainConfiguration窗口点击Hardware栏的Setup…按钮弹出HardwareSetup对话框:双击“Availablehardwareitems”栏中的“USBBlaster”选项单击“Close”关闭对话框此时在“JTAGChainConfiguration”窗口的“Hardware”栏将显示“USBBlaster”字样同时Device栏将显示“:EPC(xBDD)”字样此为自动识别到的FPGA芯片。SOFManager栏点击Browse按钮在弹出的SelectProgrammingFile对话框选中singtsof文件。在singt栏分为Data和Setup窗口Data为数据显示窗口Setup为配置窗口。在Setup窗口双击空白处弹出NodeFilter对话框点击List列出列出信号列表双击dout信号此时在SelectedNodes栏列出了已选信号dout(可以根据需要任意添加希望观察的信号)点击OK关闭对话框。SignalConfiguration栏点击Clock栏后的browse按钮选择逻辑分析仪的工作时钟在弹出的NodeFilter对话框点击List列出信号列表双击clk信号此时在SelectedNodes栏列出了已选信号clk(视具体工程不同选择不同的工作频率但是该频率不能同时出现在singt栏)点击OK关闭对话框。在Setup栏的Sampledepth下拉菜单选择待测数据的抽样深度此处选择k其他设置如图所示:此时SignalTap的设置已经全部完成保存设置名字任取此处保存为stpstp如弹出确认对话框选择Yes。工具栏按钮分别表示:Run、Analysis、AutoAnalysis、StopAnalysis、ReadData。然后再进行综合编译完成以后就可以下载“sof”工程文件到FPGA芯片了点击ProgramDevice按钮进行芯片烧写。烧写完成后点击“AutoAnalysis”按钮运行逻辑分析仪。此时在芯片内部运行的信号数据已经通过JTAG链读取到计算机并在Data窗口显示。为了便于观察在dout栏点击右键在弹出的对话框中选择BusDisplayFormat栏的UnsignedLineChart选项如下图所示:、利用外设DAC观察输出波形实验内容:将正弦波信号发生器所输出的信号经外设DAC器件输出到示波器上。在前面的基础上我们在QuartusII上完成了正弦信号发生器设计包括仿真和资源利用情况了解。下面我们添加一个DA转换以便使用示波器来观察输出的波形(DA可利用系统上配置的DAC)。首先将编译、仿真和管脚分配后的工程下载到实验板中再通过外设DAC模块形成模拟环路通过示波器验证输出波形。具体实验步骤如下:添加文件到工程如下图:将添加的文件一一生成symbol文件,如下图:双击singtbdf文件,将上面生成的symbol文件添加到singtbdf文件编辑框,如下:其他个模块操作类似。将这些模块连接起来,如下图:将singtbdf文件设为顶层文件:参照“DEUserManual”配置管脚,如下图:将DE用USBBlaster连接至电脑,上电,编译整个工程,将生成的singtsof文件下载到DE中,操作如下:首先全编译:然后下载弹出如下窗口:选中文件,点击,将程序下载到DE中,用音频接口线将DE板子上的LINEOUT信号接到示波器上,就能够看到正弦信号。、作业在熟悉以上实验内容的基础上自己设计一个三角波信号发生器相关参数自己设定。交出下载工程文件并来实验室验证包括实验原理、程序设计、程序分析、仿真分析、硬件测试和详细实验步骤记录。VHDL顶层设计singtvhd位计数器(地址发生器)Sin数据存储ROM位DACPAGEunknown

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/76

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利