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

用于SoC的SPI接口設(shè)計與驗證

2013-04-12 00:00:00匡春雨馬琪陳科明
現(xiàn)代電子技術(shù) 2013年24期

摘 要: 給出了一個可用于SoC設(shè)計的SPI接口IP核的RTL設(shè)計與功能仿真。采用AMBA 2.0總線標(biāo)準(zhǔn)來實現(xiàn)SPI接口在外部設(shè)備和內(nèi)部系統(tǒng)之間進行通信,在數(shù)據(jù)傳輸部分,摒棄傳統(tǒng)的需要一個專門的移位傳輸寄存器實現(xiàn)串/并轉(zhuǎn)換的設(shè)計方法,采用復(fù)用寄存器的方法,把移位傳輸寄存器和發(fā)送寄存器結(jié)合在一起,提高了傳輸速度,也節(jié)約了硬件資源。采用SoC驗證平臺進行SoC環(huán)境下對IP的驗證,在100 MHz時鐘頻率下的仿真和驗證結(jié)果表明,SPI接口實現(xiàn)了數(shù)據(jù)傳輸,且滿足時序設(shè)計要求。

關(guān)鍵詞: SPI協(xié)議; AMBA總線; SoC設(shè)計; 數(shù)據(jù)傳輸

中圖分類號: TN402?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2013)24?0149?03

Design and verification of SPI applied to SoC

KUANG Chun?yu, MA Qi, CHEN Ke?ming

(Microelectronics CAD Center, Hangzhou Dianzi University, Hangzhou 310018, China)

Abstract: The RTL design and functional simulation of SPI IP core applied to SoC design is presented in this paper. The AMBA 2.0 bus standards is adopted to achieve the communication between the peripheral devices and the internal system through SPI. As fore data transmission section, the traditional design method was abandoned, which needs a specific shift register for serial/parallel transfer. The shifting transmission register and receive register are put together by the reuse registers to improve the speed and save the hardware resources. IP is verified with an SoC verification platform under SoC environment. The results of simulation at the clock frequency of 100 MHZ show that the design can achieve data transmission and meet the requirements of time?sequence design.

Keywords: SPI I ptotocol; AMBA bus; SoC design; data transmission

0 引 言

SPI(Serial Peripheral Interface)是一種同步串行總線接口,很多器件如E2PROM、FLASH、實時時鐘、A/D轉(zhuǎn)換器等都用到了SPI接口[1],它也是SoC中的一個常用外圍功能模塊。AMBA總線是由ARM公司開發(fā)的一種高性能、開放性SoC系統(tǒng)總線,它主要包括AHB,ASB和APB三種總線類型[2]。AHB總線主要用于連接高性能、高速度的系統(tǒng)模塊,如CPU,DSP,SRAM等;APB總線主要用于連接低速外圍模塊,如UART,I2C等,接口簡單,效率高,功耗低[3];ASB總線通過連接系統(tǒng)高速部件來實現(xiàn)高速通信,一般較少用到。

本文設(shè)計一個可作為IP核用于SoC設(shè)計的SPI接口,采用AMBA2.0總線標(biāo)準(zhǔn)來實現(xiàn)SPI接口在外部設(shè)備和內(nèi)部系統(tǒng)之間進行通信,SPI接口作為低速外圍模塊掛載在APB總線上。

1 SPI接口的定義

1.1 接口信號

SPI的接口信號為同步串行時鐘SCLK、主機輸入/從機輸出MISO、主機輸出/從機輸入MOSI、從機選擇[SS](低電平有效)[4],由于只用到四根線工作,與其他接口相比具有結(jié)構(gòu)簡單、速度快的優(yōu)點。SPI有主/從兩種工作模式,SPI總線的串行時鐘SCLK用來同步數(shù)據(jù)傳輸,在主模式下由主機產(chǎn)生,從機選擇信號[SS]用來決定外部設(shè)備是否被選作SPI的從設(shè)備。主從設(shè)備連接方式如圖1所示[5]。

1.2 內(nèi)部寄存器

SPI的內(nèi)部寄存器如表1所示。

1.3 傳輸時序

在本設(shè)計中,SPI的傳輸時序由控制寄存器CTRL來決定。CTRL[9]定義為RX_NEGE,置1表示數(shù)據(jù)在時鐘下降沿接收,置0為上升沿接收;CTRL[10]定義為TX_NEGE,置1表示數(shù)據(jù)在下降沿發(fā)送,置0為上升沿發(fā)送;CTRL[11]定義為LSB,置1表示數(shù)據(jù)從最低位開始傳輸,置0從最高位開始傳輸。CTRL[6:0]定義為CHAR_LEN,為數(shù)據(jù)傳輸長度,最長可為128 b。以其中一種傳輸時序為例說明,如圖2所示。

圖1 主從設(shè)備連接圖

表1 SPI內(nèi)部寄存器

圖2 上升沿發(fā)送下降沿接收時序

2 SPI接口的RTL設(shè)計

本設(shè)計是針對SoC系統(tǒng)的,目標(biāo)是實現(xiàn)適用于SoC設(shè)計并且符合SPI通信協(xié)議的IP核,實現(xiàn)SoC通過此SPI接口和外設(shè)通信[5]。所以,本設(shè)計分成SPI主機模塊spi_master的設(shè)計和SPI從機模塊spi_slave的設(shè)計,采用Verilog HDL進行RTL設(shè)計。

2.1 spi_master模塊設(shè)計

spi_master的功能主要包括:

(1)實現(xiàn)主機通過APB總線初始化spi_master的寄存器;

(2)實現(xiàn)spi_master和spi_slave之間的數(shù)據(jù)交換。因此,spi_master模塊主要就是實現(xiàn)分頻和串并轉(zhuǎn)換,主要包含時鐘產(chǎn)生子模塊spi_clgen和數(shù)據(jù)傳輸子模塊spi_shift,其設(shè)計結(jié)構(gòu)如圖3所示[6]。

圖3 spi_master模塊結(jié)構(gòu)圖

2.1.1 時鐘產(chǎn)生子模塊設(shè)計

該子模塊主要作用是產(chǎn)生SPI主/從設(shè)備通信所需的同步串行時鐘sclk。在主模式下,sclk由系統(tǒng)提供的時鐘信號pclk分頻產(chǎn)生[7],產(chǎn)生的串行時鐘的時鐘頻率由式(1)計算得來:

[fsclk=fpclk(DIVIDER+1)×2] (1)

傳輸開始前,cnt載入DIVIDER值,滿足傳輸條件下cnt減1計數(shù),減為0時,輸出時鐘clk_out翻轉(zhuǎn),并且在clk_out的上升沿和下降沿分別產(chǎn)生pos_edge和neg_edge信號 。

2.1.2 數(shù)據(jù)傳輸子模塊設(shè)計

該子模塊的主要功能是完成數(shù)據(jù)的串/并轉(zhuǎn)換。在本設(shè)計中,該子模塊負(fù)責(zé)把內(nèi)部APB總線并行傳輸進來的數(shù)據(jù)轉(zhuǎn)化成串行數(shù)據(jù)傳輸給SPI從設(shè)備,并且把外部SPI從設(shè)備串行傳輸進來的數(shù)據(jù)轉(zhuǎn)化成并行數(shù)據(jù)傳入到APB總線上。

傳統(tǒng)的串/并轉(zhuǎn)換設(shè)計方法需要一個專門的移位傳輸寄存器,本設(shè)計采用了復(fù)用寄存器的方法,把移位傳輸寄存器和發(fā)送寄存器結(jié)合在一起。當(dāng)傳輸停止且總線鎖存使能時,數(shù)據(jù)從APB總線并行傳輸?shù)絪pi_shift移位傳輸寄存器即發(fā)送寄存器TxX,然后在傳輸時鐘使能情況下串行輸出到MOSI;而在主機接收使能的情況下,由從機MISO串行輸入數(shù)據(jù)至spi_shift移位傳輸寄存器。傳輸結(jié)構(gòu)如圖4所示,從圖4可以看出,數(shù)據(jù)傳輸位寬最大可達128 b/s。

圖4 spi_shift模塊傳輸結(jié)構(gòu)

2.1.3 RTL代碼設(shè)計

spi_master模塊代碼設(shè)計劃分如下:

(1)寄存器選擇使能信號的地址譯碼電路;

(2)讀寄存器部分,將并行數(shù)據(jù)輸出到APB總線上;

(3)控制寄存器ctrl、時鐘分頻寄存器divider、從機選擇寄存器ss初始化部分;

(4)例化時鐘分頻子模塊和數(shù)據(jù)傳輸子模塊。

為了提高代碼的復(fù)用性,特別設(shè)計了一個宏定義模塊,主要定義了傳輸最大位數(shù)SPI_MAX_CHAR,分頻寄存器位數(shù)SPI_DIVIDER_LEN,從機選擇數(shù)目SPI_SS_NB等相關(guān)數(shù)據(jù)[8]。

2.2 spi_slave模塊設(shè)計

這部分設(shè)計作為SPI的從設(shè)備與主機進行數(shù)據(jù)交換,與spi_shift模塊時鐘同步。通信開始后,從機數(shù)據(jù)最高位開始串行輸入到MISO,主機發(fā)出的數(shù)據(jù)從最低位串行輸出到MOSI。

3 SPI接口的功能仿真

本設(shè)計采用Verilog HDL編寫Testbench,使用ModelSim軟件進行功能仿真,并用Debussy軟件聯(lián)合調(diào)試并觀察波形。為了實現(xiàn)主從設(shè)備通信的仿真,編寫了一個p_master模塊并例化到測試代碼里面來模擬主機SoC對spi_master的操作,主要包括一個數(shù)據(jù)寫task、一個數(shù)據(jù)讀task、一個數(shù)據(jù)比較task。分別測試了1 b,8 b,16 b,32 b,64 b,128 b的數(shù)據(jù)。仿真全部通過,局部仿真波形如圖5所示。

圖5 局部仿真波形

以第一次傳輸為例進行分析,傳輸時調(diào)用寫任務(wù),分別向寄存器DIVIDER、TX_0、CTRL寫入32’h01、32’h5a、32’h308,設(shè)定spi_slave.data為32’ha5967e5a。由波形看出,數(shù)據(jù)在ss[0]有效傳輸,傳輸完成后MISO=8’b10100101(即32’ha5),MOSI=8’b01011010(即32’h5a),滿足了上升沿發(fā)送下降沿接收及高位先開始的數(shù)據(jù)傳輸時序。在100 MHz的主時鐘頻率下,得到串行時鐘頻率25 MHz,為4分頻,符合式(1)的計算。

4 SPI接口的SoC平臺驗證

驗證用SoC平臺具有良好的可重用性和通用性,可以方便的掛接帶有AHB/APB總線接口的IP核,并通過內(nèi)部寄存器對其進行配置和驗證,避免了對不同IP設(shè)計需要不同的Testbench平臺,提高了IP驗證的效率[9]。本設(shè)計用到的SoC驗證平臺如圖6所示[10],驗證環(huán)境為Linux操作系統(tǒng),仿真工具為VCS。

圖6 SoC驗證平臺

在SoC驗證平臺中,SPI接口作為外設(shè)連接在APB總線的Slave4端口上,地址空間為0xA400_0000~0XA4FF_FFFF。用C測試程序向Tx0寫32’h67,spi_slave.data=32’h0,局部仿真波形如圖7所示,MOSI=8’b01100111(即32’h67),MISO=8’b0,結(jié)果表明符合要求。

圖7 局部仿真波形

5 結(jié) 語

本文實現(xiàn)了基于AMBA 2.0總線的、可作為IP核用于SoC設(shè)計的SPI 接口的設(shè)計,并且經(jīng)過全面的仿真驗證,可以看出本設(shè)計滿足性能要求。

參考文獻

[1] 易志明,林凌,郝麗宏,等.SPI串行接口及其實現(xiàn)[J].自動化與儀器儀表,2002(6):45?48.

[2] 陸小艷.基于AMBA 2.0的SoC總線平臺的實現(xiàn)[D].西安:西安電子科技大學(xué),2012.

[3] 陳玉梅.面向SoC的UART及DMA控制器IP軟核的設(shè)計[D].濟南:山東大學(xué),2007.

[4] 趙杰,易波.基于AMBA總線的SPI IP核的實現(xiàn)與驗證[J].電子測量技術(shù),2010(1):74?77.

[5] 李躍峰.基于Verilog HDL的SPI可復(fù)用IP核的設(shè)計與實現(xiàn)[D].成都:西南交通大學(xué),2008.

[6] 沈圣盛.基于APB總線的接口IP核設(shè)計與驗證[D].西安:西安電子科技大學(xué),2011.

[7] 趙杰.基于AMBA總線的SPI協(xié)議IP核的實現(xiàn)與驗證[D].合肥:中國科學(xué)技術(shù)大學(xué),2009.

[8] 王二萍.高速可復(fù)用SPI總線的設(shè)計與Verilog HDL實現(xiàn)[D].開封:河南大學(xué),2007.

[9] 史明睿.SoC環(huán)境下IP核的設(shè)計與驗證[D].西安:西安電子科技大學(xué),2009.

[10] 賈凡,謝蒂,楊義先.基于AMBA總線USB控制器的SoC設(shè)計與驗證[J].電子測量技術(shù),2007(12):95?97.

主站蜘蛛池模板: 免费看久久精品99| 四虎永久免费地址| 亚洲国产精品人久久电影| 午夜色综合| 亚洲欧美日韩成人高清在线一区| 在线中文字幕网| 欧美成人综合在线| 波多野结衣亚洲一区| 成·人免费午夜无码视频在线观看| 亚洲成a∧人片在线观看无码| 久久国产免费观看| 欧美一级夜夜爽| 国产手机在线观看| lhav亚洲精品| 国产麻豆精品在线观看| AV无码一区二区三区四区| 久久99国产乱子伦精品免| 国产成人超碰无码| 国产成人精品优优av| 无码网站免费观看| 久久国产亚洲偷自| 玖玖免费视频在线观看| 欧亚日韩Av| 亚洲日韩第九十九页| 亚洲成AV人手机在线观看网站| 国产第八页| 亚洲国产av无码综合原创国产| 香蕉综合在线视频91| 亚洲精品制服丝袜二区| 国产欧美日韩在线在线不卡视频| 97在线视频免费观看| 国产丝袜一区二区三区视频免下载| 亚洲性一区| 国产黑丝一区| 免费看黄片一区二区三区| 欧美啪啪网| 国产1区2区在线观看| 日韩国产亚洲一区二区在线观看| 福利国产微拍广场一区视频在线| 亚洲三级片在线看| 91精品国产麻豆国产自产在线| 操操操综合网| 欧美成人国产| 69视频国产| 欧美日韩在线成人| 久久精品国产精品青草app| 91成人精品视频| 欧美成a人片在线观看| 久热99这里只有精品视频6| 久久窝窝国产精品午夜看片| 狠狠亚洲五月天| 亚洲三级网站| 伊人久久大香线蕉成人综合网| 99久久精品国产综合婷婷| 欧美一级在线| 国产女同自拍视频| 国产精品国产主播在线观看| 欧美日韩免费观看| jizz在线观看| 五月激激激综合网色播免费| 欧美激情视频一区二区三区免费| 国产熟睡乱子伦视频网站| 婷婷午夜天| 亚洲国产天堂久久综合| 四虎在线观看视频高清无码| 国产波多野结衣中文在线播放| 成人无码一区二区三区视频在线观看| 激情综合五月网| 又猛又黄又爽无遮挡的视频网站 | 国产区人妖精品人妖精品视频| 在线视频一区二区三区不卡| 91视频精品| 国产白浆一区二区三区视频在线| 亚洲男人的天堂视频| 亚洲日韩AV无码一区二区三区人| 99久久精品国产精品亚洲| 国产精品九九视频| 制服丝袜国产精品| 亚洲精品国产日韩无码AV永久免费网 | 国产精品偷伦在线观看| 怡红院美国分院一区二区| 好紧太爽了视频免费无码|