随着通信、电子、控制等应用领域的不断发展,高性能信息处理系统的需求日益增长,这种系统的高性能主要体现在:
(1)要求大数据量、大计算量的高速处理;
(2)要求系统具有可针对应用环境变化的自适应;
(3)要求系统小型化、低功耗。
但是,在传统的信息处理系统设计中,由于要考虑到复杂的外围电路,包括PCB板上芯片之间的布线延时与干扰,以及本身的体积和重量等因素,从而使得整机系统的性能受到了很大的制约,显然无法满足上述要求。
可重构计算技术概述
随着现代计算机技术和微电子技术的迅猛发展以及半导体材料生产工艺的不断提高,将传统微处理器与可编程器件集成在一起的可重构计算技术(Reconfigurable Computing,RC)已成为国内外IT技术界的研究热点之一。基于可重构计算技术实现的多型微处理芯片体系结构能够很好地利用未来半导体技术提供的能力,在解决应用的多样性问题的同时,还可解决片上资源利用率低、设计复杂、系统可靠性差以及成本功耗高等多方面的问题。
可重构计算是通过现场可编程门阵列(Field Programmable Gate Array,FPGA)来实现的。FPGA是美国Xilinx公司于1985年发展起来的一种可编程的大规模集成器件。目前FPGA中的逻辑单元数量已经超过800万个门电路,其有密性好、体积小、重量轻、可靠性高、功耗小等一系列优点。
FPGA各方面的特点正促使其逐渐取代ASIC市场。基于FPGA器件的可重构计算技术已引起IT技术界的格外重视,是当今半导体科学、电子工程和计算机科学的前沿研究领域。
FPGA在数字电路设计中存在的问题
随着器件规模、实现功能以及可靠性的不断提高,FPGA在现代数字系统中的应用日益广泛,采用FPGA设计数字电路已经成为数字电路系统领域的主要设计方式之一。
但是,对于复杂的系统来讲,比如系统本身具有很多种状态,或者带有很多外设的系统,纯粹采用基于硬件的FPGA来实现大型集成电路还是比较困难的。因此,通常是把一个微处理器嵌入到FPGA芯片中,用来控制各种状态的切换,协调各个外设之间的同步以及实现对任务的调度,处理器在片上系统集成时起重要的控制作用。
为此,笔者提出一种新颖的基于NIOS II软核处理器的PWM控制器设计方法:运用可编程单芯片系统( SOPC )设计技术,将NIOS II软核处理器与脉宽调制(PWM)控制器结合,在ALTEA FPGA中集成PWM的同时,还可以在芯片上实现其它的系统功能,体积更小,成本低,可靠性高,更适合嵌入式系统的要求,而且具有现场可编程性。
NIOS II软核处理器
NIOS II软核处理器是Altera公司推出的嵌入在其FPGA内部的32位软核处理器,它的可配置程度很高,可以将外部存储器(包括ROM、RAM )、PS/2(鼠标键盘)、以太网控制器、IDE驱动器、SB接口甚至红外适配器等外部设备连接在一起,协调它们之间的多机协同和数据共享,必要的时候还可以在NIOS II软核中加入实时操作系统,来实现对多任务的调度。而且NIOS价格便宜,设计灵活,因此正获得越来越广泛的使用,目前已经在以太网接入、信号采集处理等方面得到成功的应用。
基于NIOS II的PWM 控制器设计
按照软硬件协同设计的思想,在SOPC设计中分硬件设计(主要用硬件描述语言 Verilog HDL等实现)和软件设计。
1.PWM逻辑的硬件设计
PWM由以下几个功能模块组成:(1)任务逻辑。任务逻辑完成该PWM元件的基本功能,是系统最关键的部分。(2)寄存器定义。寄存器提供任务逻辑与外界交换信息的途径。通过访问控制寄存器的值,用户可以对Avalon接口的外设进行控制。(3)Avalon 接口。Avalon接口是为SOPC集成提供标准的连接关系,使系统通过Avalon总线来访问寄存器,从而外设与Avalon总线的元件进行通信。
2.PWM 任务逻辑的设计
PWM 任务逻辑结构如图所示,由时钟(CLK)、输出信号(PWM_OUTPUT)、使能寄存器、32位计数器以及32位的比较电路等组成。CLK作为32位计数器的时钟信号,32位比较电路比较 32位计数器当前值与占空比设定寄存器(Duty Value Register)中的值来决定 PWM输出信号输出高或低电平。当当前计数器的值小于或等于占空比寄存器时,PWM_OUTPUT输出低电平,否则输出为高电平。考虑到PWM的周期的控制,需要产生一个基准的可控制周期的时钟信号,用 PWM周期设定寄存器(Period Value Register)来设置PWM_OUTPUT的信号周期。当当前计数器的值等于Period Value Register中的设定值时,产生复位信号来清除计数器中的值。使能控制寄存器(Enable Control Register)控制时钟信号CLK有效或无效,即控制计数器记数与否,从而控制PWM_OUTPUT的输出。
3.PWM 寄存器逻辑设计
在设计的PWM内部包括:使能控制寄存器(Enable Control Register)、周期设定寄存器(Period Value Register)以及占空比设置寄存器(Duty Value Register)。将3个寄存器映射到Avalon端口地址空间内的单独的偏移地址。每个寄存器都能被读写,为了能访问这些寄存器,需要设计两位地址,从而产生4个地址空间。PWM 寄存器逻辑设计如表所示。
4.PWM Avalon接口逻辑的设计
在SOPC Builder工具中,由于外设逻辑连接采用Avalon总线方式通信,所以必须设计Avalon接口,PWM作为外设,它在系统中是从外设受处理器的控制,按照Avalon接口规范来设计Avalon Slave信号来对PWM寄存器进行读写操作。其中,PWM的Avalon Slave端口与总线Avalon Slave端口的时钟信号同步,读写时间和保持时间为 0,因为读、写寄存器仅需要一个时钟周期,所以端口读写时为零等待操作且不需要延迟。因为Avalon Slave端口直接连接到寄存器,所以是静态地址对齐。当Avalon Slave端口不是连接到寄存器而是采用动态地址对齐时,操作时序要做相应的改变。
5.PWM的软件设计
由于在硬件开发中 NIOS II CPU及其外设构成的系统是自定制的,片外存储器、外设地址的映射等各不相同,因此需要相应的软件开发环境,从而将SOPC Builder 中生成的系统硬件结构转化成软件编写的系统头文件。
在开发过程中使用的是NIOS II集成开发环境(IDE)。NIOS IDE是NIOS II嵌入式处理器的基本软件开发工具,它采用了开放式、可扩展的Eclipse工程,所有软件的开发任务都可以在NIOS IDE下完成,包括编辑、编译和调试程序。PWM软件的实现是一个应用程序的编写,其功能是读出和写入PWM的3个寄存器中的值,从而来控制PWM的输出。
这部分需要考虑的主要问题是访问连到NIOS II Avalon 总线上的用户逻辑。通过前面Avalon接口信号的定义,SOPC Builder 会自动给这个用户逻辑一个地址,因此对此用户逻辑的访问控制就是对分配给这个用户逻辑的地址的访问。PWM控制的软件主要包括:PWM初始化,参数设定、输出控制等。
综上所述,结合当前大型集成数字电路的设计及应用现状来看,NIOS II是一个高性价比的嵌入式处理器,将它与SOPC技术结合,能够为外设接口设计提供一种高效、灵活、低成本的解决方法。