当前位置:网站首页>【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AMBA总线介绍)
【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AMBA总线介绍)
2022-07-07 13:22:00 【luoganttcc】
导读:作者有幸在中国电子信息领域的排头兵院校“电子科技大学”攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思、清华紫光、联发科技等业界顶尖集成电路相关企业面授课程,对数字IC验证有了一些知识积累和学习心得。为帮助想入门前端IC验证的朋友,思忱一二后,特开此专栏,以期花最短的时间,走最少的弯路,学最多的IC验证技术知识。
文章目录
一、内容概述
- AMBA 总线概述
- AHB(重中之重)
- APB
- 不同IP之间的互连
注:AMBA总线除了APB和AHB之外,还有ASB,不过用的少,所以这里不再作为重点!另外,我们AHB-SRAMC项目只用到的是AHB Slave侧的,所以倒不是说非得把AHB搞的很精通才能做这个项目。其实作为slave来讲,用到的仅仅是AHB协议的简化版本:
AHB-Lite。
二、AMBA 总线概述
2.1、系统总线简介
- 系统芯片中各个模块(IP)之间需要有接口来连接
- 总线作为子系统之间共享的通信链路
- 共享的话,每个slave都会划分地址空间
- 直连的话(点点通信),不需要划分地址空间,但是成本高且不易扩展
- 优点
- 低成本
- 方便易用(可扩展强)
- 缺点
- 会造成性能瓶颈(涉及命令分配、排队和冲突问题)
2.2、AMBA 2.0
Advanced Microcontroller Bus Architecture
- 片上总线的标准
定义了三种总线
- AHB(Advanced High-performance Bus)
- 实际中用的更多的是变种的:AHB-Lite
- ASB(Advanced System Bus)【了解即可】
- APB(Advanced Peripheral Bus)
- 用在Slave中
- AHB(Advanced High-performance Bus)
AMBA2.0升级到AMBA3.0增加了AXI协议,主要应用场景是复杂高速系统。
2.3、AMBA 发展历史
- AMBA 1.0
- ASB 和 APB
- AMBA 2.0
- AHB,ASB 和 APB
- AMBA 3.0
- AMBA Advanced eXtensible Interface(AXI)
- AMBA 4.0
- AXI Coherency Extensions(ACE)【多核一致性】
2.4、一个典型的AMBA 2.0系统
注:我们要验证的是 AHB-SRAMC 模块,即要将AHB接口的数据转换为SRAMC的数据然后写进去,所以学习AHB是必须的!
- 处理器和其他主设备/从设备都是可以替换的

2.5、AMBA2.0 AHB
- 高速总线(针对APB)、高性能
- 2级流水线操作
- 可支持多个总线主设备(数量没有限制)
- 支持burst传输(真正Burst传输发扬光大的是在AMBA3.0的AXI)
- AMBA 13’00
- 总线带宽:8/16/32/64/128 bits(32 bits 用的最多)
- 上升沿触发操作
注:AHB相对于APB提升的话,主要在于两级流水!
- Q:什么是Burst传输?
A:总线的命令无外乎是地址(ADDR)和数据(DATA)。在总线传输的时候,single时序规定的比较死,需要两拍才能完成地址和时序传输,如下图所示。

通常总线带宽是32bits,即可以读取4个地址的数据。对于传统single传输,需要在第一个地址周期发送ADDR = 0x50,便可以在第二个数据周期读取地址0x50/0x51/0x52/0x53组成的32位数据。再想读接下来的4个地址数据,需要再在第一个地址周期发送ADDR = 0x54,便可以在第二个数据周期读取地址0x54/0x55/0x56/0x57组成的32位数据。这样读取下来,一共花费了4拍。
而Burst传输要想读取上述2个32位数据,需要在第一个地址周期发送ADDR = 0x50和INC2(表示需要从0x50这个地址连着读2个32位数据),那么可以在第二个数据周期读取一个32位数据,在第三个数据周期再读取一个32为数据,一共花费了3拍。
同理,多读N个数据,那就发送地址之外再发送INCN即可,一共需要N+1拍。
- Q:2级流水线操作是什么意思?
A:流水操作直接体现就是在进行地址1发送的时候,可以读取地址0对应的数据,如下图所示。

2.6、AMBA2.0 APB
- 低速总线、低功耗
- 接口简单
- 在Bridge中锁存地址信号和控制信号
- 适用于多种外设(因为外设就是按照人家的规范来做的接口,肯定能挂上去了)
- 上升沿触发
2.7、AHB 组成部分
注:以下组成部门并不是所有SoC都需要。
- AHB 主设备(master)
- 发起一次读/写操作
- 某一时刻只允许一个主设备使用总线
- CPU、DMA、DSP…
- AHB 从设备(slave)
- 响应一次读/写操作
- 通过地址映射来选择使用哪一个从设备
- 外部存储器控制器EMI、APB bridge
- AHB 仲裁器(arbiter)
- 允许某一个主设备控制总线
- 在AMBA协议中没有定义仲裁算法
- master之间是按照公平轮询的
RR调度原则,还是按照绝对优先级的SP调度原则? - 在实际开发中,我们使用
RR较多
- master之间是按照公平轮询的
- AHB 译码器(decoder)
- 通过地址译码来决定选择哪一个从设备
2.8、APB 组成部分
AHB2APB Bridge
- 可以锁存所有的地址、数据和控制(读写控制)信号
- 进行二级译码来产生APB从设备选择信号
APB总线上的所有其他模块都是APB从设备(没有主设备)
2.9、AMBA协议其他有关问题
- 与工艺无关(协议实现出来的是逻辑,即RTL代码)
- 没有定义电气特性(定义的仅仅是逻辑的时序关系,且芯片内部使用,与电压无关)
- 仅在时钟周期级定义时序
- 提供时序(这里指物理实现时序,可不用过多关注)参数依赖于所采用的的工艺和工作频率
- 举例:不是说APB只能跑100M,且协议也没有规定APB必须为100M,需要根据选的工艺和自己要实现的性能要求确定运行的频率。如选16nm可以跑到300M,选65nm可以跑到100M!【总结:跟实际应用有关,与协议规定无关。】
2.10、例:DMA
注:下面的示例代码是伪代码。





边栏推荐
- Oracle控制文件丢失恢复归档模式方法
- Ctfshow, information collection: web10
- 【跟着江科大学Stm32】STM32F103C8T6_PWM控制直流电机_代码
- Excerpted words
- 8大模块、40个思维模型,打破思维桎梏,满足你工作不同阶段、场景的思维需求,赶紧收藏慢慢学
- CTFshow,信息搜集:web7
- PAT 甲级 1103 Integer Factorizatio
- Deformable convolutional dense network for enhancing compressed video quality
- 2. Heap sort "hard to understand sort"
- With 8 modules and 40 thinking models, you can break the shackles of thinking and meet the thinking needs of different stages and scenes of your work. Collect it quickly and learn it slowly
猜你喜欢
MongoD管理数据库的方法介绍

Do you know the relationship between the most important indicators of two strong wind control and the quality of the customer base

Stream learning notes

Ctfshow, information collection: web9

Mathematical modeling -- what is mathematical modeling

CTFshow,信息搜集:web8
![[understanding of opportunity -40]: direction, rules, choice, effort, fairness, cognition, ability, action, read the five layers of perception of 3GPP 6G white paper](/img/38/cc5bb5eaa3dcee5ae2d51a904cf26a.png)
[understanding of opportunity -40]: direction, rules, choice, effort, fairness, cognition, ability, action, read the five layers of perception of 3GPP 6G white paper

Niuke real problem programming - day15

【數據挖掘】視覺模式挖掘:Hog特征+餘弦相似度/k-means聚類

Niuke real problem programming - day14
随机推荐
[deep learning] image hyperspectral experiment: srcnn/fsrcnn
CTFshow,信息搜集:web14
Wechat applet 01
@Introduction and three usages of controlleradvice
Change win10 Screensaver
CTFshow,信息搜集:web2
Compile advanced notes
Classification of regression tests
CTFshow,信息搜集:web10
CTFshow,信息搜集:web13
Excerpted words
2. Basic knowledge of golang
Niuke real problem programming - day20
Spatiotemporal deformable convolution for compressed video quality enhancement (STDF)
Niuke real problem programming - Day12
【兰州大学】考研初试复试资料分享
Notes HCIA
Several ways of JS jump link
Delete a whole page in word
Jetson AGX Orin CANFD 使用