sopc实验报告.doc
21页实验一[FPGA]基于 Qsys 的第一个 Nios II 系统设计一、基本说明1、软件平台: Quartus II 13.0(64-bit) Nios II 13.0 Software Build Tools for Eclipse2、硬件平台: Altera Cyclone II EP2C8Q208C8N二、 设计目标 完成 FPGA 平台上的“ Hello Word”实现, 实现方式: 基于 Qsys 的 Nios II 系统设计三、具体步骤1、 打开 Quartus II 13.0(64-bit),新建一个工程, File -> New Project Wizard…, 忽略Introduction, 之间单击 Next> 进入下一步2、添加已经存在的文件,这里我们没有需要添加的文件,直接单击 Next> 进入下一步然后单击 Finish 完成即可3、 新建 Block Diagram/Schematic File (方块图/原理图文件)单击 File -> New..,选择 Design Files 中的 Block Diagram/Schematic File, 单击 OK 即可。
4、 启动 Qsys 工具,进行硬件部分设计 单击 Tools -> Qsys ,进入 Qsys 设置界面 系统已经默认添加了时钟模块,名称为 clk_0 ,这里我们选中clk_0,右击,选择 Rename, 将其名称更改为 clk5、 添加软核处理器的各部分模块我们总共需要添加 Nios II Processor、On_ChipMemory(RAM or ROM)、 JTAG UART、 System ID Peripheral 这 4 个模块最终的完成效果如图 1 所示 图 1 Qsys Connections 完成效果6、 进行软核的相关设置 首先双击 nios2_qsys, 进入处理器设置模块 在 CoreNios II 栏目下, 将 Reset vector memory 和 Exception vector memory 设置为onchip_memory.s17、 然后,单击 System -> Assign Base Addresses, 这时候我们会发现下部 Messages窗口中原先的错误全部没有了,变为 0 Errors,0 Warnings。
如果不是这个结果,返回去按步骤检查8、接着, 单击 File -> Save,进行保存,这里我们保存文件名为 nios_qsys9、最后,选择 Generation 选项卡, 设置 Create simulation model 为 None,然后单击下面的 Generate, 进行生成生成完成后单击 close即可,然后关闭 Qsys 回到 Quartus II 界面10、 双击 Block1.bdf 的空白处, 打开 Symbol 对话框 单击右下角的 MegaWizardPlug-In Manager…, 进入宏模块调用界面, 选择 Creat a new custom megafunctionvariation, 单击 Next> 进入下一步, 在 What name do you want for the output file下面的地址后面添加输出文件的名称, 如原来内容为F:/FPGAandCPLD/Demo/NIOS/HelloWord_nios/,添加后为 F:/FPGAandCPLD/Demo/NIOS/HelloWord_nios/pll_nios 然后在右侧搜索框中搜索 ALTPLL, 选中即可,这一步主要为系统添加时钟模块,然后单击 Next>进入下一步。
11、 弹出 ALTPLL 设置对话框,将时钟更改为 50MHz, 然后连续单击 Finish 完成操作,这时会弹出一个 Quartus II IP Files 对话框,单击 Yes 完成 然后单击 Symbol 对话框中的 OK 即可,然后将模块放在 Block1.bdf 中即可12、 再次双击打开 Symbol 对话框, 方法同第 10 步选择左侧的 Libraries -> Project–> nios_qsys, 然后单击 OK 即可,将 nios_qsys 放置在空白处13、 再次双击打开 Symbol 对话框, 方法同第 10 步 在 Name 中输入 input, 这时右侧会显示输入信号图标,单击 OK 完成将其放置在空白处即可重复此步骤,共添加两个输入到空白处,然后按照同样步骤添加两输入与门 ( and2)到空白处14、 将两个输入信号图标更名为 sys_clk 和 reset_n,然后按照图2所示连接摆放好 图2连接图示15、单击 File -> Save, 进行文件保存, 名称默认即可,如 helloword.bdf。
16、单击 Assignments –> Pin Planner, 添加两个 Node Name 为 sys_clk 和 reset_n,对应的引脚为 28 和 112 然后关闭 Pin Planner 对话框即可17、 单击 Project -> Add/Remove Files in Project…, 单击 File name 后面的浏览按钮, 选择.qsys 文件, 单击 Add 将其添加进来, 然后单击 OK18、 现在进行编译即可 单击 Processing -> Start Complilation, 进行编译,通过后, 将其下载到 FPGA 中,具体的下载过程硬件部分到此结束,下面进行软件部分设计19、 打开 Nios II 13.0 Software Build Tools for Eclipse, 首先, 需要进行 WorkspaceLauncher ( 工作空间)路径的设置, 接触过 Eclipse 的朋友都熟悉, 自己设定即可,需要注意的是路径中不要含有空格等, 然后单击 OK 即可20、 新建工程 单击 File -> New -> Nios II Application and BSP from Template,弹出Nios II Application and BSP from Template 对话框。
先选择对应的 SOPC 系统,单击SOPC Information File name 后面的浏览按钮,选择我们之前硬件部分做好的软核文件,后缀名为.sopcinfo, 然后单击 Finish完成即可 这时候会在左侧的 Project Explorer 中生成两个工程文件,如下图3所示图 3生成的工程文件21、下面我们编译 helloword 工程 右击选择 Build Project 第一次编译的话,时间也会比较常, 耐心等待一下22、编译完成后,右击工程,选择 Run As -> Nios II Hardware,弹出 Run Configurations对话框,默认 Project 选项卡中 Project name 和 Project ELF file name 应该都是有内容的,没有的选一下然后进入 Target Connection 选项卡, Connections 中如果没有东西的话,单击右侧的 Refresh Connection 来查找我们的下载器, 查找后我们单击 System ID Prroperties…, 进行系统 ID 检测, 检查是否是我们之前设置的 ID号, 无误后点击 Apply, 然后再点击 Run,这是程序会被自动下载,最终在 NiosII Console 选项卡中会显示下载完成后程序运行的结果,会出现Hello word!这句话。
四、实验总结在做实验的时候需要注意的以下几点(1)各软、硬模块在保存时一定要保存在同一路径下2)在建立工程时,分别设置工程工作目录、工程名称这里需要注意的是工程工作目录中请使用英文,不要含有空格等,(3)在进行命名时要注意名字,不要打错,否则会出错,很难完成实验4)在找软件模块时,知道左面 Component Library, 是系统提供的元件库,里面有一些构成处理器的常用模块右面是已经添加到系统的模块, 也就是说,Nios II 软核处理器是可以定制的,根据具体需要来 (5)这里一定要注意,选择的文件一定要对应起来,否则会因为软硬不匹配导致系统失败 我这里选择的 nios_qsys.sopcinfo, 然后系统会自动读取 CPU name, 我们不用再进行设置,下面填写 Project name, 这里我们填写为 helloword, 工程模板( Project template) 使用默认的即可个人感悟: 通过这次实验我发现做实验一定要注意细节,“细节决定成败”这句话在这个实验上得到了验证这次做的实验感觉问题不断,有时候自己也不知道问题在哪里,感觉大学第一次有这么大的挫败感幸好的是,大三课余时间比较多,我们在上课时间没有完成老师布置任务的情况下,自己有时间及条件在课余时间去完成未完成的实验。
实验 2 8 段数码管显示实验2.1 实验目的 学习并行输入/输出( PIO)内核是如何提供从 Nios II 软核处理器到通用输入/输出端口之间的寄存器映射接口2.2 实验环境 PC 机、 Quartus II 13.1、 Nios II EDS 13.1、开发板 DE1-SOC2.3 实验内容 设计一个能根据开发板的键值( SW[]完成 8 段数码管显示实验,包括 Nios II 软核处理器系统的产生、 编译、 综合、 Nios II EDS 工程创建、 C 语言源文件的编辑及编译、 配置目标 FPGA器件、下载观察实验结果2.4 实验步骤Stept1、与实验 1 步骤相同启动 Quartus II ,新建工程将其命名为 seg,选择好目标芯片,然后设置没有用的引脚1)启动 QuartusII13.1,使用创建工程向导新建工程:打开 Quartus II 13.0(64-bit),新建一个工程, File -> New Project Wizard…, 忽略Introduction, 之间单击 Next> 进入下一步。
2、添加已经存在的文件,这里我们没有需要添加的文件,直接单击 Next> 进入下一步然后单击 Finish 完成即可,如图1所示 图12)配置没有用的的引脚在Assignments所示界面下选择 Assignments-Device,出现界面后单击 Device and Pins Options,出现如图 2-9 所示,选项 unused pins 为 As input tri-stated.如图 2-8 所示,再单击 OK图2图3Stept2、产生 Nios II 软核处理器系统进入 Tool-Qsys,加入如下图所示的硬件组件图4硬件组图注:除 seg7 组件外,其余组件的设置参照实验 1 的设置过程完成(别忘了配置产生 Nios II软核处理器的复位矢量“ Reset Vector”和异常矢量“ Exception Vector”)。





