DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 133|回复: 0
打印 上一主题 下一主题

基于模式的SoC设计方法研究

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      摘要:在分析传统系统芯片SoC(片上系统) 设计方法的基础之上,为了提高设计生产率和降低设计复杂度,强调高层次的抽象和重用,提出了基于模式的SoC设计方法(PBSOC) ,在系统级建立面向对象的设计模式库和IP复用库。针对SoC设计模式的最后目标,讨论了SoC设计分析中软件设计模式的可复用性及新的SoC设计模式的可发掘性,并以具体的实例改造现有的软件设计模式和构筑新的SoC设计模式,说明了面向对象方法在SoC设计流程中的使用。

  关键词:片上系统;面向对象;设计模式;事物级;systemC?

引 言?

  SoC(sySTem ON chip) 是微电子技术发展的一个新的里程碑,SoC不再是一种功能单一的单元电路,而是将信号采集、处理和输出等完整的系统集成在一起,成为一个有专用目的的电子系统单片。其设计思想也有别于IC,在一个或若干个单片上完成整个系统的功能。

  SoC开发和设计存在一些问题,如描述语言不统一、抽象层次低、仿真速度慢、可重用性差、设计性能无法保障、RTL级发现的问题需要重新进行整个的设计流程才能解决,因此SoC的建模与设计的方法成为当前刻不容缓的课题。上述种种问题与曾经困惑软件业的“软件危机”的表现非常类似,为了解决软件危机,人们提出了软件工程。因此,本文的思路是将软件工程中应用最为广泛的面向对象技术引入到SoC设计当中。

??????设计模式是面向对象的精髓,在软件中已经得到了广泛的运用,在SoC设计中使用设计模式,可以降低软硬件开发之间的鸿沟,对于软硬件协同设计有很大的帮助,使系统得到更大的可伸缩性。
SoC设计方法学?

传统的设计方法?
  在传统SoC设计过程中,系统一开始就被划分为软件和硬件2大部分,软件和硬件独立进行开发设计. 这样隐含一些问题,如软硬件之间的交互受到很大限制、软硬件之间的相互性能影响造成很难评估和系统集成相对滞后,导致设计质量差、设计修改难和研制周期不能有效保障。

??????传统SoC设计流程中,EDA设计方法只作用于SoC后级,缺乏SoC前级设计方法与系统验证策略,从而导致了RTL电路模型中错误成分复杂化与验证人工开销激增. 另外,软件开发者必须等到硬件的设计和结构都完成并通过验证之后,才能开始软件的设计和实现,所以开发的周期将会持续很长,产品的竞争力会因此而下降.?

基于模式的设计方法?
??????针对传统设计方法的不足,新的SoC设计方法应该在行为级就开始建立仿真模型和进行行为与结构的验证,同时必须强调结构化、封装和重用硬件设计在高层次的抽象的重要性。

??????因此,本文提出基于模式的SoC设计方法PBSOC ,如图1所示,强调高层次的系统建模,更有利于设计的复用. 在需求分析阶段,根据规格说明,使用面向对象的分析方法,给出用例的关系和顺序图. 在系统级设计阶段,使用统一的语言SystemC进行软硬件协同设计。SystemC是由Open SystemC Initiative (OSCI) 提出和维护的开放源代码的基于C++统一软硬件建模平台. 软硬件模块都用C++ 描述,对不同软硬件划分方案的评估和权衡可以方便地进行。

  PBSOC使用形式化方法和面向对象的Petri网对系统的行为和结构建模,不涉及任何结构和时间的细节,并通过实时UML进行可视化的描述. 它不仅具备传统面向对象方法所具有的风格,而且具有Petri网直观模拟系统动态行为的优点,从而能够更加简洁、清楚地描述系统的静态结构和组成元素之间的层次关系。将Petri网思想引入面向对象建模当中,可将系统看作是一些相互作用的对象组成的集合。集合中的每个对象都具有自己的属性和任务,它们根据收到的消息、句柄等来完成相应的任务,从而实现系统的整体功能.在系统级建立面向对象的设计模式库和IP复用库,OO库即面向对象数据库,主要存放的是各种SoC设计模式(pattern) ,在SoC系统框架设计、IP设计以及IP通信设计中都可以使用模式。IP库中存放的可以是普通的IP核,即其他厂商设计的成熟的IP;也可以是用面向对象的方法设计的一些IP 核,即IP 的设计过程也遵从于PBSOC。



图2  状态模式的系统结构?

??????State 模式不指定哪一个参与者定义状态转换准则. 如果该准则是固定的, 那么它们可在Context 中完全实现. 然而若让State 子类自身指定它们的后继状态以及何时进行转换, 通常更灵活、更合适. 这需要Context 增加一个接口, 让State 对象显式地设定Context 的当前状态。

??????首先定义类BusProtocol ,它提供了一个片上总线的基本协议通道并处理改变状态的请求。BusProtocol 在state 成员变量中保持一个BusState 类的实例。类BusState 复制了BusProtocol的状态改变接口。每一个BusState 操作都以一个BusProtocol 实例作为一个参数, 从而让BusState 可以访问BusProtocol 中的数据和改变总线的状态。BusProtocol 将所有与状态相关的请求委托给它的BusState 实例state。BusProtocol 还提供了一个操作用于将这个变量设为一个新的BusState。BusProtocol 的构造器将该状态对象初始化为BusIdle 状态。

  (2) 层适配模式?
??????层适配模式为SoC通信建模提供分层的协议转换,将不同架构的网络协议通过接口的匹配,实现各层次的数据通信,提供事务级建模各层的适配方式。系统建模中通信机制可以分为4 层,其中事务级建模分为3 层,即除L0 之上的3 层为事务级。其中:L3 为消息层,这一层没有任何的时间信息,系统行为是事件驱动的,并建立点到点的通信. L2 为事务层,这一层的系统模型带有时间信息,但并不是时钟精确周期,系统是时间驱动执行的。
?
  事务层将理想的结构映射到需要考虑资源分配和设计约束的结构中,完成SoC体系结构的分析和建模,并开始软件的开发。L1为传输层,它在RTL层之上,系统由精确到周期的行为组成,但比RTL 级的仿真速度要快。传输层建模一般对应一定的总线协议,将精确到周期的协议映射到给定的硬件接口和总线结构上,隐藏了接口的管脚,将事务直接映射到总线周期。层适配模式将通过适配完成各层次的模型转换。如图3 所示,TL1 Master Adapter通过适配TL1通道和TL2 通道,使TL1 Master 和TL2 Slave 通信。


图4  包装器模式的系统结构?

??????通过包装器模式的封装,能适配各种IP 接口。即使用包装器模式来调整组件接口以适应于环境要求。包装器模式的匹配程度,对IP Component 的接口与其他的接口进行匹配的工作量各个WrapperModel 可能不一样。从简单的接口转换(例如改变操作名) 到支持完全不同的操作集合,WrapperModel 的工作量取决于Component 接口与需要转换接口的相似程度。

结束语?

??????在SoC设计中,可重用性是应该考虑的一个很重要的因素. 除了IP复用,设计的可重用也是非常重用的。在讨论将现有软件设计模式应用到SoC设计当中后,提出了SoC设计模式,主要针对高层次的SoC设计中的最常用的一些设计方法,以及构筑SoC系统的基本组件和基本结构。除了上述的3 种模式,还提出的一系列的SoC设计模式中,总线模式属于体系结构的模式,包装器模式和层适配模式属于结构型模式,总线协议模式、管道模式和FSM模式属于行为型模式。下一步的工作是深入研究系统级设计方法,以及基于UML的软件设计模式描述如何自动地转换为元(meta) 程序。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-22 18:27 , 耗时 0.143472 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表