1、计算机控制教研室计算机控制教研室2022-6-22嵌入式技术概述嵌入式技术概述 NIOSII系统高级开发技术孔庆臣孔庆臣计算机控制教研室计算机控制教研室2022-6-222NIOSIINIOSII系统高级开发技术系统高级开发技术NIOSII软核处理器:可定制性、性能可配置性可定制性可定制性:三种类型内核、参数化的可配置的外围设备性能可配置性性能可配置性:多CPU结构、Avalon交换架构、用户定制指令用户定制指令、硬件加速(用户定制外设用户定制外设、C2HC2H编译器编译器)计算机控制教研室计算机控制教研室2022-6-223用户定制指令用户定制指令1)概述用户定制指令:将一个包含多条标准指令
2、的指令序列减少为硬件实现的一条指令1)NIOSII处理器配置向导提供了图形化界面添加封装用户定制指令;2)NIOSII支持256条定制指令;3)NIOSII IDE在system.h中为每条定制指令产生一个宏,用户在应用程序中通过调用宏访问定制指令。计算机控制教研室计算机控制教研室2022-6-224用户定制指令用户定制指令2)定制指令的体系结构单时钟周期组合逻辑结构计算机控制教研室计算机控制教研室2022-6-225用户定制指令用户定制指令2)定制指令的体系结构多时钟周期时序逻辑结构,固定或可变的执行时间计算机控制教研室计算机控制教研室2022-6-226用户定制指令用户定制指令2)定制指令
3、的体系结构多时钟周期时序逻辑多时钟周期时序逻辑结构,固定或可变的结构,固定或可变的执行时间执行时间扩展结构,能执行多扩展结构,能执行多个操作个操作计算机控制教研室计算机控制教研室2022-6-227用户定制指令用户定制指令2)定制指令的体系结构多时钟周期时序逻辑结构,固定或可变的执行时间扩展结构,能执行多个操作可访问内部寄存器文件结构计算机控制教研室计算机控制教研室2022-6-228用户定制指令用户定制指令2-1)组合逻辑定制指令能够在一个时钟周期内完成的定制指令,不需要控制端口dataadataa和和databdatab是可选的;是可选的;resultresult是必需的是必需的计算机控制
4、教研室计算机控制教研室2022-6-229用户定制指令用户定制指令2-2)多时钟周期定制指令能够在多个时钟周期内完成的定制指令,需要控制端口。固定时钟周期数:系统生成时指定可变时钟周期数:使用start、done握手信号clk、clk_en、reset是必需的计算机控制教研室计算机控制教研室2022-6-2210用户定制指令用户定制指令2-2)多时钟周期定制指令固定时钟周期数:START信号有效后,等待指定的周期数,读RESULT可变时钟周期数:START信号有效后,处理器一直等到DONE信号有效计算机控制教研室计算机控制教研室2022-6-2211用户定制指令用户定制指令2-3)扩展定制指令
5、扩展定制指令允许一个定制指令实现多个不同的操作NIOSII处理器通过一个8位的N域来实现指令扩展,整个NIOSII系统支持256个指令索引计算机控制教研室计算机控制教研室2022-6-2212用户定制指令用户定制指令2-4)可访问内部寄存器文件定制指令可访问内部寄存器文件定制指令允许一个定制指令访问其自身的内部寄存器文件,从而提供了用户定制指令访问NIOSII处理器寄存器文件和自身寄存器文件的灵活性计算机控制教研室计算机控制教研室2022-6-2213用户定制指令用户定制指令2-4)可访问内部寄存器文件定制指令计算机控制教研室计算机控制教研室2022-6-2214fc计算机控制教研室计算机控制
6、教研室2022-6-2215用户定制指令用户定制指令2-5)具有外部接口的定制指令多时钟周期定制指令、扩展定制指令、可访问内部寄存器文件定制指令均可支持外部接口:提供了一个数据流入、流出处理器的专用接口计算机控制教研室计算机控制教研室2022-6-2216用户定制指令用户定制指令3)用户定制指令的软件接口(软件访问方式)NIOSII IDE 在system.h中为用户定制指令生成允许应用程序访问的宏。用户定制指令索引用户定制指令参数NIOSII IDE 默认生成的宏中只使用了C的整数类型,其他数据类型需通过用户自定制宏定义计算机控制教研室计算机控制教研室2022-6-2217用户定制指令编程用
7、户定制指令编程/高低位交换高低位交换#include “system.h”Int main(viod)Int a=0 x12345678;Int a_swap=0;a_swap=ALT_CI_BSWAP(a); retun 0;计算机控制教研室计算机控制教研室2022-6-2218用户定制指令用户定制指令3)用户定制指令的软件接口(软件访问方式)用户定制指令的自定制宏计算机控制教研室计算机控制教研室2022-6-2219用户定制指令用户定制指令3)用户定制指令的软件接口(软件访问方式)计算机控制教研室计算机控制教研室2022-6-2220用户定制指令用户定制指令4)实现用户定制指令的相关软件操
8、作(1)打开NIOSII CPU的定制指令设置页点击该按钮计算机控制教研室计算机控制教研室2022-6-2221用户定制指令用户定制指令4)实现用户定制指令的相关软件操作(2)添加用户定制指令设计文件计算机控制教研室计算机控制教研室2022-6-2222用户定制指令用户定制指令4)实现用户定制指令的相关软件操作(2)添加用户定制指令设计文件自动识别顶层模块计算机控制教研室计算机控制教研室2022-6-2223用户定制指令用户定制指令4)实现用户定制指令的相关软件操作(2)添加用户定制指令设计文件计算机控制教研室计算机控制教研室2022-6-2224用户定制指令用户定制指令4)实现用户定制指令的
9、相关软件操作(3)发布用户定制指令输入元件名输入元件组名点击计算机控制教研室计算机控制教研室2022-6-2225用户定制指令用户定制指令4)实现用户定制指令的相关软件操作(4)将定制指令加入系统,完成定制指令添加。点击该按钮,将定制指令加入系统中计算机控制教研室计算机控制教研室2022-6-2226用户定制外设用户定制外设用户定制外设:开发一个定制的SOPC Builder元件SOPC Builder元件的构成:1)硬件文件:描述元件硬件的HDL描述文件2)软件文件:定义元件寄存器映射的C语言头文件和元 件驱动程序3)元件描述文件(class.ptf):定义元件的结构,由元件编辑器根据硬件文
10、件、软件文件及用户在元件编辑器的图形用户界面中指定的参数自动产生该文件。计算机控制教研室计算机控制教研室2022-6-2227用户定制外设用户定制外设1 1)用户定制)用户定制SOPC BuilderSOPC Builder元件的开发流程元件的开发流程(1)指定硬件功能(2)指定微处理器访问和控制该硬件的应用程序接口(3)定义一个AVALON接口:提供正确的控制机制、足够 的吞吐性能(4)采用VHDL或Verilog编写硬件设计(5)单独测试硬件设计(6)编写C头文件,定义寄存器映射(7)使用元件编辑器将硬件和软件文件打包成一个元件(8)例化元件为SOPC系统的一个模块计算机控制教研室计算机控
11、制教研室2022-6-2228用户定制外设用户定制外设1 1)用户定制)用户定制SOPC BuilderSOPC Builder元件的开发流程元件的开发流程(9)使用NIOSII处理器测试元件的寄存器级访问(10)编写元件的驱动程序(11)反复改进元件的设计:硬件、软件、元件更新(12)编译完整的包含一个或多个该元件的SOPC系统(13)执行系统级的验证,若必要,进行反复设计(14)完成元件设计,发布共享元件计算机控制教研室计算机控制教研室2022-6-2229用户定制外设用户定制外设2 2)用户定制)用户定制SOPC BuilderSOPC Builder元件的硬件设计元件的硬件设计任务逻辑
12、:实现元件的基本功能寄存器文件:任务逻辑内部信号同外部通信的通路AVALON接口:提供访问寄存器文件的传输计算机控制教研室计算机控制教研室2022-6-2230用户定制外设用户定制外设3 3)用户定制)用户定制SOPC BuilderSOPC Builder元件的软件设计元件的软件设计软件文件:定义了元件的软件视图最小化的软件设计:定义元件的寄存器映射C头文件软件驱动程序:抽象了元件的硬件细节,使应用程序可 以在一个高层次上访问元件元件编辑器可以方便的将C头文件和驱动程序打包到HAL库中计算机控制教研室计算机控制教研室2022-6-2231用户定制外设用户定制外设4 4)打包硬件文件、软件文件
13、为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(1)启动元件编辑器计算机控制教研室计算机控制教研室2022-6-2232用户定制外设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(2)HDL Files 选项卡手动指定顶层文件计算机控制教研室计算机控制教研室2022-6-2233用户定制外设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(3
14、)Signals 选项卡计算机控制教研室计算机控制教研室2022-6-2234用户定制外设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(4)interfaces 选项卡计算机控制教研室计算机控制教研室2022-6-2235用户定制外设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(5)SW Files 选项卡添加软件文件设置文件类型计算机控制教研室计算机控制教研室2022-6-2236用户定制外
15、设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(6)Component Wizard 选项卡计算机控制教研室计算机控制教研室2022-6-2237用户定制外设用户定制外设4 4)打包硬件文件、软件文件为)打包硬件文件、软件文件为SOPC BuilderSOPC Builder元件的相关操作元件的相关操作(7)完成元件封装计算机控制教研室计算机控制教研室2022-6-2238用户定制外设用户定制外设5 5)共享元件)共享元件使设计的元件可以在不同工程中使用将设计的元件目录转移到一个特定目录,目录
16、路径名中不能有空格,在SOPC Builder中选择File-SOPC Builder Setup添加包含元件目录的目录,用“+”分隔多个路径计算机控制教研室计算机控制教研室2022-6-2239如何添加已设计成功的外设如何添加已设计成功的外设1.复制外设文件夹复制外设文件夹2.粘贴到粘贴到C:altera61quartussopc_buildercomponents3.启动启动sopc builder,自定义外设便出现在左侧,自定义外设便出现在左侧对应的库中。对应的库中。计算机控制教研室计算机控制教研室2022-6-2240C2HC2H技术技术1 1)概述)概述C2H: 用户可以直接从 AN
17、SI C 源代码创建定制外设加速器C2H编译器可以将特定C函数实现为硬件加速器以改善NIOSII程序的性能,但C2H不是将C作为设计语言产生任意硬件系统的工具。C2H编译器的使用前提:(1)ANSI C语法足以描述计算密集或存储器访问频繁的任务(2)C2H工具不能打乱已有的软件和硬件开发流程计算机控制教研室计算机控制教研室2022-6-2241C2HC2H技术技术1 1)概述)概述C2H编译器提供的特性:(1)兼容ANSI C:支持大部分C构造,包括指针、数组、结构、全局变 量、局部变量、循环、子函数调用(2)直接的C到硬件的映射(3)同NIOSII IDE集成:操作简单(4)基于SOPC B
18、uilder和Avalon交换架构:C2H加速器是NIOSII系统的 一个元件(5)详细的编译报告:硬件结构、资源使用计算机控制教研室计算机控制教研室2022-6-2242C2HC2H技术技术2 2)C2HC2H相关的重要概念相关的重要概念(1)C2H编译器工作在函数级用户想要加速的代码必须为一个独立的函数计算机控制教研室计算机控制教研室2022-6-2243C2HC2H技术技术2 2)C2HC2H相关的重要概念相关的重要概念(2)包含C2H加速器的NIOSII的系统结构SOPC Builder自动将C2H加速器以元件的形式集成到系统中;C2H加速器与NIOSII处理器是分离的,可以访问处理器
19、访问的存储器;用户能够在SOPC Builder中手动配置C2H加速器与系统的连接计算机控制教研室计算机控制教研室2022-6-2244C2HC2H技术技术2 2)C2HC2H相关的重要概念相关的重要概念(3)C2H中C语法到硬件结构的一对一映射计算机控制教研室计算机控制教研室2022-6-2245C2HC2H技术技术2 2)C2HC2H相关的重要概念相关的重要概念(4)系统性能瓶颈的转化依靠处理器运行的应用的性能瓶颈是处理器执行指令的速度,高速缓存降低了系统性能对存储器访问时间的依赖采用C2H加速器,系统性能的瓶颈主要取决于存储器访问的时间和带宽计算机控制教研室计算机控制教研室2022-6-
20、2246C2HC2H技术技术3 3)C2HC2H的的C C代码选择代码选择(1)理想的加速C代码包含相对小而简单的循环或包含嵌套的循环;对一组数据反复操作,每次对数据进行一个或多个操作,然后存储结果。(2)不理想的加速C代码包含很多顺序操作,不能形成一个循环的代码;代码包含C2H不支持的语法的C代码,如浮点运算和递归函数;调用系统和运行时库函数的C代码,如printf()。计算机控制教研室计算机控制教研室2022-6-2247C2HC2H技术技术4 4)C2HC2H编译器使用的相关操作编译器使用的相关操作(1)创建C2H硬件加速器计算机控制教研室计算机控制教研室2022-6-2248C2HC2
21、H技术技术4 4)C2HC2H编译器使用的相关操作编译器使用的相关操作(2)设置C2H硬件加速器的编译选项计算机控制教研室计算机控制教研室2022-6-2249C2HC2H技术技术4 4)C2HC2H编译器使用的相关操作编译器使用的相关操作(3)C2H视图中的详细编译报告计算机控制教研室计算机控制教研室2022-6-2250C2HC2H技术技术4 4)C2HC2H编译器使用的相关操作编译器使用的相关操作(4)用户可以在SOPC Builder中查看C2H加速器,但不能修改C2H加速器,更不能删除C2H加速器;当在NIOSII IDE中编译C2H编译工程时,必须要关闭SOPC Builder。(5)移除C2H硬件加速器:必须在NIOSII IDE中使用Remove C2H Accelerator命令移除C2H加速器。计算机控制教研室计算机控制教研室2022-6-2251本章总结用户定制指令用户定制外设(SOPC Builder元件)C2H技术