系统设计算法与架构.ppt

  1. 1、本文档共175页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统设计算法与架构

  AHB译码器Decoder用来对每次传输的地址进行译码, 以生成选择信号(HSELx信号)。 该信号送到Slave中。    AHB总线中可以有多个Master和Slave, 但同一时间只能有一个Master有效。 Arbiter选择哪个Master占用总线, Decoder选择哪个Slave的数据送到Master中, 如图2.26 所示。 图 2.26  多Master示例 表2.4给出了AHB信号的列表。 续表 注: 信号的后缀加上“x”表示该信号可能来自多个模块, 例如HBUSREQx可能是HBUSREQarm, 也可能是  HBUSREQdma。  在AHB总线中, 传输的数据宽度由HSIZE信号来定义要传输的数据的位数, 如表 2.5 所示。   下面介绍AHB总线的操作。 AHB的操作过程大致按如下顺序:   首先, Master发出请求。 该请求送到Arbiter中。 Arbiter决定是否由该Master获得总线的控制权。    Master的请求被允许后, 会给出地址及控制信号。 这些信号指明了数据传输的地址、 方向、 数据宽度及是否是突发(burst)模式。 地址和控制信号占用一个时钟周期。    接下来开始进行数据传输。 数据传输包括读和写两种模式。 读和写是相对于Master来讲的。 写操作将Master的数据写到Slave, 而读操作将Slave的数据读到Master。 数据传输 占据一个或多个时钟周期。    在传输过程中以及传输结束时, Slave需要给出响应信号, 告诉Master传输是否出错及传输是否能立即结束等。 标志信号为HRESP。    图2.27给出了一个简单的数据传输的示例。 图 2.27  数据传输示例   由图可知, 第一个周期为地址周期, 在该周期内, Master给出地址信号及控制信号; 第二个周期为数据周期, 在该周期内, Slave对地址信号和控制信号进行采样, 然后根据要求进行数据传输。    在AHB总线中, 当进行多个数据传输时, 为了加快数据传输的速度, 常采用流水线的操作方式, 如图2.28所示。 图 2.28  多个数据传输   以往, 系统设计多用C/C++语言进行建模。 采用C/C++进行系统设计的流程如图2.29所示。 2.3  基于SystemC的IC系统设计 图 2.29  采用C/C++的设计流程   在这种设计流程中, 当系统级模型完成后, 需要设计者依据C/C++程序的功能给出Verilog/VHDL的RTL描述。 由于C/C++语言是在很高抽象层次上的描述, 不支持时间、 并发、 硬件等数据类型, 因此设计者需要重新用Verilog/VHDL进行RTL设计。 这一过程很耗时, 且非常容易发生错误。   采用SystemC语言, 在行为模型完成后, 系统设计者可以逐步细化模型, 直至给出SystemC的RTL实现。 采用SystemC的RTL实现可通过综合工具生成网表, 该流程如图2.30所示。 图 2.30  基于SystemC的设计流程   这种流程避免了C/C++设计流程的缺点, 提高了效率。   SystemC建立在C++的基础上, 它利用类库扩展了C++对硬件的支持能力(而不是通过修改C++的语法)。 简单地说, 为了支持硬件描述, SystemC主要进行了如下扩展(如图2.31所示):  图 2.31  SystemC中的扩展   · 采用SC-MODULE模块类来描述模块。   · 利用进程来描述系统的并发行为。 SystemC 2.0中定义了SC-METHOD、 SC-THREAD和SC-SLAVE三种进程。  · 引入了信号。    · 引入了丰富的数据类型集, 如位矢量、 任意精度整数和定点数等。 此外, 还可以采用C++语言中的数据类型。    · 引入了时钟, 以表示时间的概念。    · 通过信道、 接口和事件实现模块和进程间的通信。  · 提供了多种通信语义, 允许在不同抽象层次上描述协议的接口。    在系统建模方面, SystemC有何优势呢?在SystemC中, 提供了事务级建模(Transaction L evel Modeling, TLM)的能力。 利用TLM, 设计者可以在很高的抽象级别对复杂系统进行描述, 可以忽略掉实现的细节; 利用TLM, 设计者可以在设计早期对设计进行评估, 比较多种实现方法的优劣; 此外, TLM还可以大大加快系统级仿真的速度。 2.3.1 基于SystemC的设计流程   SystemC语言是一种“系统级”语言, 建立在C++的基础上, 可以同时对硬件和软件进行建模(它将并发、 定时事件、

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档