基于SoPC Builder的电子系统的开发
扫描二维码
随时随地手机看文章
摘要:从系统总线设计、用户自定义指令和FPGA协处理器的应用这三个方面详细介绍了如何应用SOPC设计思想和SoPC Builder工具来开发电子系统。通过应用SOPC Builder开发工具,设计者可以摆脱传统的、易于出错的软硬件设计细节,从而达到加快项目开发、缩短开发周期、节约开发成本的目的。
关键词:SoPC;SoPC Builder;FPGA
O 引言
随着科学技术的进一步发展,SoC设计面临着一些诸如如何进行软硬件协同设计,如何缩短电子产品开发周期的难题。为了解决SoC设计中遇到的难题,设计方法必须进一步优化。因此,人们提出了基于FPGA的SoC设计方案——SoPC(System on a programmable chlp)。随着百万门级的FPGA芯片、功能复杂的IP核和可重构的嵌入式处理器软核的出现,SoPC设计成为一种确实可行的、重要的设计方法。
Altera公司在其开发工具QuartusⅡ中集成了SoPC Builder工具。在该工具的辅助下,设计者可以非常方便地完成系统集成,软硬件协同设计和验证,最大限度地提高电子系统的性能,加快设计速度和节约设计成本。
1 SOPC Builder工具的简介
SoPC Builder是一个自动化的系统开发工具,它能够极大地简化高性能SoPC的设计工作。该工具提供一个直观的图形用户界面,用户可以通过图形界面简化系统的定义工作。由于SoPC Builder不需要直接编写HDL代码来定义系统,这极大地节约了设计开发时间。SoPC Builder为每个元件提供了一个向导,利用该向导能很容易地定义元件功能。例如通过向导能够非常容易地在一个设计中加入Nios处理器,外设接口等。为了将徽处理器核、外围设备、存储器和其它IP核相互连接起来,SoPC Builder能够自动生成片上总线和总线仲裁器等所需的逻辑。通过自动完成以前易于出错的工作,SOPC Builder可以节约几周甚至几个月的开发时间。SoPC Builder在一个工具中实现了嵌入式系统各个方面的开发,包括软件的设计和验证,为充分利用SoPC技术提高电子系统的性能和降低成本提供了强有力的支持。本文将从系统总线的设计、用户自定义指令、FPGA协处理器的应用这三个不同的方面展开讨论,介绍如何利用SoPC Builder加快电子系统的开发。
2 系统总线的设计
系统总线主要解决多个主控制器相互连接、协调工作和资源共享的问题。例如一个系统包含多个处理器,或是一个处理器和一个具有DMA控制器的外围设备时,SoPC Builder会自动生成总线仲裁逻辑,使得这些处理器和DMA控制器能够共享从属外围设备或存储器。SoPCBui-lder运用了一项被称为从属设备仲裁的技术,该技术允许多个主控制器同时访问数据。除非多个主控制器同时存取同一个从属单元,否则仲裁逻辑不会拒绝任何一个主控制器的访问。运用 SoPCBuilder图形用户界面可以非常方便地指定仲裁优先级。SoPC Builder将自动生成—个与目标硬件相匹配的软件开发环境,在此过程中还自动生成—个相关的头文件和整个系统的仿真模型,包括ModelSim工程文件、标准化总线接口波形文件和验证基于目标硬件的testbench文件。
运用DMA技术能够提高数据读取速度以增强系统的性能,从而使系统能够更充分地利用CPU或总线的带宽。这一设计思想在SoPC Builder中通过创建特定功能的外围设备进一步加强。用户自己可以定义用Verilog或VHDL语言描述的逻辑,并把它们加人到SoPC Builder的开发环境中。在图形用户界面的交互下,SoPC Builder会自动为这些用户定义的逻辑创建必要的总线接口,使DMA控制器能够访问这些用户定义的外围逻辑。在数字信号处理领域,快速傅立叶变换或离散余弦变换就是很好的例子。这些变换对数据的处理是基于数据块进行操作的。DMA控制器从系统外部读取数据,并把数据存储到预处理存储单元中。这一过程不需要处理器的干预,因此在这一期间处理器可以完成其它事情。等到DMA接收完数据后,处理器从预处理存储单元中读取数据进行处理,而DMA则把刚才处理器的处理结果读出来送到指定的外围设备中,并且继续接收数据。在这样的系统中,总线起到至关重要的作用。设计这样的系统总线是一件非常繁琐而且极易出错的事情。现在这一切都由SoPC
Builder工具自动生成,大大地减轻了设计者的负担,提高了设计效率,加快了电子系统的设计速度。
3 用户自定义指令
当数据块比较小而且处理过程已确定时(只需几个确定的CPU指令周期),最有效的处理方法是通过SoPC Builder为Nios处理器自定义用户指令来实现。设计者可以直接在Nios处理器的算术逻辑单元(ALU)中加入具有特定功能的组合或时序逻辑块,然后在SoPC Builder中将这些特定功能的逻辑块和用户自定义指令联系起来,通过Ra和Rb两个寄存器来实现。处理器的处理结果存储在Ra寄存器中。这些用户定义的功能仅由器件中的逻辑单元决定。在系统生成时,SoPC Builder自动为每一个用户定义的指令创建一个宏。软件通过在Nios嵌入式处理器指令集中用户自己定义的操作码来访问这些特定功能硬件。由于采用硬件实现复杂的算术逻辑运算比用软件更快捷、更高效,因此设计者在设计电子系统时应该着重考虑系统内部重要的循环运算,让这一部分尽量用硬件来实现,把原先需要几个指令周期才能实现的循环运算减少到只需一个指令周期就能实现。例如在循环冗余校验计算中,设计者可以用非常简单的硬件逻辑来代替需要多行软件代码才能完成的工作。这样,原来需要多个时钟周期才能完成的工作在一个时钟周期内就完成了。在创建或编辑Nios处理器时,将这部分硬件逻辑添加到处理器算术逻辑单元中,并为该逻辑块定义—个指令。然后为该指令选择操作码,并导入描述这一硬件逻辑的HDL文件。SoPC Builder向导会自动扫描顶层模块的端口,产生相应的连接。最后,向导会为用户定义的指令分配所需的CPU时钟周期并命名这些指令。
4 FPGA协处理器的应用
在进行复杂的数字信号处理时,利用协处理器能够大幅度地增强数字信号处理器的处理能力。因此在某些应用领域中,软件开发者会利用硬件协处理器来减少各种复杂的数学运算,包括Viterbi解码、Turbo编解码、离散余弦变换等。与传统基于DSP处理器的结构相比,整合FPGA协处理器和DSP处理器的系统在性能上提高了1O倍,开发费用却只有原来的1/10。作为数据的接收和发送者的FPGA协处理器可与DSP处理器相连接,这一结构以处理特定数据流的硬件加速器为典型代表。在数字信号处理数据流中,FPGA协处理器可对数据流进行预处理和后处理。当需要处理的数据速率超过了DSP处理器所能处理的范围时,这种结构明显地体现出其优越性。它可以大大地提高系统的性能,减少设计开发成本。
由Altem公司定义的协处理器至少包含一个控制接口和一个数据接口。处理器或DSP可以用控制接口来设置协处理器并且监视它的工作情况,用数据接口与存储器、外围设备或其它协处理器交换数据。系统开发者先创建FPGA协处理器,然后将该协处理器导入到SoPC Builder开发环境中,使之能够非常方便地集成到整个设计系统中。在整个开发过程中,SoPC Builder可以自动为每个处理器单元或系统接口生成软件开发组件,成功地解决了系统开发中软硬件协同设计的问题。软件开发组件增强了软件驱动能力,使得所有功能模块对该处理器是可见的。总之,通过创建FPGA协处理器可以极大地提高系统的性能,减少开发成本,缩短设计周期。
5 结束语
SoPC是当前IC设计的发展主流,代表了半导体技术和ASIC设计的未来。Alters公司将SoPC设计思想集成到其开发工具SoPC Builder中,极大地提高了电子工程师的设计效率,加快了电子系统的开发速度,节约了设计成本,缩短了设计周期。