當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:給出了一個(gè)可用于SoC設(shè)計(jì)的SPI接口IP核的RTL設(shè)計(jì)與功能仿真。采用AMBA 2.0總線標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)SPI接口在外部設(shè)備和內(nèi)部系統(tǒng)之間進(jìn)行通信,在數(shù)據(jù)傳輸部分,摒棄傳統(tǒng)的需要一個(gè)專門的移位傳輸寄存器實(shí)現(xiàn)串/并轉(zhuǎn)換的

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

0 引言

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

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

1 SPI接口的定義

1.1 接口信號(hào)

SPI的接口信號(hào)為同步串行時(shí)鐘SCLK、主機(jī)輸入/從機(jī)輸出MISO、主機(jī)輸出/從機(jī)輸入MOSI、從機(jī)選擇

(低電平有效),由于只用到四根線工作,與其他接口相比具有結(jié)構(gòu)簡(jiǎn)單、速度快的優(yōu)點(diǎn)。SPI有主/從兩種工作模式,SPI總線的串行時(shí)鐘SCLK用來(lái)同步數(shù)據(jù)傳輸,在主模式下由主機(jī)產(chǎn)生,從機(jī)選擇信號(hào)

用來(lái)決定外部設(shè)備是否被選作SPI的從設(shè)備。主從設(shè)備連接方式如圖1所示。

1.2 內(nèi)部寄存器

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

1.3 傳輸時(shí)序

在本設(shè)計(jì)中,SPI的傳輸時(shí)序由控制寄存器CTRL來(lái)決定。CTRL[9]定義為RX_NEGE,置1表示數(shù)據(jù)在時(shí)鐘下降沿接收,置0為上升沿接收;CTRL[10]定義為TX_NEGE,置1表示數(shù)據(jù)在下降沿發(fā)送,置0為上升沿發(fā)送;CTRL[11]定義為L(zhǎng)SB,置1表示數(shù)據(jù)從最低位開(kāi)始傳輸,置0從最高位開(kāi)始傳輸。CTRL[6:0]定義為CHAR_LEN,為數(shù)據(jù)傳輸長(zhǎng)度,最長(zhǎng)可為128 b。以其中一種傳輸時(shí)序?yàn)槔f(shuō)明,如圖2所示。

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

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

2.1 spi_master模塊設(shè)計(jì)

spi_master的功能主要包括:

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

(2)實(shí)現(xiàn)spi_master和spi_slave之間的數(shù)據(jù)交換。

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

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

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

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

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

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

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

2.1.3 RTL代碼設(shè)計(jì)

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

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

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

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

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

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

2.2 spi_slave模塊設(shè)計(jì)

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

3 SPI接口的功能仿真

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

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

4 SPI接口的SoC平臺(tái)驗(yàn)證

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

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

5 結(jié)語(yǔ)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉