基于FPGA的嵌入式的Floorplanner工具的设计与实现

时间:2011-08-23

  可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。 在这两类可编程逻辑器件中,FPGA提供了的逻辑密度、丰富的特性和的性能。 现在的FPGA器件,如Xilinx Virtex?系列中的部分器件,可提供八百万"系统门"(相对逻辑密度)。 这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种的超快速器件至器件(device-to-device)信号技术。 FPGA被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等。与此相比,CPLD提供的逻辑资源少得多 - 约1万门。 但是,CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。 而且如Xilinx CoolRunner?系列CPLD器件需要的功耗极低,

  目前世界上具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU,MPU等30多个系列。鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为了未来嵌入式领域的一大趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。目前嵌入式处理器的寻址空间可以从64kB到16MB,处理速度快可以达到2000 MIPS,封装从8个引脚到144个引脚不等。

  本文将讨论如何在一个集成了PowerPC内核、一个DDR内存控制器以及一个LCD控制器的嵌入式系统的开发过程中采用Floorplanner。在图1中,DDR内存控制器通过一个高速处理器本地总线(PLB)与PPC相连,因而在该系统中可以通过高速内存访问来实现指令和数据传输。LCD控制器对带宽要求较低,可以通过较低速的片上外围总线(OPB)与PPC连接,OPB通过一个PLB到OPB桥将低速的外围内核与PLB相连。图中还显示了两个片上存储控制器和BRAM的用法,这是一个很重要的特性。

  系统生成

  我们可以采用系统生成器来定义所需处理器以及相关控制器的参数,从而简化嵌入式系统的设计和创建,并产生嵌入式系统的源设计。同时,系统生成器还能产生系统启动所需的软件头文件。

  对硬件设计工程师而言,系统生成器能够创建系统中关键部件安装时所需的所有文件,并能使外围器件定义、外围器件创建、以及处理器上数百个管脚与外围器件和系统总线的连接自动进行。对于开发工程师而言,系统生成器在进行HW/SW系统权衡时能提供很大帮助,而且还能解决软硬件优化的问题。

  如何利用Floorplanner

  很多EDA厂商都提供的另一种工具是Floorplanner,硬件设计工程师利用该工具可以控制摆放那些与他们所感兴趣的功能相关的逻辑,并且在功能实现后立即查看器件内的布局线路情况。以嵌入式系统为例,Floorplanner可以帮助设计工程师查看和(或)控制处理器以及相关外围器件的摆放,这些外围器件的布局可能对满足设计性能要求非常关键。

  PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器CPU 到嵌入式 CPU 市场。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与台式机CPU 存在非常显着的区别。例如,4xx 系列 PowerPC 处理器缺乏浮点运算,并且还使用一个受软件控制的 TLB 进行内存管理,而不是象台式机芯片中那样采用反转页表。 如图2所示。要想控制这类布局,简单的方法也许就是采用Floorplanner工具。

  Floorplanner应用恰当时能够提升嵌入式系统的性能,但若应用不当则会降低系统性能。因此,用户要想成功地应用该工具,还应该注意以下几点建议:

  1. 硬件设计工程师在采用Floorplanner对硬件开始布局之前,必须清楚了解设计和目标结构,这对正确的设计布局和硬件资源利用非常关键。

Floorplanner工具在基于FPGA的嵌入式系统设计中的应用

  2. 在对FPGA进行物理布局时必须优先考虑I/O。如图3所示,控制信号I/O应该放在FPGA的顶部或底部,数据总线I/O应放在左侧或右侧,这样才能保证有效地利用FPGA的布线资源,并地优化性能。

  3. 算术功能在FPGA中通常利用专用的进位链来实现,进位链在一个特殊的垂直方向上运行。例如,一个10位计数器的进位链就在从器件底端到顶端的垂直方向上运行。因而,设计者可以将其总线的LSB置于器件的底部而将MSB置于顶部,充分利用进位链的方向性。

  4. Floorplanner根据逻辑层次的不同来显示逻辑单元,因而很容易将逻辑单元划分为公共的组或区域。这种根据层次分组的方式利用了本地布线资源,因而能够降低信号延迟,提高电路性能。

  5. 如图4所示,交替地放置相关的总线。硬件设计工程师可以通过交替放置相关的I/O总线来降低信号延迟,但只有在这样的处理不增加额外的逻辑单元时才有意义。需要提醒的是,在进行布线决策时一定要把整个设计看作一个整体。

  硬件设计工程师在嵌入式系统设计中适当注意以上几点,就能轻松地对一个设计进行组织和规划。在对嵌入式系统进行底层规划之前,设计工程师必须首先给不同的组分配逻辑资源。组通常都是基于设计层次的,设计层次为嵌入式系统提供了一个自然的边界,Floorplanner可以利用这个边界轻松地进行组创建。系统生成器在创建系统的每一个模块时均相应创建了独特的分层参考,这就使得嵌入式系统的组定义变得非常简单。

  设计版图约束

  Floorplanner提供了三种方法来约束逻辑模块和逻辑组的物理位置分配:

  1. 种方法就是将逻辑部件置于一个特定的物理位置,或放在某个特定的元件内部。例如,数据总线的一个输出(以第10位为例)可以分配给器件的第37脚。但这类分配没有灵活性,布局工具和布线工具必须将第10位的输出驱动置于器件管脚37中。这种方法还可以用于布局和分配一组逻辑部件。

  2. 第二种方法是将某个逻辑单元或逻辑组分配给一个物理区域。通常采用的都是这种方法,因为它允许布局工具和布线工具移动某区域组内的逻辑单元,以实现的布局和布线。为了优化系统设计,功能更强大的Floorplanner工具还支持组间重叠,以及在一个经过底层规划的区域实现不经底层规划处理的逻辑。

  3. 第三种方法是创建关联布局宏(Relationally Plalced Macro, RPM)。RPM定义了各逻辑单元之间的相对版图设计,但准确的布局是由布局和布线工具决定的,这样可以得到的设计性能。例如,一个查找表(LUT) 可以与一个触发器置于同一块(slice)内,而一个块又可以直接置于另一块之上。RPM使设计工程师能够控制某些特定模块的布线,但并没有严格地限制布局和布线工具。

  通过在嵌入式系统设计中应用以上提出的建议和方法,硬件设计工程师就能控制某些特定部件的布局,改善器件的整体布线(通过利用区域性分组),并控制某些特定部件之间的相对布局(通过采用RPM)。

Floorplanner工具在基于FPGA的嵌入式系统设计中的应用

  应用举例

  图5采用了PPC 405来说明上面所述方法和建议,该应用是包含了2个UART和一个BRAM控制器的嵌入式设计。

  在该设计中,系统生成器创建层次边界,而逻辑组则在这些边界的基础上创建。为PLB仲裁器、UART和BRAM内存控制器均可创建区域组(area group)。将BRAM和PPC 405限制在特定位置,以使设计达到性能。应该注意的是,在分配一个区域组时,必须为该区域中的逻辑单元分配足够的资源。而当 Floorplanner的功能更强大时,还能为用户提供每个区域组所需的资源。

  在分配资源时,BRAM内存控制器被置于硅片的中央,这样可以对所有BRAM元件以及PPC 405内核进行同等的访问。在本设计之中BRAM中包含了PPC 405内核所需的数据和指令。UART1和UART2的位置在IO附近,以尽可能减少输入到时钟和时钟到输出的时间。设计中有两个PLB接口,一个是 CPU指令端PLB接口,另一个是CPU数据端PLB接口。

  分配给每一个区域组的逻辑单元均根据区域约束进行布局,而且为提高设计性能,还在设计中混入了额外的逻辑单元,这也正说明了为什么在每个区域组分配时都要保留一定的额外空间的原因。


  

参考文献:

[1]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.


上一篇:鼎实科技PROFIBUS总线桥和IO在仓库中的应用
下一篇:介绍太阳能光伏工程网络无线监控系统及CDM

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料