吴忠躺衫网络科技有限公司

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

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

3天內不再提示

關于高性能主從模式動態可重構的SPI IP核的設計

電子設計 ? 來源:網絡整理 ? 作者:工程師吳畏 ? 2018-06-14 15:26 ? 次閱讀

0 引言

隨著集成電路設計的快速發展,系統芯片(System-on-a-Chip,SoC)的集成度越來越高,從而對信號之間交流的要求也變高[1-2]。由于串行外設接口(Serial Peripheral Interface,SPI)總線協議具有全雙工模式、占用I/O端口少、協議靈活等優點,在實時時鐘AD轉換器數字信號處理器和數字信號解碼器之間得到了廣泛應用[3-4]。

目前,SPI IP核已經成為SoC的標準配置,相關人員也做了很多研究。例如,周雪榮等人面向AD9222設計的一款SPI模塊[5],可以配置為主機模式且符合AD9222芯片的接口時序;汪永琳等人設計的SPI接口[6],實現了SPI主從機之間數據的雙向傳輸且滿足三線半全工工作方式;李大江等人基于FPGA的SPI總線設計[7],分別設計了主機和從機。上述SPI設計可以適用于不同的應用場合,但是在SoC中進行通信時,不具有主從模式下動態可重構的能力。因此,本文根據SPI總線協議,設計了一種主從模式動態可重構,支持四線全雙工,允許七種時鐘傳輸速率的SPI IP核,并對其邏輯資源消耗和功耗問題進行了優化。

1 SPI工作原理

SPI總線協議是由Motorola公司首先提出的,主要應用于單片機系統中短程通信的同步串行通信接口規范[8]。SPI總線協議規定,它以主機或從機方式工作,主從機之間的數據傳輸存在4種數據傳輸模式并由cpol(時鐘極性)和cpha(時鐘相位)來控制,如表1所示。當cpol=0時,sclk的空閑電平為0;當cpol=1時,sclk的空閑電平為1。當cpha=0時,在空閑狀態到有效狀態邊沿采集數據;當cpha=1時,在有效狀態到空閑狀態邊沿采集數據[9]。

關于高性能主從模式動態可重構的SPI IP核的設計

在SoC中SPI IP核的傳統連接方式如圖1所示。通信過程中,SPI通過片上總線將CPU核傳輸的并行數據轉換為串行數據,與從機進行數據交換;并把從機傳輸的串行數據轉換成并行數據,通過片上總線發送給CPU核[10]。對SPI從機來說,它會在被主機選中的情況下與主機進行數據的傳輸[11]。

關于高性能主從模式動態可重構的SPI IP核的設計

2 SPI IP核設計

2.1 模塊劃分和接口定義

2.1.1 模塊劃分

根據SPI功能的不同,將所設計的SPI IP核劃分為如圖2所示的3個模塊:寄存器配置塊(Register Configuration Block,RCB)、數據傳輸塊(Data Transfer Block,DTB)和錯誤中斷塊(Fault Interrupt Block,FIB)。RCB由CPU核對其進行配置,如主從模式、時鐘極性和時鐘相位等;DTB根據配置的信息來進行主從機間的數據傳輸;FIB在出現模式錯誤(例如當SPI配置為主機時,從機選擇端口被拉低)、讀寫沖突等問題時會向CPU核發出中斷請求。

關于高性能主從模式動態可重構的SPI IP核的設計

2.1.2 端口定義

nwr和nrd分別是寫使能和讀使能端口;addr是地址端口;idata和odata分別是數據輸入和輸出端口。當地址有效時,數據輸入和輸出端口根據讀寫使能的配置來進行數據的輸入和輸出操作。spen、mstr、cpol和cpha 4個端口依次是SPI使能端、主從機配置端、時鐘極性和時鐘相位端,使得對SPI IP核進行配置更加直接和方便。

misoo、misotri和misoi 3個端口與一個三態緩沖器連接,以提供一個外部雙向端口miso,外部雙向端口mosi和sclk原理相同。這些雙向端口在有限狀態機模塊的控制下被配置為不同的傳輸方向,以此來解決主機模式和從機模式下數據傳輸端口傳輸方向相反的問題。miso在從機模式下發送數據,在主機模式下接收數據;mosi在主機模式下發送數據,在從機模式下接收數據;sclk在主機模式下發送時鐘,在從機模式下接收時鐘。同時,SPI IP核通過復用一個移位寄存器就可以完成主機和從機模式下的數據傳輸,實現了主從模式可配置的能力并節省了芯片面積。ssn是從機選擇端口,配置為從機時才使用,低電平有效。

int是中斷控制端口,當數據傳輸完成或SPI被配置為主機而ssn(從機選擇)端口為低電平等情況時,FIB模塊就會產生中斷請求。

2.2 電路設計

2.2.1 SPI可重構電路狀態機的設計

SPI可重構電路狀態機的設計,如圖3所示。當復位信號有效或者SPI使能端口spen被配置為低電平無效狀態時,可重構電路狀態機就會處于空閑狀態。此時,可向主機模式或從機模式進行轉移。

關于高性能主從模式動態可重構的SPI IP核的設計

轉移為主機模式時,首先需要把mstr端口配置為1。然后,有兩種情況可以轉移到主機模式:(1)配置從機選擇端口無效位ssdis為高電平有效狀態;(2)配置ssn端口為高電平無效狀態。

轉移為從機模式時,首先需要把mstr配置為0。然后,有3種情況可以轉移到從機模式:(1)當配置cpha為高電平時,并配置ssdis位為有效狀態,此種情況適用于只有一個從機下的數據傳輸;(2)當配置cpha為高電平時,檢測到ssn端口為低電平;(3)當配置cpha為低電平時,檢測到ssn端口的下降沿。

當狀態機從空閑狀態已經過渡到主機或者從機模式時,就會判斷數據的傳輸是否完成,當傳輸未完成時,就會保持在當前狀態;當傳輸已完成時,就會轉移到空閑狀態。此外,當前模式出現錯誤時,也會轉移到空閑狀態。SPI可重構電路狀態機如圖3所示。

由狀態轉移圖可知,此SPI IP核可實現空閑狀態、主機模式和從機模式之間的狀態轉換,具有在線動態可重構的特性。

2.2.2 時鐘分頻

主機模式下的串行時鐘由7位計數器、數據選擇器和D觸發器組成的時鐘分頻模塊產生,如圖4所示。

關于高性能主從模式動態可重構的SPI IP核的設計

輸出時鐘sclko取決于CPU核對控制寄存器的配置,當對控制器寄存器相應的三位配置都為1時,sclko的值為cpol的值,不產生時鐘,其他情況均對時鐘有分頻作用。因此,此時鐘分頻模塊可對系統時鐘產生7種分頻,如表2所示。

關于高性能主從模式動態可重構的SPI IP核的設計

3 仿真與驗證

3.1 仿真平臺搭建

為了方便驗證此SPI IP核的正確性,設計了模擬CPU核功能的發送接收模塊、驗證IP核(Verification IP,VIP)模塊和數據比較模塊等。發送接收模塊產生指令和數據對SPI IP核和VIP模塊進行配置。配置完成后,SPI IP核和VIP模塊進行主從機之間數據的傳輸;傳輸完成后,發送接收模塊分別讀取SPI IP核和VIP模塊傳輸的數據。最后,比較模塊從CPU核讀取所傳輸的數據并驗證數據的正確性。仿真原理如圖5所示。

關于高性能主從模式動態可重構的SPI IP核的設計

3.2 仿真及結果分析

最后,使用NC-Verilog對其進行仿真驗證,主從模式下的仿真時序如圖6所示。首先,通過發送接收模塊對SPI IP核的控制寄存器依次寫入h’10和h’50(配置SPI為主機模式,SPI接口有效)。同時,配置VIP模塊為從機。然后,設置主機要發送的數據為h’aa,從機要發送的數據為h’55,在sclko(對clk時鐘2分頻)時鐘頻率下,主機的mosio(主機輸出,從機輸入)端口串行發送數據h’aa,misoi(主機輸入,從機輸出)端口串行接收數據h’55,傳輸完成后讀取狀態寄存器的值為h’80(傳輸完成),讀取數據寄存器的值為h’55(傳輸成功)。然后,對控制寄存器寫入h’40(配置SPI為從機,SPI接口有效)。同時,配置VIP模塊為主機,ssn(從機選擇端口)變為低電平有效狀態。在sclki(對clk時鐘4分頻)時鐘頻率下,從機的miso(從機輸出,主機輸入)端口串行發送數據h’55,mosii(從機輸入,主機輸出)端口串行接收數據h’aa,傳輸完成后讀取狀態寄存器的值為h’80(傳輸完成),讀取數據寄存器的值為h’aa(傳輸成功)。

關于高性能主從模式動態可重構的SPI IP核的設計

主機模式下不同時鐘速率下的數據傳輸如圖7所示。圖中給出了對clk時鐘2分頻時,主機發送數據為h’aa,接收數據為h’55;對clk時鐘4分頻時,主機發送數據為h’55,接收數據為h’aa;對clk時鐘8分頻時,主機發送數據為h’aa,接收數據為h’55等情況下的數據傳輸情況。在不同分頻模式下,數據傳輸能正常傳輸且結果正確。

關于高性能主從模式動態可重構的SPI IP核的設計

仿真結果表明:此SPI IP核符合SPI總線協議并且滿足設計規范的要求。綜合結果顯示:在0.13 μm工藝下消耗1 062個邏輯門,在系統工作頻率80 MHz下的功耗約為0.395 7 mW。

4 結論

本文根據SPI總線協議設計了一種高性能主從模式動態可重構的SPI IP核,并對該IP核的模塊劃分、接口定義和可重構電路狀態機等進行了詳細描述。結果顯示,此設計符合SPI總線協議,實現了7種時鐘分頻,支持4種數據傳輸模式;在保證功能和性能情況下,邏輯資源消耗更少、功耗更低。

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

    關注

    38

    文章

    4204

    瀏覽量

    219106
  • SPI接口
    +關注

    關注

    0

    文章

    259

    瀏覽量

    34554
  • IP核
    +關注

    關注

    4

    文章

    331

    瀏覽量

    49644
收藏 人收藏

    評論

    相關推薦

    基于xilinx ISE的動態重構

    大家好有誰對FPGA的動態重構有研究嗎?本人現在在搞這塊尋人共同探討。。。謝謝
    發表于 03-10 16:03

    基于PAD的接收機動態重構結構應用

    和ASIC電路高速性的解決方案。在筆者所從事的系統設計中,當模擬器件的一些性能改變但又不能及時更新調整后端的數字基帶處理時,比如濾波器由于工作時間過長引起的溫漂特性所帶來的影響,此時就可以用可編程模擬器件替代一部分前端固定模擬器件,進而可以實時的對FPGA模塊進行動態
    發表于 07-10 07:56

    怎么設計PAD在接收機動態重構結構中的應用?

    重構結構是一種可以根據具體運算情況重組自身資源,實現硬件結構自身優化、自我生成的計算技術。動態重構技術
    發表于 08-13 07:56

    擴展的高性能RISC-V 內核IP

    SiFive推出的SiFive U8系列核心IP是一種面向現代SoC設計具有擴展性、高性能的微架構。SiFive U8系列是當今商用化基于RISC-V指令集架構中性能最高的內核
    發表于 08-13 15:14

    重構體系結構分為哪幾種?動態重構系統有哪些應用實例?

    重構體系結構分為哪幾種?典型動態重構系統結構有哪幾種?動態
    發表于 04-28 06:13

    怎么實現基于FPGA的動態重構系統設計?

    本文提出的通過微處理器加FPGA結合串行菊花鏈實現重構的方式,實現了動態重構FPGA結構設計的一種應用。
    發表于 05-10 06:22

    滿足高性能數字接收機動態性能要求的ADC和射頻器件有哪些?

    滿足高性能數字接收機動態性能要求的ADC和射頻器件有哪些?
    發表于 05-28 06:45

    劃分和時延驅動的動態重構FPGA在線布局算法

    可編程邏輯芯片特別是FPGA的快速發展,使得新的芯片能夠根據具體應用動態地調整結構以獲得更好的性能,這類芯片稱為動態重構FPGA芯片(DR
    發表于 01-18 08:40 ?10次下載

    動態重構系統的通信結構分析

    動態重構系統的通信結構分析 動態重構技術能在一定控制邏輯的驅動下,對全部或部分邏輯資源實現
    發表于 03-29 15:12 ?1085次閱讀
    <b class='flag-5'>動態</b><b class='flag-5'>可</b><b class='flag-5'>重構</b>系統的通信結構分析

    PAD在接收機動態重構結構中的應用設計

    PAD在接收機動態重構結構中的應用設計 重構結構是一種可以根據具體運算情況重組自身資源,實現硬件結構自身優化、自我生成的計算技術。
    發表于 12-28 09:15 ?843次閱讀
    PAD在接收機<b class='flag-5'>動態</b><b class='flag-5'>可</b><b class='flag-5'>重構</b>結構中的應用設計

    重構技術分析及動態重構系統設計

    基于SRAM的FPGA的問世標志著現代重構技術的開端,并極大地推動了其發展。可編程FPGA可以根據不同算法設計合理的硬件結構,以達到提高執行效率的目的。動態
    發表于 11-25 10:20 ?1.4w次閱讀
    <b class='flag-5'>可</b><b class='flag-5'>重構</b>技術分析及<b class='flag-5'>動態</b><b class='flag-5'>可</b><b class='flag-5'>重構</b>系統設計

    FPGA動態重構技術是什么,局部動態重構的時序問題解決方案

    所謂FPGA動態重構技術,就是要對基于SRAM編程技術的FPGA實現全部或部分邏輯資源的動態功能變換。根據實現重構的面積不同,
    的頭像 發表于 07-05 15:41 ?3254次閱讀
    FPGA<b class='flag-5'>動態</b><b class='flag-5'>可</b><b class='flag-5'>重構</b>技術是什么,局部<b class='flag-5'>動態</b><b class='flag-5'>可</b><b class='flag-5'>重構</b>的時序問題解決方案

    重構計算:基于FPGA重構計算的理論與實踐 1.器件架構 譯文(一)

    根本上來說,重構計算可以最好地發揮重構硬件的潛力。雖然一個完整的系統必須包括編譯軟件和高性能的應用程序,但了解
    發表于 01-26 18:23 ?7次下載
    <b class='flag-5'>可</b><b class='flag-5'>重構</b>計算:基于FPGA<b class='flag-5'>可</b><b class='flag-5'>重構</b>計算的理論與實踐 1.器件架構 譯文(一)

    關于FPGA重構技術分析

    FPGA上的重構技術根據FPGA芯片內部的不同結構可以分為兩種,分別是動態重構和靜態
    發表于 11-03 20:09 ?962次閱讀

    CW32的SPI單工模式主從通信介紹

    CW32的SPI單工模式主從通信介紹
    的頭像 發表于 10-24 15:50 ?892次閱讀
    CW32的<b class='flag-5'>SPI</b>單工<b class='flag-5'>模式</b><b class='flag-5'>主從</b>通信介紹
    现金百家乐网上娱乐| 德州扑克在线游戏| 百家乐官网技巧-澳门百家乐官网官方网址| 百家乐赌博在线娱乐| 定襄县| 百家乐翻天粤| 明升备用地址| 属龙人与属虎人做生意| 88娱乐城2官方网站| 做生意看风水| 优博线上娱乐| 15人百家乐桌布| 百家乐官网节目视频| 百家乐好赌吗| 独赢百家乐官网全讯网| 利高百家乐官网的玩法技巧和规则| 威尼斯人娱乐城真实网址| 百家乐官网官网7scs| 德州扑克下载| 博狗玩百家乐好吗| 百家乐官网视频下栽| 真博百家乐的玩法技巧和规则| 百家乐官网稳赢技法| 大发888 zhidu| 百家乐赢的技巧| 南通市| 合肥百家乐赌博游戏机| 澳门百家乐官网是骗人的| sz新全讯网新112| 澳门赌百家乐官网的玩法技巧和规则 | 百家乐官网大转轮真人视讯| 大发888设置| 百家乐娱乐城网站| 在线百家乐官网有些一| 百家乐平注资讯| 代理百家乐试玩| 大发888体育官网| 茅台百家乐官网的玩法技巧和规则| 大发888游戏下载中心| 百家乐官网押注最多是多少| 大发888为什么这么卡|