华侨大学电子工程系1SOPC系统设计实例SOPC系统设计实例........................................................................................................................11SOPC系统设计流程..........................................................................................................12SOPC系统设计实例.........................................................................................................21.建立工程........................................................................................................................32.建立顶层设计文件......................................................................................................103.用SOPCBuilder建立一个新的SOPC硬件系统.....................................................124.向系统中添加NiosII处理器.....................................................................................145.添加片上存储器..........................................................................................................206.添加JTAGUART........................................................................................................227.添加定时器..................................................................................................................248.添加自定义组件七段数码管控制器..........................................................................259.自动设置基地址..........................................................................................................3410.加入SystemID模块.................................................................................................3411.生成系统....................................................................................................................3512.例化NiosII处理器...................................................................................................3713.导入引脚分配............................................................................................................3814.编译并下载设计........................................................................................................4015.启动NiosIIIDE........................................................................................................4116.建立新工程................................................................................................................4117.修改系统库属性........................................................................................................4518.修改代码....................................................................................................................4619.编译并运行工程........................................................................................................481SOPC系统设计流程SOPC系统的设计流程如图1所示。设计者首先根据任务要求决定系统需求,然后用SOPCBuilder建立自己的SOPC系统,完成这项工作之后,硬件工程师和软件工程师可以开始协同工作。硬件工程师首先建立一个顶层设计文件,将生成的SOPC系统例化,并设置引脚分配,时序要求及其他设计约束,,然后编译硬件设计并将FPGA设计下载到目标板中。在硬件工程师工作的同时,软件工程师可以用NiosIIIDE开发应用软件,并在NiosIIIDE中使用NiosII指令仿真器(ISS)运行并调试软件,等硬件工程师把硬件设计下载到目标板中之后,软件工程师将可执行软件下载到目标板上的NiosII系统中,并在目标板上运行调试软件,如果发现软件设计不满足设计要求,则再改进硬件和软件的设计。华侨大学电子工程系2图1SOPC系统设计流程2SOPC系统设计实例用SOPC系统在DE2平台上实现一个计数器。先在DE2平台上建立SOPC系统的硬件,这个系统包括一个NIosII/s嵌入式处理器、存储器、一个JTAGUART及一个定时器,一个ID模块。另外,我们将加入一个自定义组件,实现分析系统要求在SOPCBuilder中定义并生成系将SOPCBuilder系统集成到QuartusII工程设计引脚分配,时序要求及其他设计约束编译硬件设计将FPGA设计下载到目标板中用NiosIIIDE开发环境在NiosIIIDE中使用ISS运行,调试软件将可执行软件下载到目标板上的NiosII系统中在目标板上运行、调试系统改进软/硬件设计华侨大学电子工程系3对DE2平台上七段数码管的控制。1.建立工程启动QuartusII软件,用NewNewProjectWizard…菜单在QuartusII中新建一个工程,本例中将工程的工作目录设定在G:\DE2,工程的名称为niosii,如图4所示,如果是希望使用自己已有的工程,则点击图4中所示的UsingExistingProjectSetting按钮,,但是在本例中不需要添加已有工程的配置。按下next后,器件中选择EP2C35F672C6,向导完成后的汇总界面如图8所示。图2QuartusII启动界面华侨大学电子工程系4图3华侨大学电子工程系5图4华侨大学电子工程系6图5华侨大学电子工程系7图6华侨大学电子工程系8图7华侨大学电子工程系9图8华侨大学电子工程系10图92.建立顶层设计文件建立工程之后,需要为工程建立一个顶层设计文件,这个设计文件的名称应该与工程的名称完全一致,设计文件可以是QuartusII允许的各种设计输入格式的文件,如VerilogHDL、VHDL、AHDL及原理图设计文件等。在本例中使用原理图设计文件。用FileNew菜单建立一个新文件,选择BlockDiagram/SchematicFile文件,文件名称与工程名称保持一致,为niosii。保存新建的文件。华侨大学电子工程系11图10图11华侨大学电子工程系12图123.用SOPCBuilder建立一个新的SOPC硬件系统单击工具按钮或者是ToolSOPCBuilder菜单启动SOPCBuilder。如图13所示,输入新系统的名称为nios_ii_system,当然也可以输入其他名称,但是应该注意,所有的名称中都不能出现空格。TargetHDL选项可以选择Verilog,也可以选择VHDL,这里选择Verilog。按OK按钮,进入到SOPCBuilder的主界面,如图15所示。华侨大学电子工程系13图13图14华侨大学电子工程系14图154.向系统中添加NiosII处理器在SOPCBuilder左侧的组件列表中,选择NiosIIProcessor,,按鼠标右键,在弹出的菜单中选择AddNewNiosIIProcessor,显示如图17所示的NiosII处理器的配置界面。选择NiosII/s作为本设计的处理器按下Next按钮,设置处理器的指令缓存和紧密耦合指令存储器,如图18所示,选择指令缓存为2K字节,不使用紧密耦合指令存储器。按下Next按钮,设置JTAG调试模块,JTAG调试模块分为四个级别,每个级别的功能不同,占用的逻辑资源也不相同,在本设计中选择占用逻辑资源最少的级别Level1,如图21所示按下Next按钮可以添加自定义指令,在本例中不添加自定义指令,按Finish按钮结束NiosII控制器的设置。华侨大学电子工程系15图16图17华侨大学电子工程系16图18华侨大学电子工程系17图19华侨大学电子工程系18图20图21华侨大学电子工程系19图22图23华侨大学电子工程系205.添加片上存储器在SOPCBuilder主界面左侧的组件列表Memory组中,选中On-ChipMemory(RAMorROM),按鼠标右键,在弹出的菜单中选择AddNewOn-ChipMemory(RAMorROM),显示如图25所示的片上存储器的配置界面。选择存储类型为RAM,存储器宽度为32位,总内存尺寸为40K字节。单击Finish按钮完成片上存储器的配置。图24华侨大学电子工程系21图25华侨大学电子工程系22图26图276.添加JTAGUART在SOPCBuilder主界面左侧的组件列表中,选择JTAGUART,按鼠标右键,在弹出的菜单中选择AddNewJTAGUART,显示如图28所示的JTAGUART配置界面。按照默认设置,配置不作改变,单击Finish按钮完成JTAGUART的设置。华侨大学电子工程系23图28华侨大学电子工程系24图297.添加定时器在SOPCBuilder主界面左侧组件列表中选中IntervalTimer,按鼠标右键,在弹出的菜单中选择AddNewIntervalTime,显示如图30所示的定时器配置界面。按照默认的设置。配置不作改变,即可生成一个初始周期为1ms的定时器