现场可编程门阵列FPGA(Field Programmable Gate Array)是美国Xilinx公司于1984年首先开发的一种通用型用户可编程器件。FPGA内部由可绾程逻辑单元阵列、布线资源和可编程的I/O单元阵列构成,包含丰富的逻辑门、寄存器和I/O资源。目前,面向大规模可编程器件附的广泛应用,正在不断地加速电子设计技术从硬件电路设计向“软”设计的过渡。Altium Designer是传统电路设计软件Protel的高端设计版本,除了具备基本的电路原理图设计和PCB设计功能外,它的特色主要在于增强了FPGA开发功能,将电子产品的板级设计、可缩程逻辑设计和嵌入式设计开发融合在一起。
传统的FPGA系统设计多是基于硬件描述语言VHDL或者Verilog来完成的,需要开发者具备一定的硬件描述语言知识,而且这种方式的设计就可读性而言具有一定的复杂度。Altium Designer提出了一种系统级的设计概念——OpenBus系统,这是一种全新的系统级的FPGA设计方法。这种设计方法避开了传统的FPGA设计中用硬件描述语言来编程、仿真和验证等步骤,以更加抽象的方式表示了处理器与外围设备间的互联,降低了FPGA设计的复杂度,简化了FPGA设计。
Altium Designer的创新电子设计平台NanoBoard 3000提供了将嵌入式智能作为设计核心的设计环境,在这个平台上可以调试、下载FPGA嵌入式设计,实现电路硬件设计和基于“软核”处理器的嵌入式软件设计。
1 基于OpenBus系统的设计要素
1.1 OpenBus瞄系统
“OpenBus系统”是一个描述一种使用普通总线实现整个系统内逻辑功能性“模块”连接的术语。通过这种方法,用户能够很快地装配一个包含满足应用需求的各种功能在内的系统。具体来说,OpenBus系统是Altium Designer软件自带的高端IP模块,包含Connectors(连接器)、Processors(处理器)、Memories(存储器)、Peripherals(外围设备)等,如图1的OpenBus Palette面板所示。设计时可以根据设计需求,直接在OpenBus Palette面板调用相关的IP模块,即OpenBus器件,连接构成设计系统。但要注意的是,这些IP模块在调用后,还需要进行相应的参数配置才能使用。这种OpenBus系统的设计方法与传统的将处理器和外围电路作为元件放置在电路板上不同,它移除了所有低级别的走线和互连细节,能够快速地构建系统。
1.2 FPGA设计元件库与软件平台搭建器
除了OpenBus Palette面板中的OpenBus器件,要完成FPGA嵌入式设计,还需要使用Altium Designer软件中的FPGA设计元件库。这些元件库提供了FPGA设计中所需的外围器件。Altium Designer软件提供的常用的FPGA设计元件库有:FPGA NB3000 Port-Plugin.IntLib、FPGA Peripherial.IntLib、FPGA Generic.IntLib、FPGA Configumble Generic.IntLib、FPGA Instruments.IntLib等。
与OpenBus系统配合进行FPGA嵌入式设计的,还有软件平台搭建器SwPlatform。因为进行FPGA嵌入式设计时,FPGA器件的外围引脚常需要驱动如LED、触摸屏、扬声器等硬件设备。而要使这些硬件设备能正常工作,就要在设计中包含相应的驱动代码。这些硬件的驱动代码无需自行编写,Altium Designer的软件平台搭建器SwPlatform可以把所有连接外设所需的低阶驱动代码整合一起。软件平台搭建器SwPlatform采用图形化方式连接用户的应用程序与底层硬件。在进行FPGA设计时,软件平台搭建器SwPlatform可以自动地由FPGA设计的硬件部分获取底层硬件的信息。如图2所示,软件平台搭建器SwPlatform自动根据底层信息(Wrapper,栈层中的HARDWARE部分)提供对于硬件的驱动(Driver,栈层中的SOFTWARE PLATFORM部分)以及服务程序(Context,栈层中的APPLICATION CODE部分)。设计时只需关注构建设计本身的应用程序代码,不需要考虑过多的底层驱动代码。
|