可配置片上系统设计流程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可配置片上系统设计流程

摘要:这章主要讲述异构可配置片上系统自顶向下设计流程。设计流程主要关于系统级设计到后端独立设计技术问题。重点是讲述可配置,尤其是系统级设计中现有流程不涉及到的方面。

1简介:

异构片上系统与嵌入式可配置资源的结合组成一个有效解决无线通信和多媒体系统的方案。这是因为他们提供了可配置硬件的同时还提供了类似普通指令集处理器用于一般用途的硬件架构和专用集成电路。更重要的是有些片上系统可以通过可配置资源(资源类型和密度)完成实际用途和设计目标。

图4.1给出异构可配置片上系统的简图,片上系统通常包含指令集处理器(一般用于,DSP,ASIP专用指令处理器),专门的硬件模块,可配置硬件模块。嵌入式可配置模块即可以在粗粒(字级粒度)或FPGA(位级粒度)。不同的处理单元通过总线交流,然而目前的趋势是片上网络通信(处于可扩展性,灵活性,功耗问题的讨论)。

设计一个可配置硬件的片上系统不是一个繁琐的活。为了取得一个有效实现,一个多余设计流程是需要的,这个多余的设计是为了处理在大规模商用平台上的可配置方面。此外,一个高抽象层次设计方法需要用于帮助决定技术实施的实例,细粒和粗粒可配置硬件都需要。

这些设计方法的需求和准则在其他章节讨论。必须指出的是设计流程和在剩下章节讲述的高级设计方法一样用于现成FPGA包括嵌入式

硬连线模块(包块软件处理和专用集成电路)。

2 可配置片上系统设计要求

引进可配置片上系统资源需要对传统设计流程的修改和扩展,重点在于高层次抽象,这里产生了最重要的设计决定。在这部分,传统系统级设计流程简要讲述,可配置片上系统系统级设计流程要求将被讨论。

2.1 传统系统级设计流程

随着片上系统设计的发展,系统级合作设计方法需求也正在增长。学术和商业资源为一系列应用领域提供协同设计方法/工具,在不同的自动化程度和成熟水平上进行软硬件划分,综合,仿真和验证机制。

随着系统规范受到关注,一系列的语言(HDL,面相对象,专门语言)正在用于系统级规范。一些设计方法正结合这些语言,是为了正确描述系统设计的硬件或软件部分。但是目前的趋势是用一种能在高层次抽象代表系统的描述语言去规范系统设计规范。

硬件与软件划分目的是为了优化软件和硬件组件的系统功能配置。与此对应的是,最有效的方法是提供在不同层次模型上的划分,无需重写硬件和软件规范。这不仅减少设计迭代步骤,但是也使预定义或IP块的包含变得容易。

在协同综合中应该考虑的最重要特征是接口综合的可能性。在不同设计方法中会谈到不同的可能进程间通信原语。他们即可以固定在特定的设计方法,也可以和现有的原语创造出可能性选择的新原语。

联合仿真技术从基于设计特定仿真引擎的商业仿真到多种仿真

引擎工具的结合。大多数的设计依赖的仿真器基于事件驱动仿真,而其中一些可以与其他仿真器一起实现联合仿真。

协和验证主要是基于仿真的,这意味着HDL,ISS,专有的仿真在协同设计流程的不同层次的正确功能和时序在初始规范的比较。一些方法可以通过图形工具或者专用的用户界面环境进行调试。

最具有代表性的系统级硬件或软件协同设计方法典型特征列于表4.1.

先前的已经提到段落指出一个自然结果,一般传统系统级设计流程包含下面几个重要阶段:

系统规范

硬件或软件的划分和映射

结构级设计

系统级仿真(总线周期精准)

硬件和软件的使用工具由技术供应商提供。

2.2 可配置片上系统系统级设计流程要求

嵌入式可重构资源影响系统级设计主要流程,这部分将要讲述多余要求。

2.2.1系统规范

在系统规范这一阶段,当不需要使用可配置资源时要求,限制,和规范聚集在一起,但是必须花费额外精力确认充当可配置硬件的实现应用中的部分。采用可配置硬件在结构设计任务和划分,映射任务带来新的方面。在结构设计任务中,一个新的结构元素将要被介绍。

在结构设计空间中,可配置硬件可以被当作一个时间片调度的特定硬件模块的应用。在结构中纳入可配置部分意味要用一简单可配置模块取代一些硬件加速器。在他们被有效使用之前,可配置模块的面积,速度,和功耗都应该被完全了解。

2.2.2 硬件/软件划分和映射

在这一章节,一个新的层次被加到问题中讨论。在可配置硬件中的那部分目标系统必须被确认。这里有一些应该遵循的经验法则提供了一个简单的这个问题的解决方案。

如果应用中有几个大致相同大小硬件加速器没有同时运行或者不是在满负载运行,一个动态的可配置模块比硬连线可以是一个很可有效的解决方法。

如果应用中有一些规范的变化是可预见的,那么可实施选择就是可配置硬件。

如果新一代应用中有一些可预见的计划,那么这些改动的部分可以由可配置硬件完成。

更重要的是,对于可配置硬件的设计,不需考虑面积,速度,和功耗,好像他发生在传统硬件设计中-时间分配和调度问题必须解决。这个解决方法类似于在单处理器上处理的软件任务的策略。这导致了设计流程中复杂度,因为用可配置硬件技术完成功能代价包括硬件和软件设计。

现有的商业设计流程中提供两个划分和映射的途径。(a)工具导向设计流程(b)语言导向设计流程。工具设计流程的例子有CoWare

的N2C和cadence的VCC。这些工具支持的设计流程很好地在传统的硬件和软件方法工作。然而,对于RTL的统一和联合定时模型的细化设计处理是指定工具的,新的可配置部分的纳入不可能脱离非传统的方法。语言导向设计流程的例子是OCAPI-XL和SystemC。尤其对于后者,他承诺开放源码和标准,内核语言中可加入新的方面。然而,大多数首选的方法是要求建模和可仿真的可配置硬件的用基本语言框架编写的模型架构。通过这种方式,能与现有工具和设计兼容的语言被保留下来。SystemC扩展可配置硬件而OCAPI_XL相应在第五章、第六章讲到。

2.2.3 结构设计

一个支持高层次抽象的系统描述设计流程必须也支持不同类型和供应商的可重构技术。即使在抽象的最高层面上,必须要回答的问题就是:怎么实现可重构技术和使用哪项可重构技术?设计流程可以利用不同的技术回答这些问题。首先,基于工具的分析器编译了应用功能的统一表现和产生从未并行运行的应用部分信息。这信息可以用来确定什么功能可以被执行在可配置模块的不同的环境中。

另一种方法是为各个实现技术使用代价函数。代价函数可以帮助在同一时间使用多个参数和优化标准时做出快速的设计决策。另一个工具的方法是使用在仿真中收集到的编译信息去进行对应用程序划分及产生一个用在最后实现的上下文调度。这种方法的例子是一个MorphoSys[14]工具箱的可重构结构。

最后,最容易实现在在工业领域中的选择是基于方法的仿真。在这

相关文档
最新文档