首页 > 技术 > 内容

ALTERA实现NIOS最小系统的三个部件

时间:2025-11-29  作者:Diven  阅读:0

从最初的占地170平方的第一代ENIAC计算机开始,计算机开始了不断集成化、小型化的发展之旅。现今在单一芯片内部已经能够集处理器,存储,各型协处理器等,从而形成的强大的单芯片的片上系统(SOC),而这些片上系统已存在于生活的方方面面。因此FPGA内部支持片上系统,也算不上是新奇的事情了。ALTERA和XILINX已各自推出了各自应用片上系统(FPGA领域称之为SOPC,因此其片上系统可以根据业务需求来定义)。

只需几K的资源,就能实现一个SOC的最小系统,对于FPGA工程师来说,没什么比这个更有吸引力了。那么,作为一个片上系统来说,其最小系统应该包含哪些:其至少需要三个部件,执行部件(处理器),程序执行部件(内部存储器),输出部件(输入输出单元)。(其分别相当于PC上的CPU、内存条键盘鼠标显示器)。下图所示在ALTERA的QSYS上实现NIOS的最小系统所需部件。

(1) 处理部件:NIOSII为ALTERA器件中所专有的软核处理器,而xilinx所对应的为mICroblaze的软核。通过在Qsys的界面工具中提供许多IP,而NIOSII也提供三个版本提供使用,分别是高速型,标准型,以及经济型。如果FPGA内部逻辑有限,可选择的经济型,其占用资源较少。如果需要内部资源丰富又需要运行嵌入式操作系统uclinux等复杂软件。则建议选择高速型,而要运行linux等操作系统,则在NIOSII高速型中配置MMU则是必须的。如无具体需求,则使用标准型即可。值得一提的是,NIOSII为哈佛型体系结构,即数据和指令分开,从Qsys可以看出,其接口分为指令接口和数据接口。

(2) 存储部件:对于在FPGA内部实现SOC来说,片内的块RAM就是实现SOC内部程序与数据的存储空间。也可以使用片外的存储区,如片外SRAM或者DDR等。也可以作为程序和数据的存储空间。对于NIOSII处理器来说,只有选取了片内存储区或者片外存储区,才能设定程序中断向量和复位起始位置的存储区。另外,虽然AVALON总线支持数据总线和地址总线通过片上互联同一接口访问单端口RAM。但建议使用时,例化为双AVALON接口的双端口RAM,一则是因为一般存储区所需RAM深度够大,一般支持真双端口RAM,另一方面,数据和指令分开,能够提升系统的性能。

(3) 输入输出部件:通常在嵌入式SOC系统中,最常用的输入输出部件就是串口(UART)。常常被应用于(打印printf(),scanf())函数的输入输出。如果系统设计了串口(一般为SOC系统中所必须的),则例化系统中的支持avalon接口的串口即可,如果系统中不幸没有,那么ALTERA公司提供了JTAG-UART接口提供给用户输入输出交互接口。即通过复用JTAG下载线来模拟串口的操作。如果系统中有多个输出输出设备,如有多个UART,则在编程时,需在BSP的环境中设定,选择使用哪个UART作为系统的输出。

使用ALTERA的Qsys工具可以方便的在FPGA上构建SOC系统。只需选择相应的IP(可以是系统自带,也可以使用自己构建支持avalon-mm接口的IP)。通过系统的互联从而构成一个片上系统。图形化的界面只需通过avalon总线连接信号将NIOSII和外设连接在一起即可。连接完毕后,还需要下面操作:

(1) 为每个外设设定地址,例如上图中RAM和JTAG-UART,每个外设都需要一个地址范围,可以点击系统中自动地址分配,也可以手动分配一个区间。只有为每个外设分配地址后(相当于整个系统的门牌号),处理器才能根据地址来访问各个外设。

(2) 如外设有中断,则为外设分配中断号,也可自动或者手动完成。如不分配中断的话,那么处理器访问外设,只有查询交互方式了。中断方式使用可以减少处理器的负载。

在ALTERA的QSYS工具中,硬件信息全部存储在sopcinfo。主要是包括各个外设的地址信息等,用于产生system.h。也就是说,作为软件和硬件的交互的渠道是每个外设的基地址,中断,和内部寄存器等信息。系统构建结束后,剩下的就可以软件编程了,运行在搭建的SOC系统上的第一个“hello world”的程序。

对于现在FPGA上的SOC设计,厂商为了其方便易用,做了大量的工作,只需按照其指南一步步,就可以实现相应的设计,但也限制了对其基本原理的深入的理解。什么事情都有其两面性,作为FPGA工程师,SOC的原理则应该能够重点关注,这样不论是ALTERA还是XILINX其基本原理也是一致的。如不使用厂家的处理器核(NIOSII、mICroblaze),也可以使用其软核(如51等,ARM)在FPGA上实现SOC系统。只不过原来工具做的工作,就需要手动来完成了。

猜您喜欢


 函数指针函数也有自己的地址,函数名/&函数名 就是函数的地址1.1基本形式在 数组指针的学习中我们了解到int arr[5];...
2022-08-17 15:58:00
广东独石电容是电子元件中常见的。在电路中起到重要作用。本文将介绍广东独石电容的型号及其特点。什么是独石电容独石电容是由材料制成的。的特点是体积小,容量大。用于各...
2025-03-27 20:00:35
摩擦系数测定仪是用于测量材料表面摩擦性能的重要设备,不同类型的摩擦系数测定仪在设计和功能上存在明显区别。摩擦系数测定仪可以分为静态和动态两种类型。静态摩擦系数测...
2009-05-01 00:00:00
贴片排阻作为电子电路中不可少的基础元件,受到越来越多设计师和工程师的关注。作为业内知名品牌,PHYCOM(飞元)凭借其高品质的产品和多样的规格,赢得了广大用户的...
2017-11-19 11:49:30
I/O扩展器是用于扩展微控制器或处理器输入输出端口数量的设备,主要应用于电子项目和嵌入式系统中。随着技术的发展,许多项目需要更多的传感器、显示器或其外部设备,而...
2025-01-15 00:00:00
贴片电阻上的250通常代表阻值为25欧姆。贴片电阻的阻值通常用三位数字表示,前两位数字是有效数字,第三位数字是乘数,表示10的几次方。以250为例:前两位数字2...
2024-11-29 10:26:00
贴片电阻上的5R11表示其阻值为5.11欧姆。其中,R代表小数点。前面的数字5表示整数部分,后面的数字11表示小数部分。所以,连起来就是5.11欧姆。这种标注方...
2024-11-29 10:25:56
雪崩光电二极管(APD)是高灵敏度的光电探测器,应用于光通信、激光雷达、医疗成像等领域。与传统的光电二极管相比,雪崩光电二极管具有更高的增益和更好的灵敏度,这使...
2025-04-03 16:00:35