chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解AHB-Lite協(xié)議

FPGA設(shè)計(jì)論壇 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 2025-08-27 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、AHB-Lite協(xié)議介紹

AHB(Advanced High-performance Bus)高速總線,接高速master設(shè)備,APB(Advanced Peripheral Bus)外設(shè)總線,用來(lái)接低速slave,AHB主要用于高性能模塊(如CPUDMADSP等)之間的連接,一個(gè)master可以有多個(gè)slave,AHB和APB之間通過(guò)一個(gè)AHB2APB橋轉(zhuǎn)接。這里是實(shí)現(xiàn)一個(gè)AHB-Lite協(xié)議,相較于AHB-APB總線協(xié)議,AHB-Lite只有單主機(jī),且沒(méi)有HBUSREQ和HGRANT信號(hào),同時(shí)從設(shè)備信號(hào)接口也簡(jiǎn)單許多。

二、系統(tǒng)框架介紹

9f1966ba-800e-11f0-a18e-92fbcf53809c.png

主設(shè)備Master0利用AHB-Lite總線協(xié)議通過(guò)AHB Bridge訪問(wèn)四個(gè)APB從設(shè)備Slave0、Slave、Slave2和Slave3。每個(gè)從設(shè)備的地址空間如下:

Slave0: 0x0000_0000 ~ 0x0000_00ff;

Slave1: 0x0000_0100 ~ 0x0000_01ff;

Slave2: 0x0000_0200 ~ 0x0000_02ff;

Slave3: 0x0000_0300 ~ 0x0000_03ff;

令從設(shè)備地址空間的下邊界為其地址的基址,假設(shè)每個(gè)從設(shè)備中有可訪問(wèn)APB寄存器16個(gè),位寬均為32比特,16個(gè)寄存器的訪問(wèn)地址計(jì)算方式為 基址 +寄存器編號(hào)左移2位(byte 偏移)

主設(shè)備接口的數(shù)據(jù)讀寫(xiě)采用AHB-Lite總線協(xié)議,并遵循如下時(shí)序規(guī)范:

9f2bb734-800e-11f0-a18e-92fbcf53809c.png

從設(shè)備讀寫(xiě)遵循APB時(shí)序規(guī)范:

9f404f46-800e-11f0-a18e-92fbcf53809c.png

三、代碼設(shè)計(jì)

模塊里包含Master 、Slave、Bridge設(shè)計(jì)

代碼如下:

//-------------------------

//File Name:AHB_APB.v

//Designer:Liang Genyuan

//-------------------------

module AHB_APB(

HCLK,

HRESETn,

HWRITE,

HADDR,

HWDATAin,

HRDATA,

PRDATAin,

PWDATA

);

input HCLK;

input HRESETn;

input HWRITE;

input [31:0] HADDR;

input [31:0] HWDATAin;

input [31:0] PRDATAin;

output[31:0] HRDATA;

output[31:0] PWDATA;

reg PCLK;

wire PRESETn;

wire PWRITE;

reg PSEL;

reg PENABLE;

wire[31:0] PADDR;

reg[31:0] PWDATA;

reg[31:0] PRDATA;

reg[31:0] HWDATA;

reg[31:0] HRDATA;

reg PSELS0;

reg PSELS1;

reg PSELS2;

reg PSELS3;

reg[31:0] HADDR_Reg;

reg HWRITE_Reg;

reg[3:0] HSEL_Reg;

reg[31:0] HWDATA_Reg;

reg[31:0] PRDATA_Reg;

reg HREADY;

reg [3:0] state_c ;

reg [3:0] state_n ;

parameter IDLE = 4'b0000 ;

parameter SETUP = 4'b0001;

parameter ENABLE = 4'b0010 ;

//PCLK二分頻

always @(posedge HCLK) begin

if(!HRESETn)begin

PCLK<=0;

end

else if(HCLK==1'b1)begin

PCLK<=~PCLK;

end

end

//slave選擇

`define S0BASE 4'b0000

`define S1BASE 4'b0001

`define S2BASE 4'b0010

`define S3BASE 4'b0011

wire[3:0] HSEL;

assign HSEL = HADDR[11:8];

always @(*)begin

if(!HRESETn) begin

PSELS0 = 1'b0;

PSELS1 = 1'b0;

PSELS2 = 1'b0;

PSELS3 = 1'b0;

end

case (HSEL)

`S0BASE :

PSELS0 = 1'b1;

`S1BASE :

PSELS1 = 1'b1;

`S2BASE :

PSELS2 = 1'b1;

`S3BASE :

PSELS3 = 1'b1;

endcase

end

//slave讀寫(xiě)

wire[5:0] reg_num;

reg [3:0] PSELx;

assign reg_num= PADDR[7:2];

assign PRESETn=HRESETn;

assign PADDR=HADDR_Reg;

assign PWRITE=HWRITE_Reg;

always @(posedge PCLK or negedge PRESETn) begin

if(!PRESETn)begin

PWDATA<=0;

PRDATA<=0;

end

else if(PWRITE)begin

if((state_c==SETUP)||(state_c==ENABLE))begin

PWDATA<=HWDATA_Reg;

end

else begin

PWDATA<=0;

end

end

else if(!PWRITE)begin

PRDATA<=PRDATAin;

end

else begin

PRDATA<=0;

end

end

//APB bridge狀態(tài)機(jī)

wire idle2setup_start ;

wire setup2enable_start;

wire enable2idle_start ;

always@(posedge HCLK or negedge HRESETn)begin

if(!HRESETn)begin

PSELx<=0;

end

else if(state_c!=IDLE)begin

PSELx<=HSEL_Reg;

end

end

always @(posedge PCLK or negedge PRESETn) begin

if (!PRESETn) begin

state_c <= IDLE ;

end

else begin

state_c <= state_n;

end

end

always @(*) begin

case(state_c)

IDLE :begin

if(idle2setup_start)

state_n = SETUP ;

else

state_n = state_c ;

end

SETUP :begin

if(setup2enable_start)

state_n = ENABLE ;

else

state_n = state_c ;

end

ENABLE :begin

if(enable2idle_start)

state_n = IDLE ;

else

state_n = state_c ;

end

default : state_n = IDLE ;

endcase

end

always@(posedge PCLK or negedge PRESETn)begin

if(PRESETn==1'b0)begin

PENABLE<=0;

PSEL<=0;

end

else if(state_c==SETUP)begin

PSEL<=1;

PENABLE<=0;

end

else if(state_c==ENABLE)begin

PSEL<=1;

PENABLE<=1;

end

else begin

PSEL<=0;

PENABLE<=0;

end

end

assign idle2setup_start = (state_c==IDLE)&&(HADDR!=32'b0) ;

assign setup2enable_start = state_c==SETUP ;

assign enable2idle_start = state_c==ENABLE ;

//橋寄存

always @ (negedge HRESETn or posedge HCLK) begin

if (!HRESETn)

begin

HADDR_Reg <= {32{1'b0}};

HWRITE_Reg <= 1'b0;

end

else

if (HREADY)begin

HADDR_Reg <= HADDR;

HWRITE_Reg <= HWRITE;

end

end

always @(posedge HCLK or negedge HRESETn)begin

if(HRESETn==1'b0)begin

HSEL_Reg<=0;

end

else if(HREADY)begin

HSEL_Reg<=HSEL;

end

end

always @(posedge HCLK or negedge HRESETn)begin

if(HRESETn==1'b0)begin

HWDATA_Reg<=0;

PRDATA_Reg<=0;

end

else if(HWRITE==1)begin

HWDATA_Reg<=HWDATA;

end

else begin

PRDATA_Reg<=PRDATA;

end

end

//master

//HREADY控制

always @(posedge PCLK or negedge PRESETn)begin

if(!PRESETn)begin

HREADY<=0;

end

else if((state_c==IDLE)&&(HWDATA==0))begin

HREADY<=1;

end

else if(state_c==SETUP)begin

HREADY<=0;

end

end

always @(posedge HCLK or negedge HRESETn)begin

if(HRESETn==1'b0)begin

HWDATA<=32'b0;

HRDATA<=32'b0;

end

else if(HWRITE==0)begin

HRDATA<=PRDATA_Reg;

end

else if(HWRITE==1)begin

HWDATA<=HWDATAin;

end

end

endmodule

四、仿真測(cè)試

分別對(duì)讀寫(xiě)時(shí)序進(jìn)行兩組測(cè)試:

1、寫(xiě)時(shí)序

a、

HADDR=32’b0000_0000_0000_0000_0000_0001_0000_0000

HWDATAin=32’b0000_0000_0000_0000_0000_0001_0000_0001

9f55a90e-800e-11f0-a18e-92fbcf53809c.png

PSELx=1,reg_num=0

即選中了第一個(gè)從設(shè)備中第一個(gè)寄存器

b、

HADDR=32’b0000_0000_0000_0000_0000_0011_0000_1000;

HWDATAin=32’b0000_0000_0000_0000_0000_1111_0000_1111;

9f6c0334-800e-11f0-a18e-92fbcf53809c.png

PSELx=3,reg_num=2

即選中了第三個(gè)從設(shè)備中第三個(gè)寄存器

2、讀時(shí)序

a、

HADDR=32’b0000_0000_0000_0000_0000_0011_0000_1000

PRDATAin=32’b00000_0000_0000_0000_0000_1111_0000_1111

9f765546-800e-11f0-a18e-92fbcf53809c.png

PSELx=3 reg_num=2

即第三個(gè)從設(shè)備第三個(gè)寄存器

b、

HADDR=32’b0000_0000_0000_0000_0000_0100_0000_1100

PRDATAin=32’b00000_0000_0000_0000_0000_1110_0000_1110

9f8a0ae6-800e-11f0-a18e-92fbcf53809c.png

PSELx=4 reg_num=3

即第四個(gè)從設(shè)備第四個(gè)寄存器

原文鏈接:

https://blog.csdn.net/yueqiu693/article/details/119849052

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5492

    瀏覽量

    127683
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9255

    瀏覽量

    155392
  • 總線協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    136

    瀏覽量

    15485
  • 高速總線
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    3584

原文標(biāo)題:AHB_Lite協(xié)議介紹

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32—— AHB、APB詳解 精選資料分享

    STM32—— AHB、APB詳解2016-07-14 20:35 590人閱讀 評(píng)論(0) 收藏 舉報(bào)本文章已收錄于:版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。、概括首先,說(shuō)點(diǎn)不靠譜
    發(fā)表于 08-23 07:56

    AMBA中的AHB總線協(xié)議詳解

    ,數(shù)據(jù)傳輸效率不高。所以針對(duì)以上的缺點(diǎn),ARM 開(kāi)發(fā)了更高級(jí)的總線AHB,下文將詳述AHB基于APB的改進(jìn)點(diǎn),改進(jìn)策略,以及AHB協(xié)議運(yùn)行機(jī)制。1-1 背景在漫談AMBA總線-APB
    發(fā)表于 06-07 16:57

    搭建個(gè)SoC下載到FPGA開(kāi)發(fā)板中設(shè)計(jì)實(shí)現(xiàn)

    簡(jiǎn)單的控制的,所以只設(shè)計(jì)支持了簡(jiǎn)單的AHB-Lite總線。AHB-Lite總線只支持個(gè)AHB主機(jī)。BRAM是存放SoC需要調(diào)用的指令的存儲(chǔ)器,其通過(guò)BRAM總線接口與AHBlite總
    發(fā)表于 08-09 17:09

    AHB-lite總線如何處理獨(dú)占訪問(wèn)

    我正在使用混淆的RTL for Cortex-M3。我有個(gè)可行的設(shè)計(jì),可以將3個(gè)AHB-lite總線復(fù)用為2個(gè)AXI3總線。該設(shè)計(jì)類(lèi)似于具有代碼總線和系統(tǒng)總線的Xilinx designstart
    發(fā)表于 08-18 11:11

    基于Cortex-M0搭建SoC并使用軟件驅(qū)動(dòng)蜂鳴器正常切歌播放的設(shè)計(jì)實(shí)現(xiàn)

    在于,AHB-Lite總線只支持個(gè)AHB主機(jī),而AHB總線是支持多主機(jī)的。所以在結(jié)構(gòu)上,AHB-Lite總線不需要仲裁器。
    發(fā)表于 08-18 15:37

    在Arm AMBA協(xié)議集中AHB-lite可否使用

    Arm AMBA協(xié)議集中,LPI 在AMBA4 出現(xiàn),協(xié)議和鏈路層 與 AXI/AHB 無(wú)關(guān) 獨(dú)立的嗎? AHB-lite 可否使用?
    發(fā)表于 09-08 11:35

    Arm AMBA協(xié)議集中address phase是必須等到hready有效才結(jié)束嗎

    Arm AMBA協(xié)議集中,ahb-lite協(xié)議里面,address phase是必須等到hready有效才結(jié)束嗎?還是不管hready是否有效,只需要拍就行?
    發(fā)表于 09-14 11:43

    ARM CoreLink AXI4至AHB Lite XHB-400橋接技術(shù)參考手冊(cè)

    XHB將AXI4協(xié)議轉(zhuǎn)換為AHB-Lite協(xié)議,并具有AXI4從接口和AHB-Lite主接口。有關(guān)AXI4事務(wù)如何通過(guò)XHB橋接到AHB-Lite
    發(fā)表于 08-02 06:51

    多層AHB技術(shù)概述

    沒(méi)有需要仲裁或主從復(fù)用。這些層可以使用 AHB-Lite協(xié)議,這意味著他們不必支持請(qǐng)求和授權(quán),重試并拆分事務(wù)。 ?仲裁實(shí)際上成為每個(gè)外圍設(shè)備的點(diǎn)仲裁只有當(dāng)多個(gè)主機(jī)想要訪問(wèn)同個(gè)從機(jī)時(shí)才需要同時(shí) ?您
    發(fā)表于 08-09 07:52

    PrimeCell通用中斷控制器(PL390)循環(huán)模型9.1.0版用戶(hù)指南

    接口(AXI)協(xié)議或AMBA AHB-Lite協(xié)議。 您可以配置GIC以提供預(yù)期應(yīng)用所需的最佳功能、性能和門(mén)數(shù)。 主要產(chǎn)品配置有: ·帶有AHB-Lite接口的GIC。 此配置實(shí)施AH
    發(fā)表于 08-16 06:14

    PrimeCell基礎(chǔ)設(shè)施AMBA 2 AHB至AMBA 3 AXI橋(BP136)技術(shù)概述

    AMBA?2 AHB?至AMBA 3 AXI?橋使AHB主機(jī)能夠與AXI從機(jī)或互連進(jìn)行通信(如果時(shí)鐘和重置信號(hào)是公共的)。 該網(wǎng)橋有三種變種,可支持以下接口: ·ARM11 AHB-Lite主控器
    發(fā)表于 08-21 06:43

    剖析AHB2、AHB-LiteAHB5區(qū)別

    AMBA 2 添加了 AMBA 高性能總線 (AHB),這是種單時(shí)鐘邊緣協(xié)議。AHB 上的簡(jiǎn)單transaction由地址階段和后續(xù)數(shù)據(jù)階段組成。對(duì)目標(biāo)設(shè)備的訪問(wèn)通過(guò) MUX 進(jìn)行控
    的頭像 發(fā)表于 05-04 11:03 ?5110次閱讀
    剖析<b class='flag-5'>AHB</b>2、<b class='flag-5'>AHB-Lite</b>和<b class='flag-5'>AHB</b>5區(qū)別

    Arm AMBA 5 AHB5:加速嵌入式和物聯(lián)網(wǎng)世界

    AHB-Lite 協(xié)議的基礎(chǔ)上,使其與 AXI4 協(xié)議保持致。AHB5 還將 TrustZone 安全基礎(chǔ)從處理器擴(kuò)展到整個(gè)系統(tǒng)。
    的頭像 發(fā)表于 05-26 14:18 ?1774次閱讀

    AMBA AHB協(xié)議的burst termination簡(jiǎn)析

    在AMBA AHB協(xié)議中,AHB master可以用burst傳輸連續(xù)取多筆數(shù)據(jù)。AHB定義了4、8和16拍的burst傳輸、未定義長(zhǎng)度的burst傳輸和單次傳輸。
    發(fā)表于 06-29 15:54 ?3431次閱讀
    AMBA <b class='flag-5'>AHB</b><b class='flag-5'>協(xié)議</b>的burst termination簡(jiǎn)析

    AMBA AHB協(xié)議規(guī)范

    電子發(fā)燒友網(wǎng)站提供《AMBA AHB協(xié)議規(guī)范.pdf》資料免費(fèi)下載
    發(fā)表于 02-11 15:51 ?2次下載