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