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

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

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

3天內不再提示

APB3接口的讀寫過程

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

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

1、Interface

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

APB寫過程

沒有等待狀態。

wKgZomTngjeAcCKrAAF6IkiDs-M318.png

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

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

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

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

wKgZomTngjeAThobAAAx9bWqaL8044.png

有等待狀態

wKgZomTngjiAOyACAAEJuAoGGJ0615.png

wKgZomTngjiAJZPyAAA14EbCVAI827.png

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

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

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

APB讀過程

讀操作

wKgZomTngjiAZeqRAADEghkAnZA321.png

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

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

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

審核編輯:劉清

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

    關注

    0

    文章

    164

    瀏覽量

    11957
  • PSEL
    +關注

    關注

    0

    文章

    2

    瀏覽量

    2003
  • RISC-V
    +關注

    關注

    45

    文章

    2270

    瀏覽量

    46131

原文標題:APB3接口應用

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    ram的結構和讀寫過程

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

    ram的結構和讀寫過程

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

    ram的結構和讀寫過程

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

    IIC總線的特點及讀寫過程

    IIC總線的特點IIC總線協議詳解IIC總線的讀寫過程
    發表于 01-04 07:30

    EEPROM I2C協議的特點與基本讀寫過程

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

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

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

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

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

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

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

    SmartFusion系列CoreAPB3應用指南(英)

    SmartFusion系列CoreAPB3應用指南(英) Building an APB3 Core for SmartFusion FPGAs
    發表于 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風壓式換氣扇電路圖
    發表于 02-27 21:22 ?1195次閱讀
    藍羚牌<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連動式換氣扇電路圖
    發表于 02-27 21:22 ?1299次閱讀
    藍羚牌<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

    以太網工業級雙通道讀寫讀寫頭CK-FR102AN-E00開發手冊之讀寫過程與操作流程

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

    關于ram的結構和讀寫過程

    ram也叫主存,是與CPU直接交換數據的內部存儲器。它可以隨時讀寫(刷新時除外)且速度很快,通常作為操作系統或其他正在運行中的程序的...
    發表于 01-25 20:03 ?1次下載
    關于ram的結構和<b class='flag-5'>讀寫過程</b>
    主站蜘蛛池模板: 黄小说免费看| 亚洲国产欧美在线人成aaaa20| 亚洲国产综合人成综合网站00| 99 久久99久久精品免观看| 精品亚洲欧美中文字幕在线看| 乌克兰16~18sex| 国产成人免费| 人妻体体内射精一区二区| bbw美女与zooxx| 美女脱了内裤张开腿让男人爽| 亚洲男女羞羞无遮挡久久丫| 风情韵味人妻HD| 手机毛片在线| 国产精品无码AV天天爽色欲| 国产美熟女乱又伦AV| 97人人超碰国产精品最新蜜芽| 国产又色又爽又刺激在线播放| 天天日免费观看视频一1| 黃色带三级a级| 99精品视频在线| 亚欧乱亚欧乱色视频| 毛片免费在线视频| 成人片免费看| 欧美精品一区二区蜜臀亚洲| 亚洲国产精品久久又爽黄A片| 99久久亚洲| 午夜日韩久久影院| 久久亚洲黄色| 国产东北男同志videos网站| 亚洲精品乱码一区二区三区| 久久精品九九亚洲精品天堂| Zoofilivideo人馿交| 性夜a爽黄爽| 美女在线永久免费网站| 粉嫩极品国产在线观看| 伊人久久中文| 少妇高潮久久久久7777| 男宿舍里的呻吟h| 激情办公室| 国产精品久久久久久亚洲影视 | 久久精品国产久精国产果冻传媒|