EDA实验报告题目:实验一应用QuartusΙΙ完成LED的驱动姓名班级学号成员1:朱梦电科14051402140528成员2:李嘉欣电科14051402140522成员3:樊志立电科14051402140521联系电话15273159031物理与电子学院2017年4月2实验平台说明特征说明计算机配置(机器型号,主板型号可选)处理器,内存,硬盘,显卡,显示器操作系统Windows764bitenterpriseeditionEDA软件QuartusII9.164bit开发板编号盒子编号验证图清单特征图编号RTL图图5,图10,图12仿真图硬件运行图在线调试图状态机图3实验一应用QuartusΙΙ完成LED的驱动一、实验目的通过实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusΙΙ的使用方法及VHDL的编程方法。本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用而快速入门,并激起读者对EDA技术的兴趣。二、实验内容SmartSOPC实验箱上有8个发光二极管LED1~LED8,在QuikSOPC核心板上LED1~LED8分别于FPGA芯片的第50、53~55、176和第47~49引脚相连(SmartSOPC实验箱的LED1~LED8通过跳线JP6的LED0~LED7分别与FPGA的第50、53~55、176和第47~49引脚相连)。本实验的内容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC试验箱上的4个发光二极管(LED1、LED3、LED5、LED7)。具体包括:①使用QuartusΙΙ建立工程;②QuartusΙΙ工程设计;③设置编译选项并编译硬件系统;④下载硬件设计到目标FPGA;⑤观察LED的状态。三、实验原理FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。做为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可实现点亮该发光二极管的功能。四、实验步骤使用QuartusΙΙ建立工程4打开QuartusII软件并建立工程①在Windows桌面上选择“开始”→“程序”→“Altera”→QuartusΙΙ64-Bit,打开QuartusΙΙ64-Bit软件,软件界面如图1所示。图1QuartusΙΙ软件界面②在图1中选择File→NewProjectWizard来新建一项工程。注意不要把New误以为NewProjectWizard。新建工程向导说明如对话框图2所示。5图2新建工程向导说明对话框在图2中可以了解在新建工程的过程中要完成哪些工作,这些工作包括:指定项目目录、名称和顶层实体;指定项目设计文件;指定该设计的Altera器件系列;指定用于该项目的其他EDA工具;项目信息报告。③在图2中单击Next进入如图3所示对话框。任何一项设计都是一项工程Project,必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被QuartusΙΙ默认为工作库(WorkLibrary)。一般来说不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。图3中的第一栏用于指定工程所在的工作库文件夹;第二栏用于指定工程名,工程名可以去任何名字,也可以直接用顶层文件的实体名作为工程名(建议使用);第三栏用于指定顶层文件的实体名。本例工程的路径为E:\EDA\Example\led_test,工程名与顶层文件的实体名同为led_test。图3新建工程路径、名称、顶层实体指定对话框④单击Next进如图4所示对话框。由于是新建工程,暂无输入文件。6图4新建工程添加文件对话框⑤单击Next,进入图5所示对话框。在该对话框中指定目标器件,这里我们选择的是QuikSOPC核心板上用的Cyclone系列的EP3C5E144C8。图5新建工程器件选择对话框7⑥在图5右边的Filter(过滤器)选项中,可以通过指定封装、引脚数以及期件速度等级来加速器件查找的速度。指定完器件后,单击Next进入图6所示对话框。本实验利用QuartusΙΙ的集成开发环境开发,不使用任何EDA工具,因此这里不作任何改动。图6新建工程EDA工具设置对话框⑦单击图6中的Next进入图7所示对话框。从该对话框中,可以看到工程文件配置信息报告。单击Finish,完成新建工程的建立。8图7新建工程配置信息报告对话框需要注意的是,建立工程后,还可以根据设计中的实际情况对工程进行重新设置,可选择Assignment→Settings(或工具栏上的按钮)进行设置。建立图形设计文件QuartusΙΙ图形编辑器也成为块编辑器(BlockEditor),用于以原理图(Schematics)和结构图(BlockDiagrams)的形式输入和编辑图形设计信息。QuartusΙΙ的块编辑器可以读取并编辑结构图设计文件(BlockDesignFiles)和MAX+PlusΙΙ图形设计文件(GraphicDesignFiles)。可以在QuartusΙΙ软件中打开图形设计文件并将其另存为结构图设计文件。①在QuartusΙΙ主界面中,选择File→New打开如图8所示对话框。②在图8所示对话框中选择BlockDiagram/SchematicFiles,单击OK建立一个空的图形设计文件,默认名为Block1.bdf。9图8新建文件对话框③在QuartusΙΙ主界面中,选择File→SaveAs打开将bdf文件存盘的对话框,如图9所示。在该对话框中接受默认的文件名,并选中AddFiletocurrentproject选项,以使该文件添加到工程中。图9BDF文件存盘对话框至此,便完成了顶层模块的建立。接下来应该将VHDL语言生成的模块加10入到顶层模块中。建立文本编辑文件QuartusΙΙ的文本编辑器是个非常灵活的编辑工具,用以AHDL、VHDL、和VerilogHDL语言形式以及Tcl脚本语言输入文本型设计,还可以再该文本编辑器下输入、编辑和查看其它ASCII文本文件。在这里要建立的是VHDL文件,建立的流程与建立图形设计文件一样。在创建好一个设计工程文件以后,在QuartusΙΙ主界面中选择File→New打开新建文件对话框,如图8所示,在该对话框中选择VHDLFile,单击OK建立一个空的VHDL文件,默认名为Vhd1.vhd。在QuartusΙΙ主界面中选择File→SaveAs改名为led.vhd并保存。QuartusΙΙ工程设计在第1步中已经建立好了QuartusΙΙ工程文件,现在要对QuartusΙΙ工程进行编程设计。(1)在VHDL文件中编写源程序在新建VHDL源程序文件中输入程序代码并保存。完整的程序代码参考程序清单1(注意,程序的模块名应与文件名一致。)对该VHDL文件进行编译处理,具体操作如下:①在QuartusΙΙ主界面的ProjectNavigator窗口中选择Files选项卡,右击led.vhd文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将led.vhd设置为顶层实体;②在QuartusΙΙ主界面中选择Processing→Start→StartAnalysis&Synthesis进行综合编译,也可以选择工具栏上的按钮启动编译。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(2)从设计文件创建模块在层次化工程设计中,经常需要将已经设计好的文件生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块符号在顶层调用,该符号可以向图形设计文件中的任何其它宏功能一样被高层设计重复调用。在ProjectNavigator窗口中Files选项卡中的led.vhd文件,在弹出的快捷菜单中单击CreateSymbolFilesforCurrentFile选项,会弹出一个对话框提示原理图文件创建成功,单击“确定”按钮,即可创建一个代表现行文件功能的符号11(led.bsf)。设计好的图形文件(BlockSymbolFiles.bdf)也可应生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块富豪在顶层调用。操作如下:①在QuartusΙΙ主界面的ProjectNavigator窗口中右击Files选项卡中的.bdf文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将.bdf设置为顶层实体;②在QuartusΙΙ主界面中选择File→Create/Updata→CreateSymbolFilesforCurrentfile,然后在出现的对话框中单击“确定”按钮,即可创建一个代表现行文件功能的符号问件(.bsf)。(3)将led.bsf模块添加到QuartusΙΙ顶层模块执行下列步骤可将led符号(led.bsf)加入到BDF文件中(在第1步中已将建立好的led_test.bdf):①在QuartusΙΙ主界面下led_test.bdf窗口中的任意处双击,弹出添加符号(Symbol)对话框,如图10所示;图10添加Symbol对话框12②在Project下选择led,在右边的窗口中出现一个很大的符号,这就是led.vhd源文件生成模块符号;③单击OK,关闭Symbol对话框,led符号被附在鼠标的指针上,用户可以在led_test.bdf窗口中适当位置上放置该符号;④在QuartusΙΙ主界面中选择File→SaveAs来保存QuartusΙΙ顶层文件led_test.bdf。(4)添加引脚和其它基本单元引脚包括输入(input)、输出(output)和双向(bidir)三种类型。在添加引脚和其它基本单元时,将使用到模块编辑工具栏中的各种工具,图11显示了工具栏中个工具的功能。图11模块编辑工具栏执行下面步骤为顶层模块添加输出引脚:①在模块编辑工具栏中单击按钮,插入如图12所示符号对话框。恶意看出,这个对话框就是图11所示对话框,其不同之处在于,适用按钮时,默认重复插入模式(RepeatInsertMode)选中,这样既可以重复的插入符号,当然,前面插入led符号也也可以适用按钮。13图12添加输入引脚对话框②在图12中单击C:/altera/quartus50/libraries文件夹前的“+”将其展开,再分别单击展开primitives和pin文件夹。③在pin文件夹下选择output组件(也可以在Name文本框下直接输入名称)。④单击OK按钮关闭Symbol对话框。⑤在led符号左侧的空白粗单击,插入一个output引脚符号。⑥拖动引脚符号连接到led符号的输出口。⑦双击各引脚符号,进行引脚命名。将与led符号了的led[7..0]连接的引脚命名为led[7..0],完整的顶层模块图,如图13所示。⑧在QuartusΙΙ主界面中选择File→Save保存BDF文件。图13完整的顶层模块图(5)选择器件型号14每种型号的FPGA芯片的引脚可能都不相同,在QuartusΙΙ工程创建好后仍然可以选择并修改器件型号。在QuartusΙΙ主界面中选择Assignments→Device打开如图14所示对话框。在该对话框中指定所需的目标器件型号,本实验为EP3C5E144C8。图14器件选择对话框(6)分配FPGA引脚本实验中各引脚以及与目标FPGA器件引脚的关系如表1所示,用户可以根据自己的核心板选择相应的引脚进行分配(这里以1C6、1C12和EDA分别代表QuickSOPC-1C6、QuickSOPC-1C12和QuickEDA核心板的引脚分配)。信号引脚信号引脚15表1引脚锁定方法要执行FPGA引脚的分配,可按下面步骤进行:①在QuartusΙΙ主界面中选择Assignments→Pins打开如图15所示对话框;图15分配引脚对话框②按照表1在To栏中输