1
关注中国自动化产业发展的先行者!
2024
2024中国自动化产业年会
2023年工业安全大会
OICT公益讲堂
当前位置:首页 >> 案例 >> 案例首页

案例频道

基于NOIS处理器的定制硬件技术研究
  • 企业:    
  • 点击数:266     发布时间:2023-05-15 07:29:46
  • 分享到:

文献标识码:B文章编号:1003-0492(2023)04-076-04中图分类号:TP919

★刘元元(东方电气集团(四川)物产有限公司,四川德阳618000)

摘要:基于系统级FPGA的SOPC嵌入式设计特点,采用SOPC Builder设计工具可以有选择地将处理器、存储器、I/O等系统设计所需的IP组件集成到FPGA器件上,也可以通过自定义用户逻辑集成到FPGA器件上,从而构建高效SOC。本文分析了嵌入式处理器NOIS软核特性,并给出了基于NOIS内核的SOPC软硬件开发流程和自定义用户逻辑的软硬件设计过程。

关键词:FPGA;片上系统;可编程片上系统;NOIS软核

近年来,随着现场可编程逻辑阵列(FPGA)器件的发展,以及SOPC技术的成熟,采用Nios Ⅱ软核处理器在FPGA上实现系统级功能算法成为可能。Nios II软核处理器是Altera公司推出的嵌入在其FPGA内部的32位软核处理器,且其内核仅占用很少的逻辑资源,另外它的可配置程度极高,不但可以根据用户需求加入各种标准接口,如各种外部存储器、以太网控制器、IDE驱动器、USB接口等,也可以将用户自己定义的接口模块和逻辑模块加入其中,必要的时候还可以在Nios II软核中加入实时操作系统,实现了对多任务的调度,这让用户可以随心所欲地构建完全符合系统要求的处理器结构。在FPGA外部只需要添加配置芯片、SDRAM、FLASH就可以构成一个完整的硬件平台,很好地体现了SOPC的设计思想,使系统具有结构简单、成本低廉、保密性好的特点。在性能上,系统可以利用FPGA的并行处理能力提高系统性能,如采用定制自定义模块,用硬件控制耗时大的软件算法模块来提高系统性能,也可以采用NiosⅡ处理器的自定义指令方式用硬件实现部分复杂算法片段,方便在软件程序中调用,大大提高了程序执行效率。另外,还可以用新推出的C2H工具直接将一些软件程序进行硬件化,不仅提高了系统性能,还保证了本系统很高的处理速度,具有很好的实时性。

1 SOPC的设计

SOPC即System On a Programmable Chip,是指用可编程逻辑器件把整个系统放到一块硅片上。一方面它是片上系统—即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。这项技术将EDA、计算机设计、嵌入式系统、工业自动控制系统、DSP及数字通讯系统融为一体。

一个最小系统应该包括中央处理单元(CPU)、随机存储器(RAM)和FlashROM(存储代码、数据等),稍微复杂点的系统至少应该包括UART、DMA、Timer、中断管理模块以及GPIO等。

我们知道,FPGA支持用户自定义的硬件,即用户自己设计的IP核。在许多应用中,我们可以利用这一特性,使用硬件描述语言来定制适合系统特性的模块。例如,FPGA中没有AD模块,必须外加AD芯片。其他MCU控制AD芯片必须通过软件来实现,对FPGA来说,则可以将此AD芯片的控制工作集成到一个VHDL或VERLOG模块中,综合后集成到SOPC系统中,实现定制外设。通过这一步,此AD就可以看成FPGA的一个内部外设,而不必像其他MCU那样通过指令来模拟AD芯片时序。相比之下,FPGA能提高效率并减少出错率,因为其本质还是通过硬件来实现读取的功能。

2 SOPC Builder

SOPC Builder是Altera公司推出的一种可加快在FPGA内实现嵌入式处理器相关设计的工具,其功能与PC应用程序中的引导模板(Wizard)类似,旨在提高设计者确定需要的处理器和参数,并根据此创建一个处理器的完整存储器映射。设计者还可以选择所需要的IP外围电路,如存储控制器、I/O控制器和定时器等模块。当然,也支持用户自定义的硬件。

SOPC Builder具有友好的图形用户接入,可以为用户提供强大的设计平台以搭建基于AVALON总线的系统。用户不仅可以从ALTERA提供的IP库中选取组件、处理器、SDRAM、FLASH、USB、以太网等,也可以选择配置相应的参数,还有包含操作系统内核的嵌入式软件开发工具。在进行SOPC设计时,如果用户有特殊功能要求,但IP库中没有,则可加入自定义逻辑实现。通过QUARTUS II工具可完成SOPC的全部设计,QUARTUS II用户能把一个基于NIOS处理器的系统经生成、仿真的编译后,下载到ALTERA的FPGA芯片中,并进行实时评估和验证。SOPC Builder可自动进行开发中的系统定义和集成过程,实现了嵌入式系统的各方面开发,包括研究的设计和验证。SOPC Builder的设计流程为描述系统和生成系统。

SOPC Builder提供了一组图形界面以方便用户描述系统,该界面列出了所有可用的系统模块,设计者在界面中挑选其所设计的系统所需模块,并设置参数,界面本身不生成逻辑或软件,其目标是形成一个“系统描述文件”。

SOPC Builder根据系统描述文件进行操作:(1)对需要软件支持的模块,如NOIS处理器。(2)调用每个模块的生成程序,最终生成一个系统级的HDL文件。(3)创建Modelsim所需的文件,以便仿真使用。(4)系统综合。(5)生成TCL脚本。

3 嵌入式处理器NOIS软核

Altera公司的Nios是基于RISC技术的通用嵌入式处理器软内核,它专为可编程逻辑进行了优化设计,也为SOPC设计了一套综合解决方案。Nios处理器采用16位指令集、16/32位数据通道、5级流水线技术,平均一个时钟周期处理一条指令,性能高达50MIPS。NiosV2.1处理器具有以下主要特征:(1)大容量窗口寄存器堆。其最大可以实现512个内部通用寄存器,编译程序运用内部寄存器可以加快子程序的调用和局部变量的存取。(2)简单完备的指令集。32位和16位的Nios系统都运用16位宽的指令,这减少了代码长度和指令存储区的宽度。(3)强大的寻址模式。Nios指令集包括装载和存储指令,这样编译程序可加快结构体和局部变量(存储栈)的存取。(4)较强的可扩展性。用户可直接把定制逻辑集成入Nios算术逻辑单元(ALU)内,并自动生成包含C语言和汇编语言下访问定制指令硬件的宏指令的软件开发工具包(SDK)。(5)硬件辅助功能。用户可利用硬件的优点去另创一些指令,从而促进指令执行速度。它可以有5条用户定制指令,用户可以把复杂的工作变成一个单一的指令。

4 NIOS Ⅱ软核

Nios Ⅱ是一个用户可配置的通用RISC嵌入式处理器,Altera推出的Nios Ⅱ系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能。把Nios Ⅱ嵌入到Altera的所有FPGA中,例如Stratix Ⅱ、Stratix、Cyclone Ⅱ、cyclone、APEX、ACEX和Hardcopy系列器件中,用户可获得超过200DMIPS的性能,并可以从三种处理器以及超过60个IP核中选择所需要的。Nios Ⅱ系统为用户提供了最基本的多功能性,设计师可以依此来创建一个最适合他们需要的嵌入式系统。使用Nios Ⅱ处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,使得产品快速推向市场,扩展了产品的生命周期,还可以避免处理器的更新换代。

4.1 开发工作流程

(1)初期开发工作:需要软硬件结合处理,对系统进行需求分析。比如:CPU是否需要一个硬件加速乘法器,设计中所需要的外围器件及数量,是否需要DMA通道释放CPU在进行拷贝时所占用的资源;

(2)硬件开发:用SOPC Builder定义Nios Ⅱ处理器系统,用Quartus Ⅱ软件定义器件、分配管脚并编译;

(3)软件开发:C/C++程序开发,开发鼎峙硬件的驱动程序,定义硬件平台为目标进行编译连接;

(4)下载到开发板上进行验证;

(5)成功完成Nios Ⅱ系统设计。

4.2 硬件开发流程

用SOPC Builder来选择合适的CPU、存储器以及外围器件,比如片内存储器、PIO、UART和片外存储器接口。

系统需外接按钮接口时,可通过用户自定义逻辑用VHDL编程来实现按钮并行计数的功能。用户逻辑要与Nios处理器进行通信,需增加片选chipselect和地址address2个信号。其中当chipselect为1时,Nios处理器选中用户逻辑。Nios处理器用地址信号来寻址用户逻辑。通过address信号,用户逻辑才能正确地连到总线上与Nios处理器进行通信。对于独立的用户逻辑,如不需与Nios进行通信,比如实现独立并行计数和显示的功能,则片选信号和地址信号不需要。当在用户逻辑里加入片选信号和地址信号后,SOPC Builder会自动给用户逻辑分配一个基地址。SOPC Builder对系统中包括用户逻辑在内的所有组件统一进行编址,若实例需处理3个按钮并行计数,则地址信号需要2位。2位地址信号可处理4个地址,这里只用3个:00、01和10。地址信号在VHDL中所形成的地址,比如00、01,是相对地址。相对地址与基地址结合在一起,形成绝对地址。比如,第1个按钮的计数值分配到相对地址“00”中,则绝对地址为0x4A0+0﹡4=0x4A0,第3个按钮的计数值分配到相对地址“10”中,则绝对地址为0x4A0+2﹡4=0x4A8,其中0x4A0是系统分配的基地址。在计算绝对地址时,相对地址乘4,因实例实现的是32位Nios处理器,每个寄存器占据32位,而地址是按字节分配的,所以32/8=4。当应用程序访问这些地址时,无论读还是写,片选信号自动被设置为“1”。则应用设计的VHDL程序代码为:

Asicl=(int*)0X4A0;//指定要访问的地址;

Read-datal=*asicl;//读取地址中的内容,则片选信号chipselect自动被设置为“1”。

对于地址信号的选择,则要在应用程序中明确指定,比如上面代码中指定访问的地址是“0x4A0”。实现用户逻辑设计VHDL代码的实体说明部分为:

ENTITYtestIS

port(clock:IN STD-LOGIC

pb-gen-counr1:IN STD-LOGIC;

pb-gen-counr2:IN STD-LOGIC;

pb-gen-counr3:IN STD-LOGIC;

pb-gen-clcar:IN STD-LOGIC;

chipselect:IN STD-LOGIC;

address:IN STD-LOGIC-VECTOR(1 dorwnto0);

count-out:INSTD-LOGIC-VECTOR(7 dorwnto 0);END tesk

实体中结构部分的输出如下,其中的temp1、temp2、temp3是内部信号,用以保存3个按钮的计数值。使用的是并行语句,保证3个按钮可并行计数。count-out<=temp1 when(chipselect=‘1’andaddress=“00”)else

temp2 when(chipselect=‘1’andaddress=“01”)else

temp3 when(chipselect=‘1’andaddress=“10”)else

“00000000”;

需把用户逻辑连接到Nios处理器中,在SOPCBuilder的图形用户界面中,选择添加用户逻辑项,加入用户编写的VHDL文件,同时指定实体说明中各信号的类型。Clock被指定为“clk”类型,Pb-gencounr1等被指定为“expor1”类型,chipselect被指定为“chipselect”类型,address被指定为“address”类型,count-out被指定为“readdata”类型。然后,SOPCBuilder自动生成一个Nios处理器软核及相关外设的源文件。最后工作是编译整个项目,并把生成的后缀为sof的文件下载到开发板上的可编程芯片中。

4.3 软件开发流程

系统软件设计具体工作如下:

(1)在用SOPC Builder系统集成软件进行硬件设计的同时,就可以开始编写C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核加快开发过程;

(2)在Nios ⅡIDE中建立新的软件工程时,IDE会根据SOPC Builder对系统的硬件配置自动定制HAL(硬件抽象层)系统库,这个系统库可以为程序和底层硬件的通讯提供接口驱动程序;

(3)使用Nios ⅡIDE编译调试软件;

(4)在硬件已下载到板上的基础上将软件下载到开发板上并在硬件上运行。

5 结束语

SOPC技术利用IP库,并通过SOPCBuilder可快速生成嵌入式系统,同时,可把用户自定义的逻辑加入到系统中。通过SOPC还可向Nios处理器中添加用户自定义的指令,扩充了Nios指令集,体现了用SOPC设计嵌入式系统的灵活性,快速生成了最终产品,缩短了开发周期。基于系统级FPGA/CPLD的SOPC嵌入式系统的开发设计是一个新课题,需要了解开发设计的方法、普及EDA工具以及获得IP核等。本文对SOPC的探讨对推动SOPC的应用具有一定的实际借鉴意义。SOPC必将在通信、工业控制、计算机相关产品和消费类电子等各个领域中获得广泛的应用。

作者简介:

刘元元(1979-),女,河南平舆人,工程师,学士,现就职于东方电气集团(四川)物产有限公司,主要研究方向为嵌入式工控领域和新能源发电设备。

参考文献:

[1] Anna S. Chiang. 可编程片上系统要求新的设计方法[J]. 半导体技术, 2001, 26 (8) : 5 - 7.

[2] Altera公司. SOPC Builder Data Sheet[M]. 美国: 美国Altera, 2002.

[3] 黄晓林, 蒋伟荣. SoC与IP复用及其应用策略[J]. 现代电子技术, 2003, 159 (16) : 1 - 4.

[4] 黄晓林, 梁玉红. SoC及其应用[J]. 广东自动化与信息工程, 2003, 24 (3) : 7 - 10.

[5] 何立民. 以SoC为中心的多学科融合与渗透[J]. 单片机与嵌入式系统应用, 2001 (5) : 5 - 9.

[6] ALTERA. Nios Development Board Reference Marual[Z]. Cyclone Edition, ALTERA Inc, 2003, 5.

[7] ALTERA. SOPC Builder datasheet[Z]. ALTERA Inc, 2003, 1.

摘自《自动化博览》2023年4月刊

热点新闻

推荐产品

x
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: