色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

APB3接口的讀寫過程

XL FPGA技術(shù)交流 ? 來源:XL科技 ? 作者:XL科技 ? 2023-03-31 17:26 ? 次閱讀

APB3是一個低功耗低成本接口。所有信號時鐘上升沿傳輸,每次傳輸需要兩個時鐘周期。

1、Interface

信號 控制端 描述
PSEL M 選通。APB master會將此信號生成給每個slave。它指示已選擇的slave,并且需要進行數(shù)據(jù)傳輸。每個slave都有一個PSEL信號。
PADDR M 地址總線,最大位寬32位
PENABLE M 使能。當它為高時,表示讀寫過程有效
PWRITE M 讀寫控制。為高時表示寫操作,為低時表示讀操作
PWDATA M 寫數(shù)據(jù)。master通過PWDATA將數(shù)據(jù)寫到slave,該總線最大寬度為32位
PRDATA S 讀數(shù)據(jù)。master通過PRDATA將數(shù)據(jù)從slave讀取回來,該總線最大寬度為32位
PREADY S 在PSEL和PENABLE為高時,總線會查看PREADY是否為高,如果為高則數(shù)據(jù)有效,如果為低則等待其變高。

APB寫過程

沒有等待狀態(tài)。

wKgZomTngjeAcCKrAAF6IkiDs-M318.png

(1)T0到T1階段是空閑狀態(tài),

(2)T1到T2是setup階段,此階段會準備好PADDR,PWRITE(為1),PWDATA。

(3)T2到T3是Access階段,此階段PENABLE會拉高,并且地址、數(shù)據(jù)和控制信號仍然保持有效。

(4)T3到T4階段PENABLE再次拉低;選擇信號PSELx也會拉低,除非緊跟同一外設(shè)下一次的傳輸。

wKgZomTngjeAThobAAAx9bWqaL8044.png

有等待狀態(tài)

wKgZomTngjiAOyACAAEJuAoGGJ0615.png

wKgZomTngjiAJZPyAAA14EbCVAI827.png

在ACESS階段,當PENABLE為高時,可以通過PREADY拉低來延長ACESS階段。這時要保持PADDR,PWRITE,PSEL,PENABLE,PWDATA信號保持不變。

當PENABLE為低時,PREADY可以高也可以低。所以如果外設(shè)是固定兩個操作周期時,PREADY可以固定為高。

另外推薦地址和寫信號只在下一個訪問周期才發(fā)生變化,這樣可以節(jié)省功耗 。

APB讀過程

讀操作

wKgZomTngjiAZeqRAADEghkAnZA321.png

在SETUP階段讀過程與寫過程是一樣的,只是寫過程PWRITE為高,讀過程PWRITE為低。

同樣在ACCESS階段,也可以通過拉低PREADY信號延長ACESS階段,但是要保證PADDR,PWRITE,PSEL和PENALBE為固定狀態(tài)。

wKgZomTngjiAFiHpAADbBYTUOiw465.png

通過RISCV 操作APB3也比較簡單,如下:

slave是指APB的基地址,addr是指APB的偏移地址,也就是PADDR.

  void apb3_write(u32 slave, u32 addr, u32 data )
    {
      write_u32(data,slave+addr);
    }
voidabp3_read(u32slave,u32addr)
{
returnread_u32(slave+addr);
}

在邏輯上處理也比較簡單,易靈思提供了簡單的APB3參考。

//以下為易靈思提供的APB3的參考
module apb3_slave_memory #(
  // user parameter starts here
  //
  parameter  ADDR_WIDTH  = 16,
  parameter  DATA_WIDTH  = 32,
  parameter  NUM_REG    = 4
) (
  // user logic starts here
  input                       clk,
  input                       resetn,
  input  [ADDR_WIDTH-1:0]     PADDR,
  input                       PSEL,
  input                       PENABLE,
  output                     PREADY,
  input                       PWRITE,
  input   [DATA_WIDTH-1:0]   PWDATA,
  output  [DATA_WIDTH-1:0]   PRDATA,
outputPSLVERROR
);


/////////////////////////////////////////////////////////////////




localparam [1:0]  IDLE   = 2'b00,
              SETUP  = 2'b01,
              ACCESS = 2'b10;




reg [1:0]      busState, 
               busNext;
reg             slaveReady;
wire            actWrite,
               actRead;


//////////////////////////////////////////////////////////////////
  always@(posedge clk or negedge resetn)
  begin
    if(!resetn) 
      busState <= IDLE; 
    else
      busState <= busNext; 
  end




  always@(*)
  begin
    busNext = busState;




    case(busState)
      IDLE:
      begin
        if(PSEL && !PENABLE)
            busNext = SETUP;
        else
            busNext = IDLE;
      end
      SETUP:
      begin
        if(PSEL && PENABLE)
            busNext = ACCESS;
        else
            busNext = IDLE;
      end
      ACCESS:
      begin
        if(PREADY)
            busNext = IDLE;
        else
            busNext = ACCESS;
      end
      default:
      begin
          busNext = IDLE;
      end
    endcase
  end








  assign actWrite = PWRITE  && (busState == ACCESS);
  assign actRead  = !PWRITE && (busState == ACCESS);
  assign PSLVERROR = 1'b0; 
  assign PREADY = slaveReady & & (busState !== IDLE);




  always@ (posedge clk)
  begin
    slaveReady <= actWrite | actRead;
  end


  simple_dual_port_ram
#(
  .DATA_WIDTH(32),
  .ADDR_WIDTH(16),
  .OUTPUT_REG(0),
  .RAM_INIT_FILE("")
)
dut
(
  .wdata  (PWDATA    ),
  .waddr  (PADDR    ),
  .wclk    (clk      ),
  .we      (actWrite  ),
  .raddr  (PADDR    ),
  .rclk    (clk      ),
  .re      (actRead  ),
  .rdata  (PRDATA    )
);


endmodule

審核編輯:劉清

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

    關(guān)注

    0

    文章

    166

    瀏覽量

    12002
  • PSEL
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    2015
  • RISC-V
    +關(guān)注

    關(guān)注

    45

    文章

    2300

    瀏覽量

    46272

原文標題:APB3接口應用

文章出處:【微信號:gh_ea2445df5d2a,微信公眾號:FPGA及視頻處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何用XSCT通過APB接口來讀GT的寄存器

    在debug GT的時候,有時候需要讀出一些寄存器來分析。這篇文章介紹一種通過AXI4 Lite或者APB3接口從XSCT來讀Versla GT的寄存器的方法。
    的頭像 發(fā)表于 12-08 10:32 ?824次閱讀
    如何用XSCT通過<b class='flag-5'>APB</b><b class='flag-5'>接口</b>來讀GT的寄存器

    PGA308讀寫過程中的28ms延時復位1-wire接口是硬件實現(xiàn)的還是需要編程實現(xiàn)?

    請問,PGA308讀寫過程中的28ms延時復位1-wire接口是硬件實現(xiàn)的還是需要編程實現(xiàn)?
    發(fā)表于 09-24 07:17

    ram的結(jié)構(gòu)和讀寫過程

    ,所以ram是易失性存儲器。本文主要介紹ram的結(jié)構(gòu)和讀寫過程。  1.ram的結(jié)構(gòu)它由三部分電路組成:    1)行、列地址譯碼器:它是一個二進制譯碼器,將地址碼翻譯成行列對應的具體地址,然后去選
    發(fā)表于 12-10 15:50

    ram的結(jié)構(gòu)和讀寫過程

    (存入)或讀出(取出)信息。ram在計算機和數(shù)字系統(tǒng)中用來暫時存儲程序、數(shù)據(jù)和中間結(jié)果。隨機存取存儲器(ram)既可向指定單元存入信息又可從指定單元讀出信息。任何ram中存儲的信息在斷電后均會丟失,所以ram是易失性存儲器。本文主要介紹ram的結(jié)構(gòu)和讀寫過程
    發(fā)表于 12-16 06:29

    ram的結(jié)構(gòu)和讀寫過程

    (存入)或讀出(取出)信息。  ram在計算機和數(shù)字系統(tǒng)中用來暫時存儲程序、數(shù)據(jù)和中間結(jié)果。隨機存取存儲器(ram)既可向指定單元存入信息又可從指定單元讀出信息。任何ram中存儲的信息在斷電后均會丟失,所以ram是易失性存儲器。本文主要介紹ram的結(jié)構(gòu)和讀寫過程
    發(fā)表于 12-31 06:18

    IIC總線的特點及讀寫過程

    IIC總線的特點IIC總線協(xié)議詳解IIC總線的讀寫過程
    發(fā)表于 01-04 07:30

    EEPROM I2C協(xié)議的特點與基本讀寫過程

    EEPROMI2C協(xié)議I2C物理層的特點I2C的協(xié)議層I2C基本讀寫過程通訊的起始和停止信號數(shù)據(jù)有效性地址及數(shù)據(jù)方向響應STM32的I2C特性及架構(gòu)通訊引腳時鐘控制邏輯數(shù)據(jù)控制邏輯整體控制邏輯
    發(fā)表于 01-21 08:57

    使用SPI對SD卡進行讀寫過程中常見的問題有哪些?如何解決?

    使用SPI對SD卡進行讀寫過程中常見的問題有哪些?如何解決?
    發(fā)表于 01-27 07:17

    APB接口協(xié)議的讀寫傳輸及工作流程簡析

    APB是AMBA中相對比較簡單的接口協(xié)議,用于連接低帶寬,無需高性能流水線接口的外設(shè)。采用這種簡單的協(xié)議,你可以輕松地將自定義外設(shè)掛在基于AMBA總線的SoC上。許多APB外設(shè)都是慢速
    發(fā)表于 04-07 10:18

    PSEL = 0時APB3從機響應如何解決此問題

    在這里,在IP級別驗證中,我們沒有問題,因為主APB不會鎖存PREADY,而是在SOC級別具有多個APB從站主設(shè)備使用APB SLAVE 1執(zhí)行一些事務(wù),并且在切換到APB SLAVE
    發(fā)表于 08-17 15:51

    SmartFusion系列CoreAPB3應用指南(英)

    SmartFusion系列CoreAPB3應用指南(英) Building an APB3 Core for SmartFusion FPGAs
    發(fā)表于 04-23 14:03 ?16次下載

    藍羚牌APB15-3-A APB20-4-A APB25-5

    藍羚牌APB15-3-A APB20-4-A APB25-5-A APB30-6-A風壓式換氣扇電路圖
    發(fā)表于 02-27 21:22 ?1198次閱讀
    藍羚牌<b class='flag-5'>APB15-3</b>-A <b class='flag-5'>APB</b>20-4-A <b class='flag-5'>APB</b>25-5

    藍羚牌APB15-3-B APB20-4-B APB25-5

    藍羚牌APB15-3-B APB20-4-B APB25-5-B APB30-6-B連動式換氣扇電路圖
    發(fā)表于 02-27 21:22 ?1309次閱讀
    藍羚牌<b class='flag-5'>APB15-3</b>-B <b class='flag-5'>APB</b>20-4-B <b class='flag-5'>APB</b>25-5

    以太網(wǎng)工業(yè)級雙通道讀寫讀寫頭CK-FR102AN-E00開發(fā)手冊之讀寫過程與操作流程

    本文重點介紹以太網(wǎng)工業(yè)級雙通道讀寫讀寫頭CK-FR102AN-E00開發(fā)手冊之讀寫過程與操作流程,歡迎發(fā)燒友交流與溝通! 1、讀寫讀寫過程
    發(fā)表于 02-03 22:03 ?276次閱讀
    以太網(wǎng)工業(yè)級雙通道<b class='flag-5'>讀寫</b>器<b class='flag-5'>讀寫</b>頭CK-FR102AN-E00開發(fā)手冊之<b class='flag-5'>讀寫過程</b>與操作流程

    關(guān)于ram的結(jié)構(gòu)和讀寫過程

    ram也叫主存,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲器。它可以隨時讀寫(刷新時除外)且速度很快,通常作為操作系統(tǒng)或其他正在運行中的程序的...
    發(fā)表于 01-25 20:03 ?1次下載
    關(guān)于ram的結(jié)構(gòu)和<b class='flag-5'>讀寫過程</b>
    主站蜘蛛池模板: 宝贝乖女好紧好深好爽老师| 亚洲理论在线a中文字幕| 国产成人精品免费视频大全可播放的| 亚洲视频一| 色戒床震视频片段| 久久这里只精品热在线18| 国产精品外围在线观看| abp-146| 伊人久99久女女视频精品免| 视频成人app永久在线观看| 男人吃奶摸下弄进去好爽| 好男人在线视频| 古装性艳史电影在线看| av在线观看地址| 最新精品国产| 一本久道久久综合狠狠躁AV| 窝窝色资源站| 日韩高清毛片| 欧美午夜理伦三级在线观看| 老头操美女| 久久久97丨国产人妻熟女| 国内卡一卡二卡三免费网站| 大肥女ass樱桃| WWW国产精品人妻一二三区| 中文在线观看免费网站| 亚洲欧美色综合影院| 天天久久狠狠色综合| 日日摸夜添夜夜夜添高潮| 青青青草国产| 欧美午夜福利主线路| 欧美精品色婷婷五月综合| 免费成年人在线观看视频| 老师的玉足高跟鞋满足我| 久久亚洲国产成人影院| 九色PORNY真实丨国产免费| 韩国女主播内部vip自带氏巾| 国产精品久久久久影院免费| 国产精品大陆在线视频| 国产成人无码免费精品果冻传媒 | 国产亚洲精品精品精品| 国产热久久精|