1、实验1基于Quartus II,设计一个计算机系统实验内容:1) 系统硬件组成包含Nios CPU、on_chip_ram和JTAG UART三个模块;2) 编写 C 语言程序 “hello_world_small”;3) 调试运行。实验目的:1) 掌握Quartus II的基本使用方法;2) 学会使用Quartus II来设计一个计算机系统;3) 结合课本知识,进一步加深对计算机系统组成的认识。成果要求:1) 报告设计过程、结果(原理图、仿真结果、源代码)、出现的典型问题及解决过程, 要求结果体现个人设计思路,实验按照本文档应该能够很容易就完成,希望大家都 自己动手。2) 实验报告请按照课程
2、提供的“实验报告模版”来撰写。实验环境1) 下载安装 10.0_quartus_free_windows_rev2.exe2) 下载安装 10.0_nios2eds_windows_rev2.exe3) 如果在我们提供的FTP上下载的版本不能正确安装,请大家到Alter官方网站上下 载,下载时需要注册用户,但是免费的。提示:使用迅雷下载会相当快!实验流程:1.运行Quartus II 10.0(以下简称Q2),得到如下图所示的程序界面。2.新建工程1)运行 Q2,建立工程,File-New Project Wizad,如下图私 Quartus IIRleEdit View Project As
3、signments Processing Tools Window HelpiOpen Project.Save Project Close Project2)在弹出的对话框中点击Next,出现如下图所示的对话框。选择工作目录 D:/workspace,也可以使用你自己设定的文件夹。工程必须有一个名字,通常情况 下,与顶层设计实体的名字相同。如下图所示,选择system作为工程名和顶层实 体名。单击Next。如果工作目录(D:/workspace)没有创建,则Quartus II会弹出一个对话框,询问是否新建所需的文件夹,选择Yes。因为我已经创建好D:/workspace 了,所以没有出现该
4、对话框。3)完成上图中工作目录等的填写后,单击Next,得到如下图所示的对话框。4)如果没有已经存在的设计文件,点击Next,则打开如下图所示的对话框5)点击Next,最终得到如下图。6)点击Finish,完成工程的创建。其中需要注意的是,由于我们仅仅设计供仿真调试的系统,则在如上的第4)步骤中fpga 器件可以选择为 Auto device selected by the Filter.3.用 SOPC Builder 定制 Nios II 处理器及其外设。打开 Tools-SOPC Builder,Programmer JTAG Chain Debugger Transceiver Too
5、iyt 50PC BuilderMegaWizard Plug-In Manager要求指定系统名字,本例中我们输入lx_c,点击OK,进入SOPC定制界面。在SOPC定制界面的左边,我们可以看到有很多功能模块,这些功能模块,用户可以按 照需要添加到所设计的系统中。首先,我们需要一个CPU,在上图左边的选项框中,展开Processors选项,然后左键双击Nios II Processor,弹出Nios II Processor对话框,我们选择一个经济型的CPU核,即Nios II/e,如下图所示:点击TAG Debug Module标签页,选择第一级调试支持Level 1:点击Finish完成
6、Nios II CPU的配置工作。项目中会增加一个Nios II处理器,名字为cpu_0,为了简便起见,没有将它改名。改名的方法是:右键-ReName,输入名字后回车。如下图:将上图中左边选项框内的Memories and Memory Controllers展开,如下图:Component LibraryemiDries: and Memory Controllers-DDR2 SDRAM Controller wrth UniPHY -DDRS SDRAM Controller wrth UniPHY -QDR II and QDR 11+ SRAM Controller -RLDRAM
7、II Controller with UniPHY s Traffic Generator and BIST Engine DMA -Flash 0-On-Chip-M.alon-ST Dual Clock FIFO M.alon-ST Murti-Channel Shared r .valon-ST Round Robin Schedule -M.alon-ST Single Clock FIFO .Qri-Chitj FIFO MRmnrvL.- On-Chip Memory (RAM or ROTyj)TargetDevice Family:Use | Conn.Stratix IIvM
8、odule Nameinstruction_masterdata_masterjtag_debug_modulem(+-SDRATvr左键双击 On-Chip Memory (RAM or ROM),为系统添加 RAM。Memory Type 选择 RAM; Data Width 选择 32bits,Total Memory Size 可以选择为 4K bytes,如下图所示:点击Finish确认,返回SOPC Builder界面:将上图左边选项框中的Interface Protocols展开,再展开Serial,选中JTAGUA叮,如下图所示:左键双击JTAG UART,在弹出的对话框中做如
9、下图所示的配置:然后点击Finish,返回SOPC Builder界面:然后左键双击cpu_0选项条,如下图:得到Nios II Processor的配置界面,如下图:对上图中的Reset Vector和Exception Vector进行如下图所示的配置:点击Finish确认,返回SOPC Builder界面。然后,选择System-Auto-Assign Base Addresses,让系统自动分配基地址,如下图:4.同理,选中System-Auto-Assign IRQs,让系统自动分配中断,如下图:做完如上的配置后,点击SOPC Builder界面中的Next,然后点击Generate
10、,并在弹出的 对话框中选择Save,生成系统。如果成功创建,则如下图所示:点击 Exit 退出 SOPC Builder.在Quartus II工程中添加上述Nios II系统。 选中Quartus II的File-New,如下图所示:Quartus II - D:/vorkspace/systeEdit View project色ssignmentsProcessing lools Wndow yel|1 Open,Ctrl+OCloseCtrl+F4j| New Project Wizard.在弹出的对话框中,点击Block Diagram/Schematic File,得到如下图:IO
11、New0-Project,如下图所示:在弹出的对话框中选择Nios II C/C+Application,然后点击Next,如下图:点击Next后,弹出如下图所示的对话框,其中将该文件取名hello_world,并需要将该 文件保存到Quartus II刚才创建的工程所在的目录中,也就是D:workspace,同时在 D:workspace目录中找到刚才我们用Quartus II创建的lx_c.ptf文件,也就是指定该c程序的 目标cpu,并选中Hello World Small模版,如下图所示:作如上图所示的配置后,点击Finish,弹出如下图所示的对话框:其中,箭头处的内容是可以修改的。接
12、下来,在左面选项卡中选择hello_world,并单 击鼠标右键,在弹出的菜单选项中选择Build Project,如下图所示:o e- ii b Use ALT vers:Functioialtpi: int-faltputstralt.put. cliaialtgetchai曰altera, componentsbin由(2 IF Device Drivers _7 Hewlib C Library 由os II Software Packages0-10-lS KellcGo IntoRebuild IndexActive Bn i 1 d C on i giir a t i on卜Run As卜Debug Ae卜nclude sys/alt s t. : t lua i n i;)alt_putstr(Hello d左键单击Build Project,在弹出的对话框中显示正在进行编译,如下图所示:Build FrojCle:ari Frojectwhile ill:Open in New Window编译成功,则显示出如下图所示的内容成功编译后,选中菜单Run-Run As-3 Nios II ISS,并单击3 Nios II ISS,开始运行,如下图所示:如果正确运行,则得到如下图所示的结果:这样,就完成了本实验。