999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于APB總線接口的SPI協議IP核的設計與驗證

2013-12-31 00:00:00郭艾華
無線互聯科技 2013年11期

摘 要:基于APB總線接口,設計了一種可靈活配置為Master/Slave模式、設置傳輸速率、支持DMA功能并適用于4種時鐘模式的SPI 協議IP核。首先介紹了SPI協議標準,然后詳細說明了該IP核的系統結構、接口信號和子模塊設計,并使用了Verilog HDL語言實現硬件設計。最后通過了FPGA時序仿真,驗證了該設計的正確性。該IP核已成功用于一款通信芯片,證明了該IP核在實際工程中的可行性。

關鍵詞:SPI協議;IP核;Verilog HDL;FPGA

1 引言

隨著集成電路工藝的不斷發展,SOC的規模不斷擴大,集成的IP模塊不斷增多,可復用IP核可以大幅減少設計的復雜度,縮短SOC的開發周期和提高流片成功率。SPI(Serial Peripheral Interface)串行通信總線具有配置靈活,結構簡單等特有的優點,被廣泛應用于各位處理器和嵌入式系統當中。因此,SPI協議IP核設計已經成為業界的設計熱點之一,但現有的設計功能還不夠完善。文獻[1]設計了一種SPI協議總線,只具有Master功能,不具有Slave功能;文獻[2]設計了一種基于FPGA的SPI協議總線,但是不支持四線工作模式,并且對總線本身的結構和特性敘述不多,缺乏通用性;文獻[3]設計了一種多功能化的SPI協議IP核,但是不支持DMA功能,所設計的IP核 Master模塊也沒有作流水考慮,數據傳輸率受到限制。本文提出了一種基于APB總線的高速可復用的SPI協議IP核,解決了上述設計中存在的問題,并具有更高的可行性,方便靈活,并且已經得到了驗證,成功應用于一款基帶通信芯片。

2 SPI協議及時序概述

SPI是一種高速高效率的串行接口技術,由Motorola公司提出。通常由1個主模塊和1個或多個從模塊組成,主模塊選擇一個從模塊進行同步通信,從而完成數據交換。

SPI協議在芯片的管腳上通常只占用四根芯片管腳,分別對應于四種信號:MOSI:主模塊數據輸出,從模塊數據輸入;MISO:主模塊數據輸入,從模塊數據輸出;SCK:時鐘信號,由主模塊產生;CSn:片選信號,低電平有效,由主模塊產生。該協議規定了SPI模塊主從兩種工作模式,主模塊產生串行時鐘SCK和對從模塊的片選信號。

SPI模塊在和外設進行數據交換時,根據外設的工作要求,其時鐘信號SCK的極性(CPOL)和相位(CPHA)可以進行配置。因此,SPI有四種傳輸時序:CPOL=0時,串行時鐘的空閑狀態為低電平;CPOL=1時,串行同步時鐘的空閑狀態位高電平;CPHA=1時,在SCK的第二個跳變沿數據被采樣;CPHA=0時,SCK的第一個跳變沿數據被采樣。SPI協議4種數據傳輸時序如圖1所示。

3 SPI IP核的設計

3.1 SPI IP核系統結構及主要功能

本IP核基于APB總線進行設計,可連接APB Host(例如ARM CPU等)。APB Host通過APB總線完成對SPI模塊進行狀態控制、數據讀寫和中斷處理等操作。系統結構圖如圖2所示,設計的SPI電路主要包括以下模塊:SPI控制寄存器SPCR、數據發送模塊TRANSMITTER、數據接收模塊RECEIVER、發送/接收同步FIFO、狀態寄存器SPSR。

由圖2所示,所設計的SPI協議IP核實現了傳統的4線結構,同時通過控制寄存器的CPOL和CPHA位來控制,滿足了4種接口時序。此外,增加了兩個8位深度、32位寬度的同步可選FIFO,用以提高傳輸速率。每次發送/接收的比特數可自由在8比特、16比特和32比特間選擇,并且首尾比特位的發送/接收順序也可選。基于實際應用中存在的半雙工工作要求,本設計也可以只使用SDI數據線的三線工作方式,使IP核進行半雙工工作,增強了本設計的通用性。

3.2 主要模塊的設計

SPI核主要模塊設計包括存儲器模塊、時鐘分頻模塊、Master模塊和Slave模塊的設計。

3.2.1 存儲器模塊

存儲器模塊主要包括一個32位的控制寄存器、一個32位的狀態寄存器和兩個8X32的同步FIFO。控制寄存器實現Master/Slave功能的切換、中斷模式/DMA模式的切換等;狀態寄存器記錄發送/接收中斷、同步FIFO空滿標志等狀態;兩個同步FIFO可選擇是否使用。

3.2.2 時鐘分頻模塊

主模塊會根據控制寄存器SPI_DIV所設置的分頻值來對APB總線時鐘進行分頻,產生從模塊需要的時鐘信號SCK。本設計默認分頻值為二分頻,最高可完成對APB總線時鐘4096分頻,分頻公式為:

3.2.3 SPI Master模塊

控制寄存器MSTR位可以將SPI協議IP核設定在Master工作模式。工作于此模式下,IP核將產生CSn片選信號和SCK時鐘信號,同時完成SPI四種時鐘時序的產生邏輯。相對于傳統的SPI 協議Master,本IP核不再局限于每次8比特的傳輸量,增加了16比特、32比特可選配置。傳統的SPI協議IP核沒有數據流水線機制,相鄰的數據傳輸需要間隔幾個時鐘來讀取數據,影響傳輸速率。本IP協議核引入流水線機制,在數據傳輸到最后一比特時,查詢FIFO是否為空。若飛空,則立即將下一組待發數據提前準備好,結束查詢,這樣實現了傳輸的連續性,提高了傳輸速率。SPI協議 Master模塊的狀態機如圖3(a)所示。

SPI在發送數據時,發送的數據要和模塊產生的串行時鐘信號SCK保持同步,因此要求在每次SCK后半周期的跳變沿時,發送數據才能更新為下一比特。這也使得兩個狀態機在邏輯上出現交叉控制,相互協同工作,保證在SCK一個時鐘周期的第一個時鐘沿采樣接收數據,第二個時鐘沿改變發送數據。

TIDLE:空閑狀態,每次傳輸結束或者復位后,狀態機即處于這一狀態。該狀態克通過控制寄存器配置為Master模式并出現傳輸請求,則跳轉為TRAMAS1狀態。

TRMAS1:讀指令狀態,該狀態保持一個APB總線周期,在此周期內向FIFO或者發送寄存器產生讀指令,然后直接跳轉到TRMAS2狀態。

TRMAS2:寫寄存器狀態,該狀態也保持一個APB總線周期,在此周期內將待發送的一組數據寄存到傳輸移位寄存器中,在HOLDMAS狀態下作移位發送。

HOLDMAS:保持狀態,該狀態下Master向外設發送數據,直到發送最后一個比特位并且沒有待發送的數據。為了提高傳輸速率,此期間要不斷輪詢SCK產生狀態機和FIFO空滿標志位。

ENDMAS:結束狀態,保持一個APB總線時鐘,產生傳輸結束中斷或者DMA請求信號。

CLKPH1:根據配置的時鐘分頻數值,對應于一個同步串行時鐘SCK周期的前半周期。

CLKPH2:根據配置的時鐘分頻數值,對應于一個同步串行時鐘SCK周期的后半周期。在傳輸到最后一比特且沒有下一組待發數據時,跳回到IDLE狀態。

3.2.4 SPI Slave模塊

SPI作為Slave模塊使用時,由外部輸入SCK時鐘信號。模塊從空閑狀態到傳輸狀態的觸發條件,也是來自于主設備的CSn片選信號。Slave模塊的傳輸受到Master模塊的控制,當Master模塊沒有同步串行時鐘信號輸入時,Slave模塊需要重新返回到空閑狀態,并產生相應的狀態標志位。SLAVE模塊狀態機主要參考Master模式設計。此外,時鐘信號SCK由Master產生輸入到Slave,Slave本身還接受來自APB的總線時鐘信號,當在SCK時鐘域下,完成接收數據的串行轉并行和發送數據的并行轉串行后,需要將保存好的接收數據傳輸到APB時鐘域下,和從APB時鐘域讀取下一組待發數據,因此需要在Slave內部作異步時鐘處理操作,來避免亞穩態現象出現。異步時鐘處理采取的方法如圖4所示。

在SCK時鐘域和APB時鐘域之間,每次交換的是多比特數據,因此不能采用傳統的單比特同步方法。在本次設計中,采用的是類似于握手協議的處理方法[5],當一次數據傳輸完成后,SCK時鐘域內會產生單比特的標志信號送到APB時鐘域下,經過兩級時鐘采樣后作為控制信號,再將SCK時鐘域下接收的數據轉移到APB時鐘域下,同時將APB時鐘域下準備好的下組待發數據轉移到SCK時鐘域下。通過此方法就可以避免異步信號的建立和保持時間沖突問題,避免亞穩態現象的產生。

4 仿真驗證和綜合結果

首先用Verilog HDL語言編寫頂層的Testbench,在該頂層內編寫測試變量,通過Synopsys公司的VCS仿真軟件進行功能仿真。然后通過Design Compile軟件進行綜合,得到網表文件再使用VCS軟件進行時序仿真。最后,再在FPGA芯片搭建的驗證平臺上,配合通信芯片的其他模塊,完成實測。經過驗證測試,完全符合設計要求。

4.1 軟件仿真驗證

在頂層Testbench模塊內[6][7],實例化兩個SPI模塊SPI_M和SPI_S,分別設置成主模塊和從模塊,相互連接進行數據傳輸,并把APB總線信號設為寄存器變量,向兩個SPI模塊發送命令和讀寫數據,完成數據的收發測試。圖5所示為部分數據時序仿真圖。圖(a)對應著SPI Master模式下,相鄰發送數據可以產生連續的同步串行時鐘SCK;圖(b)顯示了SPI Master中發送的數據經過SPI Slave模塊接收并存儲后,通過APB總線進行讀取能得到正確的驗證。

此外,圖5(a)中可以看到,每次最高可以完成32比特的傳輸,并且當mas_cr_byte=0x01時,傳輸完最后一個比特后,會自動開始下一組數據的發送,不需要延遲APB時鐘周期。內部設計的兩個狀態機繼續保持在傳輸狀態,大大提高了傳輸效率。圖5(b)中,SPI Master中的數據tr_data_out,經過轉串處理,從sdi端傳輸到SPI Slave模塊。SPI Slave模塊對串行數據進行采樣并存儲到接收FIFO后,APB總線讀取到的接收數據prdata和發送的數據tr_data_out一致。

4.2 綜合結果

使用Synopsys公司的Design Compile軟件,在SMIC0.13μm工藝下,對SPI協議IP核進行綜合,所得到的report_area如圖6所示。模塊的總面積為37566μm2,約合7500邏輯門。

5 結束語

本文設計一種應用于通信芯片中的可復用SPI協議IP核,它具有功能完善、使用方便靈活、速度快、可重用性高等特點,并通過了仿真驗證、邏輯綜合和FPGA平臺測試,證明了其設計的可靠性和實用性,并具有作為IP核進行ASIC設計或者FPGA設計的工程價值。

[參考文獻]

[1]李大江,崔建明.一種基于FPGA的可配置SPI Master接口設計實現[J].電子技術應用,2010.10(36):60-62.

[2]汪永琳,丁一.一種3線半雙工SPI接口設計[J].半導體技術, 2010.5(35):482-484.

[3]郭林,劉文杰,李躍輝.基于FPGA的可復用SPI總線實現[J] .2012.4(155):34-37.

[4]Jianlong Zhang,Chunyu Wu,Wenjing Zhang.The design and realization of a comprehensive SPI interface controller [J]. IEEE 2011.2:4529-4532.

[5]謝修祥,王廣生.異步多時鐘系統的同步設計技術[J].電子工程師. 2005.5(31):36-38.

[6]Bergeron Janick.Writing testbenches: functional verification of HDL models [M].[S.L]:Kluwer Academic Publishers.2003.

[7]高谷剛,羅春.可復用SPI模塊IP核的設計與驗證[J].單片機與嵌入式系統應用,2004(11):5-8.

作者簡介:郭艾華(1979-),男,講師、碩士、數據庫系統工程師,長期從事軟件技術專業的教學與研究,對編程技術、數據庫系統理論及工程技術有較深的了解。

主站蜘蛛池模板: 色综合久久无码网| 国产精品55夜色66夜色| 国内精品一区二区在线观看| Jizz国产色系免费| 色婷婷视频在线| 婷婷亚洲最大| 岛国精品一区免费视频在线观看 | 无码区日韩专区免费系列| 欧美在线精品一区二区三区| 女人毛片a级大学毛片免费| 亚洲第一网站男人都懂| 成人字幕网视频在线观看| 国产91高跟丝袜| 成年人国产网站| AV不卡国产在线观看| 国产精品免费入口视频| 在线播放真实国产乱子伦| 成人福利视频网| 成人第一页| 国产乱子伦手机在线| 国产日本欧美在线观看| 久久国产免费观看| 2021国产精品自产拍在线| 伊人五月丁香综合AⅤ| 亚洲av片在线免费观看| 亚洲无码视频喷水| 国产精品久久久久婷婷五月| 欧美区日韩区| 国产va在线观看免费| 亚洲一级毛片在线观| 欧美人人干| 人妻精品全国免费视频| 毛片网站观看| 婷婷亚洲天堂| 一级黄色网站在线免费看| 色噜噜久久| 亚洲精品无码高潮喷水A| 国产高颜值露脸在线观看| 欧美精品H在线播放| 国产综合精品日本亚洲777| 成人综合在线观看| 国产h视频在线观看视频| 免费人成在线观看成人片| 国产免费好大好硬视频| 国产99精品久久| 久久影院一区二区h| 91蜜芽尤物福利在线观看| 在线看国产精品| 婷婷成人综合| 中文字幕天无码久久精品视频免费| 亚洲欧洲日本在线| 亚洲嫩模喷白浆| 国产乱子伦一区二区=| 亚洲国产精品一区二区高清无码久久| 自慰网址在线观看| 看看一级毛片| 亚洲二区视频| 亚洲免费福利视频| 永久免费精品视频| 欧美色图第一页| 亚洲成人在线网| 黄色在线网| 日本午夜三级| 久久国产精品77777| 欧美成人a∨视频免费观看| 精品福利国产| 五月婷婷丁香综合| 精品国产91爱| 91 九色视频丝袜| 亚洲AV色香蕉一区二区| 国产精品第一区| 国产精品亚洲综合久久小说| 午夜福利在线观看入口| 久久精品欧美一区二区| 免费黄色国产视频| 制服丝袜一区| 91亚洲精品国产自在现线| 免费观看欧美性一级| 色噜噜狠狠狠综合曰曰曰| 亚洲欧洲天堂色AV| 国产精品亚洲专区一区| 国产精品自在拍首页视频8|