当前位置:网站首页>【数字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
注:下面的示例代码是伪代码。





边栏推荐
- Ffmpeg --- image processing
- Apache multiple component vulnerability disclosure (cve-2022-32533/cve-2022-33980/cve-2021-37839)
- 上半年晋升 P8 成功,还买了别墅!
- 拜拜了,大厂!今天我就要去厂里
- Oracle控制文件丢失恢复归档模式方法
- 一个需求温习到的所有知识,h5的表单被键盘遮挡,事件代理,事件委托
- 【原创】一切不谈考核的管理都是扯淡!
- CTFshow,信息搜集:web6
- 【数字IC验证快速入门】26、SystemVerilog项目实践之AHB-SRAMC(6)(APB协议基本要点)
- Unity's ASE achieves full screen sand blowing effect
猜你喜欢

What is data leakage
使用Scrapy框架爬取网页并保存到Mysql的实现

Ctfshow, information collection: web2

Jetson AGX Orin CANFD 使用

Niuke real problem programming - Day9

Ctfshow, information collection: web7

Ctfshow, information collection: web12

Niuke real problem programming - day14

Used by Jetson AgX Orin canfd

CTFshow,信息搜集:web4
随机推荐
【服务器数据恢复】某品牌StorageWorks服务器raid数据恢复案例
Ctfshow, information collection: web13
使用Scrapy框架爬取网页并保存到Mysql的实现
Why do we use UTF-8 encoding?
Comparable and comparator of sorting
银行需要搭建智能客服模块的中台能力,驱动全场景智能客服务升级
Summer safety is very important! Emergency safety education enters kindergarten
Spatiotemporal deformable convolution for compressed video quality enhancement (STDF)
Stm32cubemx, 68 sets of components, following 10 open source protocols
Niuke real problem programming - Day12
Protection strategy of server area based on Firewall
Unity之ASE实现全屏风沙效果
asp. Netnba information management system VS development SQLSERVER database web structure c programming computer web page source code project detailed design
2. 堆排序『较难理解的排序』
一个需求温习到的所有知识,h5的表单被键盘遮挡,事件代理,事件委托
Stream learning notes
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
Ctfshow, information collection: web14
Nacos一致性协议 CP/AP/JRaft/Distro协议
Write a ten thousand word long article "CAS spin lock" to send Jay's new album to the top of the hot list