版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 SOPC开发流程及开发流程及Quartus II的使用的使用 2.1 SOPC开发流程和开发工具vSOPC设计包括硬件和软件两部分。设计包括硬件和软件两部分。 硬件设计:主要基于硬件设计:主要基于Quartus II和和 SOPC Builder。 软件设计:基于软件设计:基于Nios II IDE。SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf打开SOPC Builder定义和生成系统集成S
2、OPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性使用IDE编程工具烧写配置文件和软件代码在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。每个开发过程开始时都应建立一个工程,Q
3、uartus II是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于 传 统 电 路 设 计 中 的 电 路 板(PCB)。在SOPC Builder中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。如果需要,用户可以定制指令和外设逻辑。(可参考第8章)SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Ni
4、os IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性在Quartus II软件中包含了大量的Altera公司提供的LPM功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;打开SOPC Builder定义和生成系统在顶层模块中
5、,分别将SOPC Builder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;然后将各个功能模块用连线连起来组成系统功能原理图。这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。 使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程
6、使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;设置编译选项,从而让编译器按照用户设定来进行编译;编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组
7、合、综合逻辑、适配FPGA、布线以及时序分析等步骤。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载
8、配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统软件开发也可以在SOPC Builder 生成系统模块后立即进行!与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Qua
9、rtus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统 设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。对用户程序进行编译,生成可执行文件*.elf。 接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。 将配置文件
10、.sof下载到FPGA,将可执行文件.elf下载到RAM。 在目标板上反复调试软件。 直到硬件和软件设计都达到设计要求。 最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。使用IDE编程工具烧写配置文件和软件代码2.1 SOPC开发流程和开发工具硬件开发硬件开发配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发硬件开发Nios II IDE软件开发软件开发Quartus IIGNU Tools 用用SOPC Builder软件从
11、软件从NiosII处理器内核和处理器内核和NiosII开发套件提供的外设列表中开发套件提供的外设列表中选取合适的选取合适的CPU、存储器以、存储器以及各外围器件及各外围器件,并定制和配置并定制和配置它们的功能;它们的功能; 分配外设地址及中断号;分配外设地址及中断号; 设定复位地址;设定复位地址; 最后生成系统。最后生成系统。 用户也可以添加用户自身用户也可以添加用户自身定制指令逻辑到定制指令逻辑到NiosII内核内核以加速以加速CPU性能;性能; 添加用户自己设计的添加用户自己设计的IP模块。模块。 2.1 SOPC开发流程和开发工具v硬件开发硬件开发配置Nios II处理器选择并配置外设.
12、IP连接各外设模块分配外设地址和中断SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发硬件开发Nios II IDE软件开发软件开发Quartus IIGNU Tools 编译编译Quartus II工程,对工程,对HDL文件进行布局布线,从文件进行布局布线,从HDL源文件综合生成一个适源文件综合生成一个适合 目 标 器 件 网 表 , 生 成合 目 标 器 件 网 表 , 生 成FPGA配置文件配置文件(.sof); HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等
13、)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II) 用下载电缆用下载电缆(如如 ByteBlaster II),将配置文件将配置文件下载到目标板上。硬件校验下载到目标板上。硬件校验完成后,可将新的硬件配置完成后,可将新的硬件配置文件下载到目标板上的非易文件下载到目标板上的非易失存储器失存储器(如如EPCS器件器件)。2.1 SOPC开发流程和开发工具v硬件开发硬件开发配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发硬件开发Nios II ID
14、E软件开发软件开发Quartus IIGNU Tools 编译编译Quartus II工程,对工程,对HDL文件进行布局布线,从文件进行布局布线,从HDL源文件综合生成一个适源文件综合生成一个适合 目 标 器 件 网 表 , 生 成合 目 标 器 件 网 表 , 生 成FPGA配置文件配置文件(.sof); HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II) 用下载电缆用下载电缆(如如 ByteBla
15、ster II),将配置文件将配置文件下载到目标板上。硬件校验下载到目标板上。硬件校验完成后,可将新的硬件配置完成后,可将新的硬件配置文件下载到目标板上的非易文件下载到目标板上的非易失存储器失存储器(如如EPCS器件器件)。2.1 SOPC开发流程和开发工具v软件开发软件开发使用软件开发使用Nios II IDE,它是一个基于,它是一个基于Eclipse IDE架构的集成架构的集成开发环境,它包括:开发环境,它包括:vGNU开发工具开发工具(标准标准GCC编译器,连接器,汇编器和编译器,连接器,汇编器和makefile工具等工具等);v基于基于GDB的调试器,包括软件仿真和硬件调试;的调试器,
16、包括软件仿真和硬件调试;v提供用户一个硬件抽象层提供用户一个硬件抽象层HAL;v提供嵌入式操作系统提供嵌入式操作系统MicroC/OS-II和和LwTCP/IP协议栈的支持;协议栈的支持;v提供帮助用户快速入门的软件模板;提供帮助用户快速入门的软件模板;v提供提供Flash下载支持下载支持(Flash Progrmmer 和和QuartusII Programmer)2.1 SOPC开发流程和开发工具v软件开发软件开发配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发硬件开发Nios II
17、IDE软件开发软件开发Quartus IIGNU Tools 使用使用SOPC Builder生成生成系统后,可以直接使用系统后,可以直接使用Nios II IDE开始设计开始设计C/C+应应用程序代码。用程序代码。Altera提供外提供外设驱动程序和硬件抽象层设驱动程序和硬件抽象层(HAL),使用户能够快速编写使用户能够快速编写与低级硬件细节无关的与低级硬件细节无关的Nios II程序;程序; HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(
18、软件跟踪、硬件断点 SignalTap II) C头文件 用户库函数 外设驱动 除了应用代码,用户还可除了应用代码,用户还可以在以在Nios II IDE 工程中工程中设计和重新使用定制库。设计和重新使用定制库。 用户代码 库函数 操作系统(RTOS)硬件开发使用Quartus II和SOPC Builder2.2 SOPC硬件开发实例 第一步是要进行需求分析,根据这个要求来建立硬件系统。第一步是要进行需求分析,根据这个要求来建立硬件系统。 电子钟的设计要求:电子钟的设计要求: 在液晶屏上显示日期、时间;在液晶屏上显示日期、时间; 可以设置日期、时间;可以设置日期、时间; 根据系统要求实现的功
19、能,电子钟的设计要用到的外围器件有:根据系统要求实现的功能,电子钟的设计要用到的外围器件有: LCD:电子钟显示屏幕;:电子钟显示屏幕; 按键:电子钟设置功能键;按键:电子钟设置功能键; Flash存储器:存储软、硬件程序;存储器:存储软、硬件程序; SRAM存储器:程序运行时将其导入存储器:程序运行时将其导入SRAM。 根据所要用到的外设、要实现的功能以及开发板的配置,在根据所要用到的外设、要实现的功能以及开发板的配置,在SOPC Builder中建立系统要添加的模块包括:中建立系统要添加的模块包括:Nios II CPU、定时器、按键、定时器、按键PIO、LCD控制器、控制器、AVALON
20、三态桥、外部三态桥、外部RAM接口、外部接口、外部Flash接口。接口。2.2 SOPC硬件开发实例v使用的开发环境如下:使用的开发环境如下:vWinXP操作系统操作系统vNios II 6.0嵌入式处理器嵌入式处理器vQuartus II 6.0v基于基于Cyclone II 的的SOPC开发板开发板2.2.1 创建工程v进行完需求分析之后,进行硬件系统的创建。进行完需求分析之后,进行硬件系统的创建。v首先必须建立一个首先必须建立一个Quartus II 的工程,的工程,v步骤如下:步骤如下: 1. 开始开始程序程序AlteraQuartus II 6.1Quartus II 6.1(32
21、bit),启动,启动Quartus II软件;软件; 2.选择选择File菜单菜单New Project Wizard,出现,出现Introduction页面,该页面介绍所要完成的具体任页面,该页面介绍所要完成的具体任务,点击务,点击next。2.2.1 创建工程2.2.1 创建工程2.2.1 创建工程3. 进行项目名称的设定、工作目录的选择。进行项目名称的设定、工作目录的选择。指定工程存放的目录,工程名和顶层实体指定工程存放的目录,工程名和顶层实体名,工程名和顶层实体名要求相同,工程名,工程名和顶层实体名要求相同,工程目录可以随意设置,但必须是英文的目录,目录可以随意设置,但必须是英文的目录
22、,工程名和顶层实体名也要求是英文名字,工程名和顶层实体名也要求是英文名字,我们的工程名和顶层实体名为我们的工程名和顶层实体名为clock,选择,选择Next。2.2.1 创建工程2.2.1 创建工程v4.可以为工程添加先期已经输入的设计文件,指定可以为工程添加先期已经输入的设计文件,指定用户自定义的元件库的路径,这里我们没有事先输用户自定义的元件库的路径,这里我们没有事先输入好的文件,也没有自定义的元件库,点击入好的文件,也没有自定义的元件库,点击Next进进入下一步。入下一步。2.2.1 创建工程2.2.1 创建工程5. 用户指定目标器件,根据开发板的所使用的用户指定目标器件,根据开发板的所
23、使用的器件来选择,实际开发中,通过查看核心板器件来选择,实际开发中,通过查看核心板的参考手册来获取所使用的器件具体型号,的参考手册来获取所使用的器件具体型号,可以使用窗口右边的可以使用窗口右边的Filters来加快器件的选来加快器件的选择,选择完毕点击择,选择完毕点击Next。 2.2.1 创建工程2.2.1 创建工程6. 指定在指定在Quartus II 之外的用于,设计输入、之外的用于,设计输入、综合、仿真、时序分析的第三方综合、仿真、时序分析的第三方EDA工具,工具,Quartus II对第三方工具的支持比较完善。对第三方工具的支持比较完善。这里我们不做选择,直接点击这里我们不做选择,直
24、接点击Next。2.2.1 创建工程2.2.1 创建工程v所见新工程的信息,确认所创建工程的主所见新工程的信息,确认所创建工程的主要信息,点击要信息,点击Finish完成工程的建立,在开完成工程的建立,在开发的过程中,还可以通过菜单发的过程中,还可以通过菜单assignmentSettings来对这些配置进行来对这些配置进行修改。修改。v点击点击Finish按钮,按钮,Quartus II自动会打开这自动会打开这个工程,可以看到顶层实体名出现在工程个工程,可以看到顶层实体名出现在工程导航窗口中。导航窗口中。2.3 创建创建Nios II 系统模块系统模块v创建完成工程之后,需要创建顶层实体。创
25、创建完成工程之后,需要创建顶层实体。创建完顶层设计文件之后,使用建完顶层设计文件之后,使用SOPC Builder创建创建NIOS II 嵌入式处理器,添加、配置系统嵌入式处理器,添加、配置系统的外设的外设IP,组成,组成Nios II系统模块。系统模块。 Nios II 系系统模块设计完成之后要加入到该顶层实体中,统模块设计完成之后要加入到该顶层实体中,然后进行其他片上逻辑的开发。然后进行其他片上逻辑的开发。2.3.1 创建顶层实体(1)新建的工程窗口中,选择)新建的工程窗口中,选择FileNew;(2)在)在Device Design File页中,选择页中,选择Block Diagram
26、Schematic File,即原理图文件,即原理图文件,也可以选择硬件描述语言的文件形式。单击也可以选择硬件描述语言的文件形式。单击OK。(3)出现一个模块编辑窗口。)出现一个模块编辑窗口。2.3.1 创建顶层实体2.3.1 创建顶层实体(4) 选择选择FileSave As,出现,出现Save As对话对话框,显示的目录为之前设置的工程目录,文框,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名(由于这是工件名为之前设置的顶层实体名(由于这是工程的第一个文件,系统会默认为顶层设计实程的第一个文件,系统会默认为顶层设计实体的名字)。确定体的名字)。确定Add to Current
27、 Project选项被选中,点击选项被选中,点击Save文件被保存并被加入文件被保存并被加入到工程中。到工程中。2.3.1 创建顶层实体2.3.2 创建Nios II系统模块 创建创建NIOS II系统模块需要使用系统模块需要使用SOPC Builder,它,它是是Quartus II中的一个工具,使用中的一个工具,使用SOPC Builder可可以创建一个以创建一个Nios II 系统模块,或者创建多主设备系统模块,或者创建多主设备SOPC模块。模块。 一个完整一个完整Nios II的系统模块包括的系统模块包括Nios II处理器和相处理器和相关的系统外设。所以创建系统模块的流程是先创建关的
28、系统外设。所以创建系统模块的流程是先创建一个系统,然后添加一个系统,然后添加Nios II CPU和外设和外设IP,然后进,然后进行相应的设置,最后生成实例,然后将其加入到工行相应的设置,最后生成实例,然后将其加入到工程的顶层实体中去。程的顶层实体中去。2.3.2 创建Nios II系统模块一、创建系统一、创建系统 启动启动SOPC Builder,选择,选择ToolsSOPC Builder,出现图,出现图2-10的的Create New System对话框。键入系统的名字,选择硬件对话框。键入系统的名字,选择硬件描述语言描述语言Verilog或者是或者是VHDL。2.3.2 创建Nios
29、II系统模块2.3.2 创建Nios系统模块二二 、设置系统主频和指定目标、设置系统主频和指定目标FPGAv在Target栏中的Board部分指定我们这本书使用的核心开发板Cyclone II (EP2C35)。也可以在Board部分选择Unspecified,然后在Device Family选择Cyclone II。v用户需要设置系统的时钟频率,该频率用于计算硬件和软件开发中的定时,比如时钟分频或波特率。这里我们设成85MHz,还可以选择是否选用流水线。三、加入三、加入Nios II CPU和和 IP模块模块 首先加入首先加入Nios II软核,软核,Nios II 是软核是软核CPU,共有
30、三种类型的共有三种类型的CPU可供选择:可供选择:Nios II/e(经经济型济型)、Nios II/s(标准型)和(标准型)和Nios II/f(快(快速型)。用户可以根据实际的情况进行选择。速型)。用户可以根据实际的情况进行选择。Nios II是一个用户可以自行进行定制的是一个用户可以自行进行定制的CPU,用户可以增加新的外设、新的指令等。用户可以增加新的外设、新的指令等。添加添加Nios II CPU的步骤如下:的步骤如下:v1. Avalon Components 下面选择下面选择Nios II Processor;v2. 点击点击 Add,出现,出现Nios II CPU的配置向导,
31、的配置向导,共有三种类型的共有三种类型的CPU可供选择;可供选择; 根据需要选择相应的一种根据需要选择相应的一种Nios II核,我们选核,我们选择标准型的择标准型的Nios II核,核,Hardware Multiply选选择择none,不选择,不选择Hardware Divide点击点击Next,进入进入Caches & Tightly Coupled Memories设置窗口;设置窗口; 设置设置Nios II的的Cache和与和与CPU直接相连的存直接相连的存储器端口(不通过储器端口(不通过Avalon总线),选择总线),选择Instruction Cache为为4Kbytes
32、,不选中,不选中Include tightly coupled instruction master port(s) ,点击,点击Next进入进入Advanced Features设置页面。设置页面。 Advanced Features的设置页面是的设置页面是Quartus II 6.1 版本才有的设置,这里不选择版本才有的设置,这里不选择Include cpu_resetrequest and cpu_resettaken signals点击点击Next进入进入JTAG Debug Module设置。设置。 共有共有4个调试级别可供选择,这里选择个调试级别可供选择,这里选择Level1即可,
33、该级别支持软件的断点调试。即可,该级别支持软件的断点调试。JTAG调试模块要占用较多的逻辑资源,如果调试模块要占用较多的逻辑资源,如果整个系统调试完毕了可以选用整个系统调试完毕了可以选用No Debugger以减少系统占用资源点击以减少系统占用资源点击Next进入自定义指进入自定义指令的设置。令的设置。 因为本例不用到任何的自定义指令,这里不因为本例不用到任何的自定义指令,这里不作任何的设置,点击作任何的设置,点击Finish完成完成CPU模块的模块的添加。添加。v除了除了Nios II CPU,电子钟设计需要添加的,电子钟设计需要添加的IP模块包模块包括:括:vTimervButton PI
34、OvLCD控制器控制器vExternal RAM BusvExternal Flash Bus vExternal RAM interfacevExternal Flash Interface 1. 添加定时器添加定时器 定时器和定时器和Nios II CPU一样,用户可以对其进一样,用户可以对其进 行定制。添加定时器的步骤如下:行定制。添加定时器的步骤如下: (1)在)在Avalon components下的下的other库中库中选选 择择Interval Timer并单击并单击Add,Avalon_Timer-timer_0的向导窗口出现;的向导窗口出现; (2)配置定时器,点击)配置定时
35、器,点击Finish,完成定时器的添加。完成定时器的添加。 (3)可以对)可以对Timer进行重命名,进行重命名,我们这里取缺省的名字我们这里取缺省的名字。 2. 添加添加Button PIO (1)在)在 Avalon components下的下的other下选择下选择PIO,单击单击Add,出现,出现Avalon PIO-PIO_0的向导;的向导; (2)在)在Basic Settings页中,设置页中,设置width=4bits,direction为为Input Ports Only; (3)在)在Input Options页中,在页中,在Edge Capture Register下选中
36、下选中Synchronously Capture,然后,然后选择选择Either Edge;(4)在)在Interrupt下选中下选中Generate IRQ,然后,然后选择选择Edge; (5)点击)点击Finish,返回到,返回到Altera SOPC Builder NIOS2的窗口;的窗口;(6)右键单击)右键单击Module Name下的下的pio_0,从,从菜单选择菜单选择rename,重命名为,重命名为button_pio. 3. 添加添加LCD控制器控制器(1)在图)在图2-11的窗口中的左侧的的窗口中的左侧的Avalon components下的下的display库中选择库中
37、选择Character LCD(16 2, Optrex 16027),单,单击击Add;(2)Module Name下出现,下出现,lcd_16027_0; (3)将其重命名)将其重命名lcd_display。 4.添加外部添加外部RAM接口接口 (1)Avalon components下的下的Memory下面选择下面选择Cypress CY7C1380C SSRAM,单击,单击Add,出现,出现SSRAM (Cypress CY7C1380C)-ext_ssram的向导;的向导; (2)在)在Timing Parameters下面设置下面设置Read Latency 为为2 clocks,
38、在,在SSRAM下面设置下面设置Memory Size为为2Mbytes (3)单击)单击Finish,返回到,返回到Altera SOPC Builder NIOS2的窗的窗口;口; (4)右键单击)右键单击Module Name下的下的ssram_0,从菜单选择,从菜单选择rename,重命名为,重命名为ext-ssram。 5. 添加外部闪存接口添加外部闪存接口(1)在)在Avalon components下的下的Memory下面选择下面选择Flash Memory(Common Flash Interface),单),单击击Add,出现外部闪存接口向导;,出现外部闪存接口向导;(2)在
39、)在Attributes页中,可以在页中,可以在Presets列表中选择列表中选择相应的闪存的接口,这些闪存的接口都是经过测试相应的闪存的接口,这些闪存的接口都是经过测试的,如果列表中没有,用户可以自己定义闪存的的,如果列表中没有,用户可以自己定义闪存的Size和和Data Width;(3)在)在timing页中,可以设置闪存的读写时序要求,页中,可以设置闪存的读写时序要求,可以设置可以设置Setup, Waite, hold时间等参数,通常保时间等参数,通常保留缺省的设置;留缺省的设置;(4)如应用选择的闪存接口不在列表中,需要自己)如应用选择的闪存接口不在列表中,需要自己定义定义Size
40、和和Data Width,和时序要求;,和时序要求;(5)点击)点击Finish,返回到,返回到Altera SOPC Builder NIOS2的窗口,的窗口,Module Name出现出现cfi_flash_0,对其重命名为对其重命名为ext_flash。 6. 添加外部添加外部RAM总线和外部总线和外部flash总线(总线(Avalon三三态总线桥)态总线桥) 为了使为了使Nios II 系统能与开发板上的外部存储器通信,必须在系统能与开发板上的外部存储器通信,必须在Avalon总线和外部存储器之间加入总线和外部存储器之间加入Avalon三态桥。三态桥。 步骤如下:步骤如下:(1) 在在
41、Bridge下,选择下,选择Avalon Tri-State Bridge,点击,点击Add,出现出现Avalon Tri-State Bridge tri_state_bridge_0向导;向导; (2) Registered选项默认为选中;选项默认为选中; (3)单击单击Finish,返回到,返回到Altera SOPC Builder NIOS2的窗口;的窗口;(4) 将其重命名为将其重命名为ext_ssram_bus;(5) 重复前三个步骤,在添加一个重复前三个步骤,在添加一个Avalon三态三态总线桥,并重命名为总线桥,并重命名为ext_flash_bus.v7.添加JTAG UAR
42、T(1)在)在Avalon components下的下的Communication下选择下选择 JTAG UART,点击,点击ADD,出现添加向导。,出现添加向导。(2)按照缺省设置,点击)按照缺省设置,点击Finish。(3) 将其重命名为将其重命名为JTAG_UART.7. Nios II系统的连接系统的连接v主要是外部主要是外部RAM接口要和接口要和RAM的三态桥连接,外的三态桥连接,外部的部的Flash接口要和接口要和flash的三态桥连接。所有添加的三态桥连接。所有添加的的IP连接都是系统自动完成的,除了上面提到的三连接都是系统自动完成的,除了上面提到的三态桥和外部存储器的接口的连接
43、之外,其它的连接态桥和外部存储器的接口的连接之外,其它的连接用户不用修改,但对于三态桥和外部存储器接口的用户不用修改,但对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。针对我们所用的开发板用户需要进行手动的更改。针对我们所用的开发板的情况进行的设置,因为本书用到的开发板外部的的情况进行的设置,因为本书用到的开发板外部的SRAM和外部的和外部的Flash没有使用共用的数据线和地没有使用共用的数据线和地址线,所以必须为它们分别添加一个三态桥。址线,所以必须为它们分别添加一个三态桥。 Altera公司提供
44、了丰富的外设公司提供了丰富的外设IP可供用户加可供用户加入到设计当中,如片内入到设计当中,如片内ROM,communication UART、LED PIO、Seven Segment PIO、外部、外部DDR SDRAM的接口等的接口等等。本设计没有用到上述的外设等。本设计没有用到上述的外设IP,所以不,所以不做讲述,读者可以通过做讲述,读者可以通过Quartus II的帮助文的帮助文件,或者通过件,或者通过Altera公司的技术资料来获得公司的技术资料来获得相应的信息。相应的信息。2.3.3分配IP模块的地址和中断号v在以上添加在以上添加IP的过程中,的过程中,SOPC Builder为各
45、为各个个IP模块分配了一个默认的基地址,用户可模块分配了一个默认的基地址,用户可以改变这些默认的分配。如果用户自己分配以改变这些默认的分配。如果用户自己分配的地址出现冲突,的地址出现冲突,SOPC Builder会给出警告,会给出警告,用户可以按照下面的步骤来进行分配和解决用户可以按照下面的步骤来进行分配和解决地址冲突问题。地址冲突问题。v下面我们给出一种自定义的地址分配实例,下面我们给出一种自定义的地址分配实例,将闪存的基地址设定为将闪存的基地址设定为0 x00000000,步骤如,步骤如下:下:(1)单击)单击Flash外设的外设的Base栏,将地址改为栏,将地址改为0 x0,然后,然后回
46、车,这时回车,这时SOPC Builder的消息框中出现错误的提示的消息框中出现错误的提示信息,这是因为闪存的地址和其它的外设地址发生了信息,这是因为闪存的地址和其它的外设地址发生了冲突。冲突。(2)选择)选择Module菜单中的菜单中的Lock Base Address操作,操作,一个挂锁的图标出现在闪存基地址的旁边。一个挂锁的图标出现在闪存基地址的旁边。(3)选择)选择System菜单中的菜单中的Auto Assign Base Address操作,来解决外设的地址分配冲突问题,操作,来解决外设的地址分配冲突问题,SOPC Builder调整其它外设的地址来避开与闪存地址调整其它外设的地址
47、来避开与闪存地址的冲突,错误提示的消息就会消失了。的冲突,错误提示的消息就会消失了。(4)用户可以手动修改各个外设的中断号,中断号越)用户可以手动修改各个外设的中断号,中断号越低,中断优先级越高,用户也可以采用自动分配中断低,中断优先级越高,用户也可以采用自动分配中断号,选择号,选择System菜单中的菜单中的Auto Assign IRQs,但,但SOPC Builder不处理软件操作,采用自动分配中断的不处理软件操作,采用自动分配中断的策略不一定是最优的,用户最好是根据自己的应用来策略不一定是最优的,用户最好是根据自己的应用来确定外设的中断优先级,采用手动的分配。确定外设的中断优先级,采用
48、手动的分配。2.3.4 配置配置NIOS II 系统系统v系统的系统的IP模块添加完成之后,还需要对系统进行配模块添加完成之后,还需要对系统进行配置。点击置。点击Nios II More “cpu_0” Settings 页,用户页,用户可以进行如下的设置:可以进行如下的设置:vReset Address:可以选择存放:可以选择存放Boot Loader的存储器和设的存储器和设置置Boot Loader在存储器中的偏移,我们这里选择在存储器中的偏移,我们这里选择ext_flash,偏移选择默认;偏移选择默认;vException Address:可以选择存放异常向量表的存放的存:可以选择存放异
49、常向量表的存放的存储器和设置异常向量表在存储器中的偏移储器和设置异常向量表在存储器中的偏移,我们选择我们选择ext_ssram,偏移选择默认;,偏移选择默认;vBreak Location:如果:如果NIOS II 包含有一个包含有一个JTAG Debug模模块,块,SOPC Builder会显示这项内容。其会显示这项内容。其Memory Module总总是是JTAG Debug Module,Offset 固定为固定为0 x20, 地址由地址由JTAG debug module基地址决定。用户不能修改基地址决定。用户不能修改Break Location的各个域的内容。的各个域的内容。2.3.
50、5 生成生成NIOS II并加入到工程中并加入到工程中vNIOS II系统是工程的一部分,我们首先是生成它,系统是工程的一部分,我们首先是生成它,然后加入到工程中去,然后将整个工程下载到然后加入到工程中去,然后将整个工程下载到FPGA芯片中去。单击芯片中去。单击System Generation,在,在Option下进行如下的设置:下进行如下的设置: 选中选中 HDL,会生成系统模块的硬件语言文件。,会生成系统模块的硬件语言文件。 选中选中 Simulation,如果安装了,如果安装了ModelSim软件,会软件,会生成用于仿真的相应的文件。生成用于仿真的相应的文件。 单击单击 Generat
51、e,SOPC Builder会提示生成体统的会提示生成体统的进程,系统生成完成时会提示进程,系统生成完成时会提示”SUCCESS: SYSTEM GENERATION COMPLETED”。单击。单击exit 退出退出SOPC Builder。v系统生成完成之后,系统生成完成之后,SOPC Builder为这个定制的为这个定制的NIOS II系系统模块创建了一个符号,要把统模块创建了一个符号,要把Nios II系统加入到工程中去,系统加入到工程中去,遵循如下的步骤:遵循如下的步骤: (1)在)在 Quartus II软件中,打开顶层实体(软件中,打开顶层实体(BDF格式),格式),在在BDF窗
52、口中任意处双击,出现窗口中任意处双击,出现 Symbol对话框对话框; (2)在)在Symbol对话框中单击对话框中单击Project来展开工程目录,其下来展开工程目录,其下出现出现NIOS2(本例采用的系统名),选中它,右侧出现了系(本例采用的系统名),选中它,右侧出现了系统的符号表示;统的符号表示; (3)单击)单击OK,Symbol对话框关闭,对话框关闭,NIOS2的符号轮廓被附的符号轮廓被附着在鼠标的指针上。着在鼠标的指针上。 (4)BDF窗口中任意空白处单击一下,窗口中任意空白处单击一下,NIOS2的符号出现在的符号出现在BDF窗口中,这样我们创建的系统已经被加入到工程中了。窗口中,
53、这样我们创建的系统已经被加入到工程中了。 2.3.6 加入引脚和嵌入式锁相环加入引脚和嵌入式锁相环v除了除了NIOS II系统之外,可能还要有其它的硬系统之外,可能还要有其它的硬件逻辑单元,我们这里加入一个嵌入式锁相件逻辑单元,我们这里加入一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输环,嵌入式锁相环有两个时钟输出,一个输出出SSRAM提供时钟,另一个时钟的输出为提供时钟,另一个时钟的输出为NIOS II CPU提供时钟,然后添加输入、输提供时钟,然后添加输入、输出、双向引脚,以实现和出、双向引脚,以实现和FPGA外部的外设外部的外设进行通信。进行通信。 v加入嵌入式锁相环的步骤如下:加
54、入嵌入式锁相环的步骤如下:(1) 点击点击ToolsMegaWizard Plug-In Manager,出现,出现MegaWizard Plug-In Manager向导向导Page1窗口窗口,点击点击nextv在在MegaWizard Plug-In Manager Page2 窗口中窗口中的的IO下面选择下面选择ALTPLL,器件选择,器件选择Cyclone II,输,输出文件类型选择出文件类型选择VHDL,文件名为,文件名为ssram_pll,选,选中中Return to this page for another create operation,然后点击,然后点击Next,出现,出
55、现MegaWizard Plug-In Manager-ALTPLL Page 3of 9;v在在MegaWizard Plug-In Manager-ALTPLL Page 4 of 10窗口中,不做任何选择,点击窗口中,不做任何选择,点击next;v在在MegaWizard Plug-In Manager-ALTPLL Page 5 of 10窗口中,单击窗口中,单击next;v在在MegaWizard Plug-In Manager-ALTPLL Page 6 of 10窗口中,设置窗口中,设置c0输出时钟,首先选中输出时钟,首先选中Use this clock选项,选项,设置时钟频率为
56、设置时钟频率为85MHz,占空比为,占空比为50%。点击。点击Next会进入会进入c1输出时钟的设置;输出时钟的设置;v嵌入式嵌入式PLL可提供可提供3个输出时钟,我们使用其中的个输出时钟,我们使用其中的两个,两个,MegaWizard Plug-In Manager-ALTPLL Page 7 of 10窗口中,在窗口中,在c1时钟的设置页面上,时钟的设置页面上,选中选中Use this clock选项,设置时钟频率为选项,设置时钟频率为85MHz,点击,点击Next;v在在MegaWizard Plug-In Manager-ALTPLL Page 8 of 10窗口中,不选中窗口中,不选
57、中Use this clock选项,即我们不使用选项,即我们不使用c2时钟,点击时钟,点击Next;v在在MegaWizard Plug-In Manager-ALTPLL Page 9 of 10窗口中,给出了用于仿真必窗口中,给出了用于仿真必须要产生的文件,点击须要产生的文件,点击Next;v在在MegaWizard Plug-In Manager-ALTPLL Page 10 of 10窗口中,给出了用户选择窗口中,给出了用户选择要产生的文件,不做改变,采用默认配置,要产生的文件,不做改变,采用默认配置,点击点击Finish完成完成PLL的生成。的生成。v在顶层实体的在顶层实体的bdf窗
58、口中双击鼠标,出现窗口中双击鼠标,出现Symbol添加窗口,在添加窗口,在project下面选择刚才下面选择刚才建立的建立的ssram_pll,点击,点击OK。ssram_pll的的轮廓会附着在鼠标上,点击轮廓会附着在鼠标上,点击bdf窗口的空白窗口的空白处,将嵌入式锁相环加入到了工程中。处,将嵌入式锁相环加入到了工程中。v引脚添加的步骤如下:引脚添加的步骤如下:v(1)在顶层实体的)在顶层实体的bdf窗口的空白处双击鼠标,出窗口的空白处双击鼠标,出现现Symbol添加窗口,在添加窗口,在alteraquartuslibraries下面选择下面选择primitives,再在其下选择,再在其下选
59、择pin,在其中有三种类型的引脚,有在其中有三种类型的引脚,有bidir,input,output,分别为双向、输入和输出引脚,选择相应,分别为双向、输入和输出引脚,选择相应类型的引脚,点击类型的引脚,点击OK。v(2)点击)点击bdf窗口的空白处,即将引脚加入到了工窗口的空白处,即将引脚加入到了工程中。程中。v(3)重复上面的步骤添加为各个端口添加相应类)重复上面的步骤添加为各个端口添加相应类型的引脚。型的引脚。v连接引脚和命名引脚连接引脚和命名引脚v第一个加入的引脚的名称缺省为第一个加入的引脚的名称缺省为pin_name,之后,之后加入的引脚名称依次为加入的引脚名称依次为pin_name1
60、,pin_name2向向上递增,为了便于理解和记忆,需要对引脚重新命上递增,为了便于理解和记忆,需要对引脚重新命名,使其和其传输的信号联系起来。名,使其和其传输的信号联系起来。v命名引脚的方法如下:命名引脚的方法如下:(1) 双击引脚的双击引脚的“pin_namen”部分,部分,pin_namen的文字变成高亮,可以对其编辑。的文字变成高亮,可以对其编辑。v(2) 对其他的引脚重复以上的操作,修改成具有对其他的引脚重复以上的操作,修改成具有意义的名字。意义的名字。v(3) 对于总线型的引脚,引脚名称之后要标识出对于总线型的引脚,引脚名称之后要标识出总线的位数,如总线的位数,如ddr_a12.0,在引脚名称之后加,在引脚名称之后加上方括号,然后写上最高位和最低位,用两个上方括号,然后写上最高位和最低位,用两个.隔隔开。开。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 许昌学院《虚拟现实开源系统开发实验》2023-2024学年第一学期期末试卷
- 许昌学院《设计思维表达》2021-2022学年第一学期期末试卷
- 徐州工程学院《理论物理概论(Ⅰ)》2022-2023学年第一学期期末试卷
- 消防器材维护保养培训
- 创新思维的月度发展策略计划
- 秋季课程设置与调整计划
- 调动社区资源的有效利用计划
- 信阳师范大学《书籍设计》2023-2024学年第一学期期末试卷
- 尽展宝贝潜能幼儿园学期班级工作计划
- 信阳师范大学《计算机三维模型设计实验》2023-2024学年第一学期期末试卷
- 必刷题2024三年级英语上册语音发音专项专题训练(含答案)
- 2024新教材高中政治 第二单元 经济发展与社会进步 第四课 我国的个人收入分配与社会保障 4.1《我国的个人收入分配》教案 部编版必修2
- 《汽车故障诊断与排除》教案-项目3-汽车底盘故障诊断与排除
- 《汽车发动机与底盘拆装》中职全套教学课件
- 重庆江北国际机场有限公司招聘笔试题库2024
- 2024年全国乡村医生考试复习题库及答案(共420题)
- GB/T 44143-2024科技人才评价规范
- 性病艾滋病丙肝防治工作总结
- 砍甘蔗劳务合同范本
- 代理记账公司保密协议
- 2024年教师招聘考试-中小学校长招聘笔试考试历年高频考点试题摘选含答案
评论
0/150
提交评论