当前位置:首页 > 通信技术 > 通信技术
[导读]前两篇进阶文章主要讲述了AHB slave的核心内容,这篇来讲AHB lite master的设计。

前两篇进阶文章主要讲述了AHB slave的核心内容,这篇来讲AHB lite master的设计。

AHB master主要用于一下三个方面:

1.计算模块和crossbar的沟通桥梁,例如加速器模块。

2.crossbar或者bridge的AHB master口,例如noc或者ahb matrix的ahb master口。

3.DMA模块的AHB master口,用于读取source数据,并发送到target地址。

AHB master在整个SOC领域可以起到敲门砖的作用,掌握了它,对后续掌握其他模块的设计非常有帮助。

1、输入输出接口

在设计某个模块时,首先需要理清它有哪些输入输出,从而对设计进行一个整体了解。由于本文的读写模块设计属于比较基础的AHB传输,不涉及突发传输、锁定传输和从机的分块传输。本设计的输入有:hclk_i、irst_n、hgrant_i、hrdata_i、hready_i,输出有:hwdata_o、htrans_o、hwrite_o、haddr_o、hbusreq_o。

2、状态机设计

状态机的设计比较重要,本设计的主状态机是:空闲状态、读状态、写状态,从状态机分为读状态机(rd_fsm_r)和写状态机(wr_fsm_r),读状态机和写状态机的状态转移图如图所示。

状态机

根据AHB总线地址段和数据段的特性,可将其分为:空闲状态、请求总线状态、地址段状态、读/写数据状态和读/写最后一个字节状态。注意:在状态机中,何时有效很重要,从图中可以看出,各状态的触发条件都有hready_i信号(由于hready_i信号是一直在变化的,可能前一个状态hready_i信号为高,但后一个状态会变低,不能使用软件思维去思考。),其次,何时开始读/写数据,何时数据读/写完成,这都是由计数器计数来决定的。

3、设计时序图

读写过程比较类似,时序图如图所示:

读写时序图

从图中可以看出,地址与数据并非在同一周期(AHB总线的特性)。当前周期的地址,存储的数据在下一周期才会出现。这种地址和数据交叠出现使总线能进行高性能操作的同时,给从机也提供了足够的时间来响应传输。

4、基本代码

状态机逻辑:

至此,本文基于AHB总线的master读写设计就完成了。这是我很早之前设计的代码了,可能存在一些小问题。

总结

为什么AHB master的学习,这么重要呢?

就是因为它的作用,初次 之外,还有设计它所使用的基础知识。如下图:

AXI master场景1

我们接受的数据来自运算单元,它给我们的内容有,读写使能(doorbell),读写控制,包括burst类型,数据size,地址valid,以及握手信号。我们需要对这些数据进行采样,设计状态机来保证AXI的时序,如果两个模块时钟不一样,我们还要进行异步处理。

这是我在内网很久之前练习的小设计。

基于FIFO的AHB LITE架构图

FIFO和axi master

设计思路

我们正常设计AHB master时,因为要支持burst传输,所以数据是要缓存到同步FIFO中的,我们常用的设计思路如下:

-FIFO满时发起AHB burst 写,将FIFO清空。FIFO空时发起AHB burst读,填满FIFO。

-FIFO深度=burst length。

-FIFO宽度=AHB数据宽度。

-地址帧wr_req作为FIFO rd_en,读取FIFO数据,转化为hwdata。

-数据帧将rd_vld作为we_en,将读取的hrdata写到FIFO。

代码在下面图中,有点不清晰,谅解,和之前的代码相比,优化了状态机,状态机太多可读性较差。

要点补充

只要设计的AXI master支持burst传输,前面一定有一个FIFO缓存数据。真正项目中,不一定时空满时才发起AHB读写,一定会有预警信号。

并且真正设计时一定是两个FIFO,我这里只是图省事用了一个。

AXI master设计时,难点是除了数据需要缓存,commands也需要缓存。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭