FPGA入门实验_第1页
FPGA入门实验_第2页
FPGA入门实验_第3页
FPGA入门实验_第4页
FPGA入门实验_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

FPGA基础实验部分,实验一基本IO实验一、实验目的(1)学习Quartus5.0的基本操作。(2)熟悉教学实验板的使用。(3)初步掌握vhdl语言的设计输入,编译,仿真和调试过程。二、实验原理利用一个常开按钮(实验板上的KEY1)作为输入(常开时输入1,闭合时输入0),经过一个反相器后输出到核心板的一个LED。KEY1常开时,LED灭,按下(闭合)实验板上的KEY1,该LED点亮。,三、实验步骤1、建立工程运行QuatrusII软件,建立工程,FileNewProjectWizad。如图下图所示。,点击NewProjectWizard后弹出指定工程名的对话框,在Diectory,Name,Top-LevelEntity中如图下图填写。,按Next按钮,直到出现选择器件的对话框(下图),按图示选择器件。然后一直按Next进行,最后按Finish按钮即建立一个空项目。,2、建立顶层图执行FileNew,弹出新建文件对话框(下图所示)。,选择“BlockDiagramSchematicFile”按OK即建立一个空的顶层图,缺省名为“Block1.bdf”,我们把它另存为(FileSaveas),接受默认的文件名,并将“Addfiletocurrentproject”选项选上,以使该文件添加到工程中去。如下图所示:,3、添加逻辑元件(Symbol)双击顶层图图纸的空白处,弹出添加元件的对话框(下图):在Libraries里寻找所需要的逻辑元件,如果知道逻辑元件的名称的话,也可以直接在Name一栏敲入名字,右边的预览图即可显示元件的外观,按OK后鼠标旁边即拖着一个元件符号,在图纸上点击左键,元件即安放在图纸上。,在图纸上分别添加非门(not)、输入(input)、输出(output)三个symbol,连线,将鼠标移到symbol连线端口的那里,按下左键拖动鼠标到另一个symbol的连线端。如下图所示:分别双击input和outputsymbol的名字“pin_name”、“pin_name1”,将它们的名字改为Key1,LED1。,4、分配管脚为芯片分配管脚可以用QuartusII软件里的“AssignmentsPins”菜单,也可以用tcl脚本文件。本文介绍用tcl的方法。在工程目录下建立一个name为Setup.tcl的file。FileNew,选择otherfiles页面(下图):有关tcl文件的更详尽内容可参考QuartusII的帮助文档。在实际项目中,该文件也可以根据具体管脚分配要求来改写。,对应于EP1C12核心板:set_global_assignment-nameRESERVE_ALL_UNUSED_PINSASINPUTTRI-STATEDset_global_assignment-nameENABLE_INIT_DONE_OUTPUTOFFset_location_assignmentPIN_2-toled1set_location_assignmentPIN_122-tokey1,保存到工程目录下,并注意在保存对话框选上“Addfiletocurrentproject”选项。然后打开Tools-TclScripts,选中刚才编辑的Script文件:Setup,并点击Run,如图所示:,5、设置根据核心板的FPGA选择芯片型号,如上图所示选择EP1C12Q240C8。点击设置对话框的“Device元件定义语句和元件例化语句在元件例化中都是必须存在的。元件定义语句相当于对一个现成的设计实体进行封装,使其只留出外面的接口界面,就像一个集成芯片只留引脚在外面一样。元件例化语句是把实体实例化,语句中的元件例化名相当于电路板上的一个插座名,例化元件名是定义好的元件名。PORTMAP是端口映射的意思,将当前实体的端口名与定义好的元件的端口名对应起来。元件例化语句中所定义的例化元件的端口名与当前实体的端口名对应的表达方式有两种:(1)名字关联方式:将例化元件的端口名与实体端口名通过关联符号“=”一一对应联系起来的方式;(2)位置关联方式:按例化元件端口的定义顺序将例化元件的对应实体的端口名一一列出的一种关联方式。,三、实验步骤及内容,1该程序分为计数器模块、译码模块、多路选择器模块和一个4-7译码模块,分别用VHDL语言描述各个模块的功能。2设计主电路模块,将VHDL语言描述的各个模块用元件例化的方式连接起来。3设计计数时钟系统时钟为50MHz,太快,使人眼无法识别数码管的变化。因此要对50MHz进行分频,还需要设计一个分频器。四、整体结构原理图如下:,四、实验要求1准备试验前查阅本试验相关的信息。2构思程序设计方法。3编写VHDL代码同时做程序注释。4编译代码,并仿真程序(用QuartusII),与预想结果进行比较,修改程序。5下载到试验平台上,观察结果。6教师检查后整理好设备离开实验场地。,五、实验报告要求1给出BCD七段共阴极译码器的源程序。2用元件例化语句描述顶层原理图。3总结调试代码过程中遇到的问题,如何解决。4谈谈在VHDL中,元件例化语句的作用。,实验三NIOSII开发流程实例-LED显示,一、实验目的(1)掌握NiosII软核的定制流程。(2)掌握NiosII软件开发流程。(3)熟识NiosIIIDE开发环境的使用。(4)掌握基本的软件调试方法。(5)学会使用Cyclone内部的PLL的使用方法。二、实验原理在本实验中,我们用软件来控制核心板上的两个LED交替闪烁。三、实验步骤1、新建工程。新建一个工程目录“sopc_led”,在此目录下建立一个名为“sopc_led”的QuartusII工程,并新建一个顶层图,保存于工程中。,2、用SOPCBuilder定制NiosII处理器及其外设。打开ToolsSOPCBuilder,要求指定系统名字,本例中我们输入niosii_c。按OK进入SOPC定制界面,选择Target,本例选择UnspecifiedBoard。选择时钟频率,Clock(MHz):本例选50.0。选择目标器件系列,TargetDeviceFamily:本例选Cyclone。在SOPC定制界面的左边,我们可以看到有很多功能模块,这些功能模块用户可以按照需要添加到所设计的系统中。,首先,我们需要一个CPU,双击NiosIIProcessorAlteraCorporation弹出AlteraNiosII对话框,我们选择一个经济型的CPU核,即NiosII/e,如下图所示:,点击JTAGDebugModule标签页,选择第一级调试支持Level1,下图。,点击Finish完成NiosIICPU的配置工作。项目中会增加一个niosII处理器,名字为cpu_0,如下图所示。,双击On-ChipMemory(RAMorROM),(在AvalonModules-Memory-下),为系统添加RAM。MemoryType选择RAM;DataWidth选择32bits,TotalMemorySize可以选择4Kbytes,如下图所示:,按Finish确认,返回SOPCBuilder界面,下图。,双击PIO(在ParallelI/O)(在AvalonModules-Other下),为系统添加输出到LED的输出接口。Width选择2bits,如下图所示:,然后点击Finish,返回SOPCBuilder界面,下图所示。,然后,选择System-Auto-AssignBaseAddresses,让系统自动分配基地址。如下图所示。,然后,选择Sysetm-Auto-AssignIRQs,让系统自动分配中断,如下图所示。,点击NiosIIMore“cpu_0”settings选项卡,进行处理器设定。在该例中,无需做任何更改;ResetAddress、ExceptiongAddress、BreakLocation默认值如图所示。,点击SystemGeneration选项卡,进行最后的设定并生成系统。选中HDL.GeneratesystemmodulelogicinVerilog,如果需要仿真,也请选中Simulation.CreateModelSim(tm)projectfiles,然后点击Generate,执行系统生成的任务,如图所示。,然后,耐心地等待系统的生成。一般没有问题的话,可以看到系统提示:SUCCESS:SYSTEMGENERATIONCOMPLETED.如果看到此信息,系统被正确生成了。如果失败,请返回并检查、修改。系统成功生成如图所示。然后点击Exit退出SOPCBuilder。,4、在QuartusII工程中添加上述niosII系统。类似往QuartusII工程添加功能模块,将所定制的NiosII软核CPU添加到本例工程中,即双击工程顶层图空白处,弹出Symbol对话框,在Project下面可以找到刚才建立的niosii_c模块(下图)。,5、添加PLL模块。从QuatusII的库中添加一个锁相环(PLL)模块,以将外部时钟倍频后输送给CPU。6、添加其它元件模块本例分别添加clk和reset输入、led1.0输出。并相互连接。如图所示。,7、设置编译选项建立并运行tcl脚本语言定义管脚。对于EP1C12核心板,tcl管脚配置文件为:#Setup.tcl#SetuppinsettingforEP1C12mainboardset_global_assignment-nameRESERVE_ALL_UNUSED_PINSASINPUTTRI-STATEDset_global_assignment-nameENABLE_INIT_DONE_OUTPUTOFFset_location_assignmentPIN_28-toclkset_location_assignmentPIN_159-toresetset_location_assignmentPIN_1-toled0set_location_assignmentPIN_2-toled1,8、编译该工程并通过Flash下载口下载到EPCS4芯片中注意是下载到EPCS4芯片,目的是在FPGA芯片中建立硬件系统,为后来的软件调试做好准备,9、设计该工程的软件在SOPCBuilder中,打开ToolsSOPCBuilder,运行NiosIDE,如图所示。,在NiosIIIDE中,选择File-New-Project,开启NewProject对话框,选择C/C+Application,然后选择Next,进入下一步,在模板中选择HelloLED。点击“SOPCBuilderSystem”右边的“Browse”按钮打开目录对话框,从该工程目录下找到“niosii_c.ptf”,因为NiosIIIDE必须从这个文件获取该系统的相关信息。按Finish,即建立一个名为Hello_LED_0的模板。打开项目中的文件:hello_led.c,根据需要进行修改,在本例中,我们模板的程序改写为以下内容:intalt_main(void)alt_u8led=0 x2;volatileinti;,while(1)for(i=0;i300000;i+);led=0 x1;*(unsignedint*)PIO_0_BASE=led;for(i=0;iStarCompilation,开始编译整个项目。,14、下载编译成功后,下载到EPCS4

温馨提示

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

评论

0/150

提交评论