0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Floorplanner工具提高嵌入式处理器系统的性能

电子设计 来源:郭婷 作者:电子设计 2019-05-13 08:06 次阅读

通过在可编程逻辑器件中嵌入低成本、高性能的处理器芯片开发商不但能提高系统的整体性能,而且能够从可编程逻辑器件原本就具备的开发时间短、上市快的特点受益。利用本文谈到的Floorplanner工具可以对嵌入式处理器、相关的IP和定制逻辑进行布局控制和分组,简化复杂系统级芯片的开发,提高系统整体性能。

嵌入式处理器内核越来越多地在FPGA设计中得到采用,人们开始认识到高级可编程逻辑所带来的好处。通过将低成本高性能的嵌入式处理器内核与可定制的FPGA电路配合使用,电子设备生产商能为其特定的产品量身定制芯片,从而以较低的成本和较快的速度将产品推向市场。但若想合理地采用这项先进技术,设计者需要功能强大的工具才能满足设计要求。 Floorplanner即是适合这类应用的一种工具,它允许设计者控制嵌入式处理器、相关IP以及定制逻辑的布局和分组,从而简化复杂的系统级芯片的开发过程,并提升系统的整体性能。

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

利用Floorplanner工具提高嵌入式处理器系统的性能

图1基于PowerPC 405的嵌入式系统框图

系统生成

我们可以采用系统生成器来定义所需处理器以及相关控制器的参数,从而简化嵌入式系统的设计和创建,并产生嵌入式系统的源设计 (通常包含一个处理器内核、几个总线结构以及现有的IP)。同时,系统生成器还能产生系统启动所需的软件头文件。有了这些工具,软、硬件设计工程师就能同时并行地进行嵌入式系统开发。

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

如何利用Floorplanner

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

如前所述,PowerPC 405内核中包含一个片上存储(OCM)控制器,该OCM控制器既能提供到64位指令BRAM(ISBRAM)的接口,也能提供到32位数据BRAM (DSBRAM)的接口,它最多能寻址16MB的DSBRAM和16MB的ISBRAM。OCM控制器最大的优点是能够保持一个固定的执行时延。为了满足 FPGA的时序的要求,硬件设计工程师必须控制OCM BRAM相对于OCM控制器接口的摆放位置:DSBRAM必须放在PPC405核之上,而ISBRAM必须置于PPC405之下,如图2所示。要想控制这类布局,最简单的方法也许就是采用Floorplanner工具。

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

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

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

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

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

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

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

设计版图约束

利用Floorplanner工具提高嵌入式处理器系统的性能

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

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

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

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

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

应用举例

利用Floorplanner工具提高嵌入式处理器系统的性能

图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接口。因此,PLB仲裁器被放在PPC 405内核旁边。

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19165

    浏览量

    229145
  • 嵌入式
    +关注

    关注

    5068

    文章

    19019

    浏览量

    303308
  • 可编程逻辑
    +关注

    关注

    7

    文章

    514

    浏览量

    44072
收藏 人收藏

    评论

    相关推荐

    嵌入式linux培训之嵌入式微处理器的选择

    影响应用软件的编制、调试工具的选择以及产品性能等。目前嵌入式操作系统非常多,而主要的几款产品,如VxWorks、Windows CE、Linux及Android等,都支持基于ARM微
    发表于 07-03 18:30

    如何提高FPGA嵌入式处理器系统除错率?

    硬件和软件除错能力。一方面,它支持FPGA内部嵌入式处理器的全方位软件除错。另一方面,它还支持监视FPGA硬件讯号。 如何利用F-Sight提高除错效率?这个问题急需解决。
    发表于 09-17 07:42

    嵌入式微处理器如何选择

    支持嵌入式系统越来越复杂,所以采用嵌入式操作系统来管理整个系统也越来越普遍。在选择微处理器芯片时
    发表于 05-20 11:11

    如何利用Floorplanner工具

    本文讨论如何在一个集成了PowerPC内核、一个DDR内存控制以及一个LCD控制嵌入式系统的开发过程中采用Floorplanner
    发表于 04-30 07:02

    嵌入式处理器是什么

      嵌入式处理器嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器
    发表于 10-27 07:24

    嵌入式处理器嵌入式操作系统

    嵌入式处理器嵌入式操作系统 1.2.1 嵌入式微处理器    嵌入式
    发表于 06-17 00:30 1997次阅读

    如何构建基于处理器嵌入式安全系统 

    嵌入式安全系统概述;嵌入式系统安全技术;安全应用处理器介绍 ;基于安全处理器
    的头像 发表于 01-25 07:06 2537次阅读
    如何构建基于<b class='flag-5'>处理器</b>的<b class='flag-5'>嵌入式</b>安全<b class='flag-5'>系统</b> 

    嵌入式系统教程之嵌入式处理器的详细资料说明

    本文档的主要内容详细介绍的是嵌入式系统教程之嵌入式处理器的详细资料说明包括了:1 硬件子系统的组成,2
    发表于 06-14 17:14 18次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>教程之<b class='flag-5'>嵌入式</b><b class='flag-5'>处理器</b>的详细资料说明

    嵌入式处理器是怎样分类的

    嵌入式处理器分为嵌入式微控制器(MCU),嵌入式DSP处理器(DSP),嵌入式微处理器(MPU)
    发表于 10-05 17:39 4748次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>处理器</b>是怎样分类的

    Synopsys推出64位嵌入式处理器性能提高3倍

    Synopsys发表公告,表示将推出新的64位ARC处理器IP,可将高端嵌入式应用的性能提高3倍。
    发表于 04-20 10:31 857次阅读

    常见的嵌入式处理器分类对比

    嵌入式 CPU。 自微处理器的问世以来,嵌入式系统得到了飞速的发展,嵌入式处理器毫无疑问是
    的头像 发表于 10-30 10:22 1470次阅读

    嵌入式控制系统的ARM处理器

    嵌入式控制系统的ARM处理器一、嵌入式硬件系统概述1、嵌入
    发表于 10-20 13:21 3次下载
    <b class='flag-5'>嵌入式</b>控制<b class='flag-5'>系统</b>的ARM<b class='flag-5'>处理器</b>

    嵌入式处理器

      嵌入式处理器嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器
    发表于 10-20 17:21 1次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>处理器</b>

    嵌入式处理器

      嵌入式处理器嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器
    发表于 10-21 13:36 3次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>处理器</b>

    嵌入式处理器有哪些种类 目前主流的嵌入式处理器架构有哪些

     嵌入式处理器是专门设计用于嵌入式系统的微处理器,它们通常具有低功耗、小尺寸和多种集成功能的特点。以下是一些常见的
    发表于 07-24 14:57 9586次阅读