AMBA - AHB 总线接口的设计与实现Ξ
颜伟成 陈朝阳 沈绪榜
(华中科技大学模式识别与人工智能研究所 武汉 430074)
摘 要
对 AMBA - 总线进行了简要介绍 ,并给出一 SOC 芯片中 DDR SDRAM 控制器的 AHB 总线接口的具体实现和验证方
法。该设计采用 Verilog 进行 RTL 级实现 ,并在 FPGA 系统中得到验证。在基于 0. 18um 工艺的库中综合频率达到
160MHz ,满足设计要求。
关键词 : AMBA AHB SOC
中图分类号 : TP336
Design and Implementation of AMBA - AHB BUS Interface
Yan Weicheng Chen Zhaoyang Shen Xubang
( Institute for Pattern Recognition and Artificial Intelligence ,HUST1) ,Wuhan 430074)
Abstract :This article simply describes the characteristics of AMBA on chip bus. Then , an implementation of the AHB slave
interface to a DDR SDRAM Controller is presented. The RTL level of this design is implemented in Verilog HDL , and verified in
FPGA. The frequency of this design can reach 160Mhz with 0. 18um process library and meet our requirements.
Key words :AMBA ,AHB ,SOC
Class number :TP336
1 前言
随着 VL SI 工艺技术 , EDA 技术的迅速发展 ,
集成电路已进入片上系统 ( System On Chip , 简称
SOC)时代。片内总线作为 SOC 系统集成的互连结
构 ,可以把各个功能模块互连起来 ,使 IP 核的移
植 ,设计复用变得容易。
在市场现有的各种片内总线中 ,由 ARM 公司
开发的 AMBA (Advanced Microcontroller Bus Ar2
chitecture)片内总线市场占有率最高 ,成为一种最
流行的工业标准片内总线结构。
2 AHB 总线协议以及内部 DDR
SDRAM 控制器接口描述
2. 1 AHB 总线协议概述
AMBA Rev2. 0
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
包含两级总线 :AHB (Ad2
vanced High Performance Bus) 系统总线 APB (Ad2 vanced Peripheral Bus) 外围总线。AHB 总线采用地址/ 数据分离的流水式操作 ,支持定长/ 不定长突发传送 ,分裂事务传送特性和多个主设备的总线管理 ,具有高带宽 ,高性能特性 ,适合于嵌入式处理器与高性能外围设备 ,片内存储器及接口功能单的连接。图 1 给出了一个基本的 AHB 传送操作。图 1 基本的 AHB 传送AHB 总线协议支持的数据宽度包括字节 ,半字和字方式 ,支持的突发方式包括定长和不定长突发 ,另外还支持特有的打包 (WRAP)型突发操作。
031 计算机与数字工程 第 33 卷
Ξ 收到本文时间 :2005 年 3 月 2 日
2. 2 DDR SDRAM 控制器接口概述
该 SOC 芯片是一款 HD TV 解码芯片 ,视频解
码核部分对 DRAM 的存取带宽要求很高 ,因此我
们采用 64 位数据线宽度的 DDR 接口。由于 DDR
SDRAM 双时钟沿采样的特点 ,因此 DDR SDRAM
对内的数据线宽度为 128 位。虽然解码核的
图 2 AHB Slave Wrapper 在 SOC 系统中的位置
DRAM 存取接口是专用的 ,并不通过 AHB 总线 ,
但为了提高 DRAM 内存的使用效率 ,采用了 UMA
(Unified Memory Architecture ) 结构 , 解码核和
AHB 共用一个 DRAM 控制器 ,也就是说 AHB 总
线上的主设备作为 DRAM 控制器的其中一个请求
client (解码核本身有 7 个请求 client) 访问 DRAM。
图 2 显示了 AHB wrapper 在 SOC 系统中的位置示
意图。
本设计在图中的作用相当于一个桥 ,通过它把
AHB 上的请求转换为 DRAM 控制器的请求 ,或者
说 DRAM 控制器通过 AHB WRAPPER 接到 AHB
总线上。
由于解码核实时性的要求 ,必须保证解码核对
DRAM 的访问具有更高的优先级 ,因此 AHB 主设
备对 DRAM 的请求是不能保证被及时响应的。这
样在设计中就需要用到 AHB 的分裂事务特性 ,保
证 AHB 总线的使用效率。
DRAM 控制器接口采用根据解码核内存请求
的特点设计的自定义时序接口 ,读时序如图 3 所示。
图 3 Timing diagram for read operation
写时序和读时序是类似的 ,只是额外需要一组
16 位宽的的 MASK信号以实现对 DRAM 的字节
寻址。根据 AHB 上访问的特性 ,读写接口的最大
突发长度设计为 8。
3 AHB Slave wrapper 的设计
根据 AHB 总线协议和 DRAM 控制器接口特
点 ,本 AHB SLAV E 至少需要解决如下问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
:
(1) AHB 总线协议的转换 ,处理各种模式的
单次 (Single)和突发请求。
(2) 将 AHB 总线上的 32 位数据宽度的请求
转化为 DRAM 控制器接口上的 128 位数据宽度请
求。
并对写数据进行缓存 ,从而改善两边速度不匹
配的问题。
根据 AHB SLAV E 接口的上述功能要求 ,设
计接口如图 4 所示的结构 :
图 4 AHB Slave Wrapper 结构
从框架图来看 ,该设计可以分为两部分 : AHB
总线接口部分和 DRAM 控制器接口部分 ,其中
131第 33 卷 (2005)第 10 期 计算机与数字工程
AHB 总线接口部分负责解析 AHB 总线协议并翻
译成 DRAM 控制器的请求。这部分用状态机实
现 ,可以处理各种类型 AHB 的请求。DRAM 控制
器接口部分负责根据当前命令生成 DRAM 请求时
序 ,并完成读写操作。
从时钟域的划分来看 ,本设计主要分为两个时
钟域 ,AHB 总线时钟 (160MHz) 和 DRAM 控制器
时钟 (和 DDR SDRAM 运行时钟频率一样为
200MHz) 。对于不同时钟域之间的通信问题 ,我
们采用异步 FIFO 的形式和脉冲同步形式解决 ,如
命令 FIFO 就是一个异步 FIFO ,而读写缓冲区的
读写通过握手信号进行通信 ,比如对于写缓冲区就
是通过空满标志信号进行同步的。
3. 1 命令 FIFO 和地址转换
命令 FIFO 负责缓存一次 DRAM 接口请求的
参数 ,由 AHB 接口写入 ,其结构如图 5 所示 :
图 5 命令 FIFO 结构 (深度 = 3)
当 DRAM 控制器接口发现命令 FIFO 不空
时 ,则取出一个单元的数据 ,并根据它生成一次
DRAM 请求。其中最低位表示是读请求还是写请
求 ,如果是写请求 ,则根据最高位的 WBU F 号从对
应的写缓冲区中取数据。BRST 位确定该次
DRAM 请求的 burst 长度。AHB 接口根据当前
AHB 突发请求的类型 ,确定 BURST 长度和起始
地址。
命令 FIFO 的深度设计为 3 ,这是由于我们采
用了双写缓冲的结构 ,如果两个写缓冲都满了 ,则
AHB 接口不再向命令 FIFO 发送写命令。而对于
AHB 读访问来说 ,必须等待 DRAM 控制器接口也
完成对应读请求并返回所有数据才能结束相应的
AHB 读事务。
采用这种命令 FIFO 结构可以保证片内处理
器访存的一致性 ,也就是保证 DRAM 的请求次序
和 AHB 的请求次序是一致的 ,并且在读访问之前
的写访问都已完成。
按照 AHB 上的总线协议的特点 , AMBA -
AHB 总线的地址译码是由一个中央译码器集中完
成的 ,该中央译码器根据主设备发出访问请求的地
址进行译码 ,产生某一个从设备的片选信号 ,各从
设备通过检查自己的 HSEL 信号是否有效确定是
否是对自己的访问。
对于 DRAM 控制器接口 ,其接口地址必须是
128 - bit 字对齐的 ,通过一个 16 位的字节使能
DA TA- MASK端口进行字节选通 , 因此必须把
AHB 上的地址转换到 DRAM 控制器接口上的逻
辑地址 (是按 128 - bit 字编址的) 。由于 AHB 上
的从设备不需要负责设备选通译码 ,因此可以直接
把 AHB 总线上的地址信号对应位转化为 DDR 控
制器接口地址 ,而 HADDR 的最低 4 位地址被转换
为对应的字节使能。
3. 2 写操作
对于写操作来说 ,设计了一个双缓冲结构 ,写
缓冲区的结构如图 6 所示 :
图 6 Write BU F 结构
这里缓冲区深度的选择是根据 AHB 定长突发
请求所支持的最大长度来确定的 ,定长突发请求所
支持的最大长度为 16 个 32 位字请求 ,这样对于
WRAP 定长字请求来说 ,每一个 AHB 突发操作可
以打包成一次 DRAM 控制器的请求。这样减少了
DRAM 接口请求的次数 ,从而提高了 DRAM 控制
器的效率。其它情况的定长突发请求也根据各种
情况进行打包 ,AHB 突发的最后一个数据准备好
后写入命令 FIFO (CMD FIFO)
通知
关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知
DRAM 控制
器接口向 DRAM 控制器发送写请求 ,当该写缓冲
的数据全部发送完毕后 ,由 DRAM 控制器接口设
置该写缓冲的空标志。
每一次 AHB 的突发请求的数据都依据地址的
低位 (A [ 5 :3 ]) 填入当前空闲缓冲区的对应位置 ,
并设置相应的 DM (data mask) 位。如果是最后一
个数据 , 则生成写命令并写入命令 FIFO 等待
DRAM 控制器接口处理 ,同时置响应写缓冲满标
志。如果两个缓冲区都是满状态 ,则 AHB 接口向
总线返回分裂 ( SPL IT) 响应 ,之所以采用 SPL IT
而不是 RETR Y响应是因为我们的 AHB 总线上不
止一个主设备 ,返回 SPL IT 可以告诉 AHB 仲裁器
让其它主设备获得总线控制权 ,从而最大限度地利
用总线资源。AHB 接口如果发现有一个缓冲区空
闲 ,则置 SPL IT 信号有效一个周期 ,通知仲裁器重
新确认发起原 AHB 事务的主设备 ,并继续原 AHB
写访问。 (下转第 136 页)
231 AMBA - AHB 总线接口的设计与实现 第 33 卷
5 小结
服务器在互联网应用中起着重要的作用 ,服务
器要为大量的客户端提供服务。线程池技术对于
服务器程序的性能改善是显著的 ,在服务器领域有
着广泛的应用前景。本文通过分析网络服务器的
工作流程
财务工作流程表财务工作流程怎么写财务工作流程图财务工作流程及制度公司财务工作流程
和线程池机制 ,提出一个新的线程池管理
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
,并加以实现。压力测试显示 ,新方案在响应
速度和稳定性方面改善明显。
参 考 文 献
[1 ] Robert D. Blumofe , Charles E. Leiserson. Scheduling
Multithreaded Computations by Work Stealing [J / OL ] .
Journal of ACM ,1999 ,46 (5) :720 - 748
[2 ]John Calcote . Thread Pools and Server Performance [J /
OL ] . Dr. Dobb’s Journal ,1997 ,7 ,60 - 64
[3 ]Jeff Prosise . MFC Windows 程序设计[ M ] . 清华大学出
版社 ,2001
[4 ]Jim Beveridge , Robert Wiener. Win32 多线程程序设计
[ M ] . 华中科技大学出版社 ,2002
[5 ]Anthony Jones ,Jim Ohlund . Network Programming for
Microsoft Windows [ M ] . Microsoft Press ,1999
(上接第 132 页)
3. 3 读操作
对读操作来说 ,每次 AHB 读请求都被转换成
DRAM 控制器接口请求。DRAM 接口返回数据后
把数据写入读缓冲区 ,读缓冲区结构如图 7 所示 :
图 7 Read BU F 结构
对非定长的 BURST 请求 ,每个数据请求都转
换成一次 DRAM 请求命令并写入命令 FIFO ,对于
定长BURST ,则依据是否跨越 16 字节边界确定是
否需要分成两个读 DRAM 请求 ,然后将请求地址、
长度写入命令 FIFO。因为向 DRAM 进行读请求
的延时不能确定 , 因此需要向 AHB 总线响应
SPL IT 以释放总线控制权 ,如果 DRAM 控制器接
口完成读请求并把数据写入读缓冲区中 ,同时把完
成信号放入队列通知 AHB 接口数据已准备好 ,此
时 AHB 接口部分置 HSPL IT 信号有效 ,等待原主
设备重新发送请求后从读缓冲区中取数据放到
AHB 的读数据总线上。
4 结束语
本文给出了 AMBA - AHB 总线从设备接口的
一种实现方式 ,通过 V ERILO G进行 RTL 级建模 ,
采用 TSMC0. 18 工艺的标准单元库 ,利用 Synop2
sys 公司 Design Compiler 进行逻辑综合 ,时钟频率
达到设计要求。利用 Synopsys 的DesignWare 提供
的 AHB 总线功能模型进行仿真 ,经验证 ,完全符合
AMBA 总线 Rev2. 0 的规范要求。该设计已应用
到我们的 HD TV 解码 SOC 芯片中。
参 考 文 献
[1 ]AMBATM Specification Rev2. 0 ,ARM Inc.
[ 2 ]Simulation and Synthesis Techniques for Asynchronous FI2
FO Design ,Clifford E. Cummings
[3 ]SOC 片上总线技术的研究[J ] . 半导体技术 , 2003 ,2
[4 ] J . Bhasker , Verilog HDL 硬件描述语言 , Star Gralaxy
Publishing
[5 ]Double Data Rate (DDR) SDRAM datasheet ,Micron Inc
631 基于改进线程池技术服务器程序的设计与实现 第 33 卷