根据NiosII的流水灯设计

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

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

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

资源描述

^`基于NiosII的流水灯设计一、实验目的:基于NiosII设计一个8位LED流水灯系统,要求掌握SOPC系统设计方法,了解SDRAM和FLASH芯片的接口特性,掌握QuartusII软件的使用方法以及NiosIIEDS设计应用软件的基本流程。二、实验条件:1.安装WindowsXP系统的PC机;2.安装QuartusII9.0EDA软件;3.安装NiosIIEDS9.0软件;4.GW48型SOPC开发平台;三、实验要求:设计过程包括硬件设计和软件设计两部分内容。使用SOPCBuiler工具建立处理器系统,使NiosII处理器成功连接SDRAM、FLAHS以及连接LED的PIO驱动模块。通过嵌入式锁相环获得稳定的100MHz时钟为系统和SDRAM使用。使用按键1实现系统复位(模式7,按键为单脉冲,接口为IO0):系统时钟复位端连接LEDSDRAM接口FLASH接口clk_0reset_nout_port_from_the_LED[7..0]zs_addr_from_the_SDRAM[12..0]zs_ba_from_the_SDRAM[1..0]zs_cas_n_from_the_SDRAMzs_cke_from_the_SDRAMzs_cs_n_from_the_SDRAMzs_dqm_from_the_SDRAM[1..0]zs_ras_n_from_the_SDRAMzs_we_n_from_the_SDRAMaddress_to_the_FLASH[22..0]read_n_to_the_FLASHselect_n_to_the_FLASHwrite_n_to_the_FLASHzs_dq_to_and_from_the_SDRAM[15..0]data_to_and_from_the_FLASH[7..0]MySysteminst复位^`用LED阵列显示流水灯效果:注:要求使用LED1~LED8。对应的IO编号分别为(IO60、IO67、IO65、IO63、IO70、IO73、IO75、IO79)。四、实验步骤:1.打开QuartusII软件,建立一个新的工程:单击菜单File\NewProjectWizard…输入工程的路径、工程名以及顶层实体名。单击Next按钮,出现以下窗口⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗^`由于我们建立的是一个空的项目,所以没有包含已有文件,单击Next继续。设置器件信息:单击Next,指定第三方工具:这里我们不指定第三方EDA工具,单击Next后结束工程建立。^`2.建立SOPC系统单击Tool\SOPCBuilder菜单项,启动SOPCBuilder配置工具。在弹出的系统命名对话框中为系统名称命名“MySystem”,并选择目标描述语言为“VHDL”,点击OK保存。建立并配置处理器IP核。双击或选择IP核库列表中的NiosIIProcessor为系统添加NiosII处理器。^`系统将弹出如下对话框要求用户对处理器情况进行配置,此时我们先选择Finish默认系统的配置。右键处理器更改其名称为“MyCPU”。^`本设计所使用的存储器是核心板载的SDRAM(K4S561632)和FLASH(AM29VL065D),所以需要通过为系统添加相关的IP核来驱动。双击IP核列表中的MemoriesandMemoryControllers/SDRAM/SDRAMController将弹出以下的SDRAM控制器配置窗口,根据板载的SDRAM外围参数,按以下数据填入。点击Next填写SDRAM的延时参数(默认参数),点击Finish完成。右键修改SDRAM的名称“SDRAM”。^`如下图双击IP核列表中的Library/BridgesandAdapters/Avalon-MMTristateBridge为系统添加链接FLASH的三态桥IP核。在弹出的对话中中直接点击Finish。双击IP核列表中的Library/MemoriesandMemoryControllers/Flash/FlashMemoryInterface(CFI)为系统添加FLASH界面IP核,并按照下图填入描述参数。^`点击Next填入时序参数,并点击Finish完成参数配置。修改此IP核实例名称为“FLASH”,如下图。配置IP核之间的连接关系点击菜单System/Auto-AssignBaseAddresses完成存储器地址分配。^`在此双击处理器IP核实例“MyCPU”配置复位地址和异常中断地址,并点击Finish完成配置,如下图。更改处理器的工作时钟频率为100MHz,如下图。双击IP核列表中的Library/PIO,添加PIO模块,按照下图配置(默认配置)并更名为“LED”。^`建议再次点击菜单System/Auto-AssignBaseAddresses重新对地址分配。到此,SOPC系统的配置工作已经完成,点击Generate按钮生成SOPC系统,系统生成完毕并成功后点击Exit推出SOPCBuilder环境。3.建立系统电路图单击File\New菜单项,选择弹出窗口中的BlockDiagram/SchematicFile,单击OK按钮以建立打开空的图形输入文件,注意此文件并没有在硬盘中保存。^`双击图形输入区域的空白处,选择弹出窗口中的SOPC系统模块,点击OK按钮添加到图形输入区域。添加锁相环。点击菜单Tools/MegaWizardPlug-InManager…并在弹出的对话框中选择“Createanewcustommegafunctionvariation”点击Next继续。^`如下图选择锁相环IP核,并对其命名“MyPLL”,点击Next进入锁相环的设定环节。^`按照下图设定锁相环的输入频率为20MHz,点击Next继续。清除弹出对话框的所有选项,以此简化对锁相环的控制,点击Next。^`对弹出的对话框做如下设置,点击Next继续。对弹出的对话框,配置c0时钟频率为输入时钟的5倍(100MHz),如下图,点击Next继续。^`出现c1时钟配置页面后,不选择此时钟输出,直接点击Next继续。弹出c2时钟配置页面后,对其做如下配置,用于SDRAM的时钟(频率为100MHz,移相为-63°),点击Next继续。^`到此配置过程完成,点击Finish生成锁相环。^`连接锁相环到电路中。双击图形输入区域,选择生成的锁相环,添加到电路中。再次双击图形输入空白区域,如下图输入引脚类型“input”添加输入和输出引脚,按照图示连接并对引脚命名。(添加输出引脚时输入“output”,双向引脚“bidir”)^`连接其他引脚。根据SOPC系统端口的方向依次添加各引脚并按照下图命名(复位端用到了一个反相器,键入名称“NOT”即可获得)。端口连接和命名完成之后点击保存按钮。引脚锁定。点击Processing/StartCompilation编译当前工程,以获得电路的引脚信息。编译完成之后,点击菜单Assignments/AssignmentEditor对引脚进行锁定。锁定方式如下表所示:引脚名称锁定位置SD_ADDR[0]PIN_R14^`引脚名称锁定位置SD_ADDR[1]PIN_R15SD_ADDR[2]PIN_R16SD_ADDR[3]PIN_T16SD_ADDR[4]PIN_U13SD_ADDR[5]PIN_U14SD_ADDR[6]PIN_U15SD_ADDR[7]PIN_V14SD_ADDR[8]PIN_V15SD_ADDR[9]PIN_W14SD_ADDR[10]PIN_W15SD_ADDR[11]PIN_W16SD_ADDR[12]PIN_AA12SD_BA[0]PIN_Y19SD_BA[1]PIN_Y20SD_CASPIN_AA15SD_CKEPIN_Y22SD_CLKPIN_Y21SD_CSnPIN_AA17SD_DQ[0]PIN_M15SD_DQ[1]PIN_M16SD_DQ[2]PIN_M18SD_DQ[3]PIN_M19SD_DQ[4]PIN_N15SD_DQ[5]PIN_N21SD_DQ[6]PIN_N22SD_DQ[7]PIN_P15SD_DQ[8]PIN_P17SD_DQ[9]PIN_P18SD_DQ[10]PIN_P19SD_DQ[11]PIN_P20SD_DQ[12]PIN_P21SD_DQ[13]PIN_P22SD_DQ[14]PIN_R18SD_DQ[15]PIN_R19SD_DQM[0]PIN_Y14SD_DQM[1]PIN_Y17SD_RASnPIN_AA16SD_WEnPIN_AA14FLASH_ADDR[0]PIN_M5FLASH_ADDR[1]PIN_M6FLASH_ADDR[2]PIN_M7FLASH_ADDR[3]PIN_M8^`引脚名称锁定位置FLASH_ADDR[4]PIN_N1FLASH_ADDR[5]PIN_N2FLASH_ADDR[6]PIN_N3FLASH_ADDR[7]PIN_N4FLASH_ADDR[8]PIN_N5FLASH_ADDR[9]PIN_N6FLASH_ADDR[10]PIN_P1FLASH_ADDR[11]PIN_P2FLASH_ADDR[12]PIN_P4FLASH_ADDR[13]PIN_P5FLASH_ADDR[14]PIN_P6FLASH_ADDR[15]PIN_R1FLASH_ADDR[16]PIN_R2FLASH_ADDR[17]PIN_R4FLASH_ADDR[18]PIN_R5FLASH_ADDR[19]PIN_R6FLASH_ADDR[20]PIN_R11FLASH_ADDR[21]PIN_T7FLASH_ADDR[22]PIN_T8FLASH_CSnPIN_W11FLASH_DATA[0]PIN_R7FLASH_DATA[1]PIN_R8FLASH_DATA[2]PIN_T1FLASH_DATA[3]PIN_T2FLASH_DATA[4]PIN_T3FLASH_DATA[5]PIN_T5FLASH_DATA[6]PIN_T6FLASH_DATA[7]PIN_U1FLASH_RDnPIN_W9FLASH_RSTnPIN_Y6FLASH_WRnPIN_Y5CLKPIN_L1RSTPIN_AB15LED[0]PIN_AB16LED[1]PIN_AB11LED[2]PIN_AB7LED[3]PIN_AB19LED[4]PIN_A8LED[5]PIN_A5LED[6]PIN_A3LED[7]PIN_Y10锁定完成后保存引脚锁定文件。^`点击菜单Assignments/Device将弹出以下对话框,点击其中的“DeviceandOptions”按钮,在弹出对话框的“UnusedPins”选项卡中设定未使用的引脚为“Asinputtri-statedwithweakpull-up”。编译工程。单击Processing\StartCompilation开始编译,编译过程中如果有出错消息,请参考提示对工程进行修改直到编译完全成功为止。4.软件设计启动NiosIIEDS软件,选择File/New/NiosIIApplicationandBSPfromTemplate新建一个应用工程和板级描述包。在弹出的对话框中填入SOPC描述信息和工程名。^`在模板窗口中选择“BlankProject”点击Finish完成一个空应用工程的建立。在工程管理窗口中右键点击“Led_Flow_Soft”,从弹出菜单中选择新建源文件,如下图。为源文件起名“main.cpp”已建立一个C++文件,点击Finish确定。^`编写源文件:保存工程后点击Project/BuildAll编译工程。^`点击菜单项NiosII/QuartusIIProgrammer,打开QuartusII编程下载对话框,将QuartusII工程生成的SOF文件下载到FPGA芯片中。下载成功后,开发板就构造成功了一个NiosII系统,我们需要把流水灯程序下载到其中的Flash中实现流水

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

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

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

×
保存成功