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

應(yīng)用于GPS導航基帶芯片的SPI IP核的設(shè)計和驗證

2013-09-14 08:06:58曹磊李曉江馬成炎
電子測試 2013年6期
關(guān)鍵詞:設(shè)計

曹磊 李曉江 馬成炎

(1.中國科學院微電子研究所,北京 100029;2.杭州中科微電子有限公司,杭州 310053;3.嘉興聯(lián)星微電子有限公司,嘉興 314000;)

0 引言

隨著SOC的規(guī)模不斷擴大,集成的IP模塊不斷增多,設(shè)計一款可復用的IP核對于減少設(shè)計復雜度、縮短SOC開發(fā)周期、提高流片成功率都是重要的一環(huán)。SPI(Serial Peripheral Interface)串行通信總線具有配置靈活,結(jié)構(gòu)簡單等優(yōu)點,被廣泛應(yīng)用于各位處理器和嵌入式系統(tǒng)當中。因此,對于SPI IP核的設(shè)計已經(jīng)成為業(yè)界的設(shè)計熱點之一,但現(xiàn)有設(shè)計功能還不夠完善。文獻[1]設(shè)計了SPI Master模塊,不具有SPI Slave功能;文獻[2]設(shè)計了一款基于FPGA的SPI總線,但是不支持四線工作模式,并且對設(shè)計本身的結(jié)構(gòu)和特性敘述不多;文獻[3]的設(shè)計實現(xiàn)了多功能化的SPI IP核,但是不支持DMA功能,所設(shè)計的SPI Master也沒作流水考慮,數(shù)據(jù)傳輸率受到限制。本文總結(jié)上述設(shè)計中存在的問題,提出了一種基于APB總線的高速可復用的SPI IP核實現(xiàn)方法,使所設(shè)計的SPI接口具有更高的實際可操作性,并且已經(jīng)在流片回來的芯片上得到了驗證。

1 SPI協(xié)議及時序概述

SPI是由Motorola公司首先在其MC68HCXX系列處理器上定義的一種高速的、全雙工的、同步的通信總線,通常只占用四根芯片管腳,分別為MOSI:串行數(shù)據(jù)輸出線,當SPI模塊為主模塊時,它輸出數(shù)據(jù);當SPI模塊為從模塊時,它接收數(shù)據(jù);MISO:串行數(shù)據(jù)輸入線,當SPI模塊為主模塊時,它接收數(shù)據(jù);當SPI模塊為從模塊時,它輸出數(shù)據(jù);SCK:同步串行時鐘,由SPI主模塊產(chǎn)生;nCS:從機片選線,低電平有效,由主模塊產(chǎn)生。協(xié)議規(guī)定了SPI的主、從兩種工作模式,工作在主模式的SPI模塊負責產(chǎn)生串行時鐘SCK和對從模塊的片選信號。

圖1 SPI外設(shè)接口的四種數(shù)據(jù)傳輸時序

SPI模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)的工作要求,其輸出串行同步時鐘SCK的極性CPOL和相位CPHA可以進行配置,因此SPI有四種傳輸時序,其共同特點是每位數(shù)據(jù)的發(fā)送/接收需要一個SCK周期,每次傳輸整數(shù)倍個8位數(shù)據(jù)。當CPOL=0時,串行時鐘的空閑狀態(tài)為低電平;當CPOL=1時,串行同步時鐘的空閑狀態(tài)位高電平。而時鐘相位CPHA則決定了數(shù)據(jù)采樣的數(shù)據(jù)沿,當CPHA=1時,在串行同步時鐘的第二個跳變沿數(shù)據(jù)被采樣;當CPHA=0時,在串行同步時鐘的第一個跳變沿數(shù)據(jù)被采樣。SPI模塊的四種

接口時序如圖1所示。

2 SPI IP核的設(shè)計

2.1 SPI IP核系統(tǒng)結(jié)構(gòu)及主要功能

該IP核應(yīng)用于國家導航基帶項目,基于APB總線進行設(shè)計。CPU或者DMA模塊可通過APB總線完成對該SPI模塊的寄存器配置、數(shù)據(jù)讀寫及中斷處理等操作。所設(shè)計的SPI電路主要包括:SPI控制寄存器SPCR、數(shù)據(jù)發(fā)送模塊TRANSMITTER、數(shù)據(jù)接收模塊RECEIVER、發(fā)送/接收同步FIFO、狀態(tài)寄存器SPSR。其總體結(jié)構(gòu)圖如圖2所示。

圖2 SPI IP核系統(tǒng)結(jié)構(gòu)

如圖2所示,所設(shè)計的SPI IP核實現(xiàn)了傳統(tǒng)SPI協(xié)議的四線結(jié)構(gòu)。同時滿足SPI的四種接口時序,通過控制寄存器的CPOL和CPHA位來控制。增加了兩個8位深度、32位寬度的同步可選FIFO,用以提高傳輸速率。每次發(fā)送/接收的比特數(shù)可在8bits、16bits、32bits選擇,并且首尾比特位的發(fā)送/接收順序也可選??紤]到部分應(yīng)用中可能需要三線結(jié)構(gòu)的SPI核進行半雙工工作,本設(shè)計可只使用SDI數(shù)據(jù)線作三線工作方式。

2.2 主要模塊的設(shè)計

本次設(shè)計主要采用自頂向下的設(shè)計方法,首先完成設(shè)計說明文檔,劃分好各子模塊和系統(tǒng)架構(gòu),再進行Verilog代碼的編寫,主要實現(xiàn)的功能和設(shè)計中部分問題的解決方法如下。

2.2.1 存儲器模塊

所設(shè)計的SPI核主要包括一個32位的控制寄存器,實現(xiàn)Master/Slave功能的切換、中斷模式/DMA模式的切換等功能的控制;一個32位的狀態(tài)寄存器,記錄發(fā)送/接收中斷、同步FIFO空滿標志等狀態(tài);兩個8X32的同步FIFO,可選擇是否使用。

2.2.2 時鐘分頻模塊

當SPI被用作Master時,將會根據(jù)控制寄存器SPI_DIV位所設(shè)置的分頻數(shù)值來對APB總線時鐘進行分頻,用以產(chǎn)生所需要的同步串行時鐘SCK。本設(shè)計可完成對APB總線時鐘進行最高4096分頻,默認分頻值是二分頻,所采用的分頻公式為:fpclk= fSCK*2SPI_DIV+1。

2.2.3 SPI Master模塊

通過控制寄存器MSTR位的配置,可將SPI IP設(shè)定在Master工作模式。在此工作模式下,SPI會自主產(chǎn)生nCS片選信號和SCK時鐘信號,同時完成SPI四種時鐘時序的產(chǎn)生邏輯。相比較傳統(tǒng)的SPI Master,本次設(shè)計不僅僅再局限于每次8比特的傳輸量,增加了16比特、32比特可選配置。并且,相比較于文獻[4]每二次的傳輸都要間隔幾個總線時鐘用來取數(shù)據(jù),會影響傳輸速率。對此,考慮到SCK一般都比APB總線時鐘周期大,可以在每組數(shù)據(jù)傳輸?shù)阶詈笠粋€比特時,輪詢發(fā)送FIFO,查看是否為空,持續(xù)半個SCK周期。若發(fā)送FIFO非空,則立即將下一組待發(fā)送數(shù)據(jù)提前準備好,結(jié)束輪詢。這樣可以實現(xiàn)傳輸?shù)倪B貫性,減小本身設(shè)計造成的傳輸延遲,增加傳輸速率。所設(shè)計的SPI Master模塊的狀態(tài)機如圖3所示。

圖3 SPI Master模塊有限狀態(tài)機

SPI在發(fā)送數(shù)據(jù)時,所發(fā)送的數(shù)據(jù)要和模塊產(chǎn)生的串行時鐘SCK保持同步,這就要求了在每次SCK后半周期的跳變沿時,發(fā)送數(shù)據(jù)才能變成下一比特。這也使得兩個狀態(tài)機在邏輯上出現(xiàn)交叉控制,相互協(xié)同工作,同時保證在SCK一個時鐘周期的第一個時鐘沿采樣接收數(shù)據(jù),第二個時鐘沿改變發(fā)送數(shù)據(jù)。

TIDLE:當每次傳輸結(jié)束或者進行復位后,狀態(tài)機處于這一狀態(tài)。在該狀態(tài)下,若控制寄存器配置成Master模式并且出現(xiàn)傳輸請求,則跳轉(zhuǎn)到TRMAS1狀態(tài)。

TRMAS1:該狀態(tài)只保持一個APB總線周期,用于向FIFO或者發(fā)送寄存器產(chǎn)生讀指令,然后直接跳轉(zhuǎn)到TRMAS2狀態(tài)。

TRMAS2:該狀態(tài)也只保持一個APB總線周期,用以將待發(fā)送的一組數(shù)據(jù)寄存到傳輸移位寄存器中,在HOLDMAS狀態(tài)下作移位發(fā)送。

HOLDMAS:保持該狀態(tài),直到發(fā)送最后一個比特位并且沒有待發(fā)送的數(shù)據(jù),期間要不斷輪詢SCK產(chǎn)生狀態(tài)機和FIFO空滿標志位。

ENDMAS:保持一個APB總線時鐘,用以產(chǎn)生傳輸結(jié)束中斷或者DMA請求信號。

CLKPH1:根據(jù)所配置的時鐘分頻數(shù)值,對應(yīng)于一個同步串行時鐘SCK周期的前半周期。

CLKPH2:根據(jù)所配置的時鐘分頻數(shù)值,對應(yīng)于一個同步串行時鐘SCK周期的后半周期,在傳輸?shù)阶詈笠槐忍厍覜]有下一組待發(fā)數(shù)據(jù)時,跳回到IDLE狀態(tài)。

2.2.4 SPI Slave模塊

相比較于Master模式,當SPI作為Slave使用時,不需要自己產(chǎn)生同步串行時鐘SCK,由外部輸入SCK時鐘。從空閑狀態(tài)到傳輸狀態(tài)的觸發(fā)條件,也是來自于主設(shè)備的nCS片選信號。由此,可以看到Slave的傳輸受到Master的控制,當Master沒有同步串行時鐘輸入時,Slave需要重新返回到空閑狀態(tài),并產(chǎn)生相應(yīng)的狀態(tài)標志位,其狀態(tài)機主要參考Master模式設(shè)計。另外,因為SCK時鐘是由Master產(chǎn)生輸入到Slave,Slave本身還有來自APB的總線時鐘,這樣當在SCK時鐘域下,完成接收數(shù)據(jù)的串行轉(zhuǎn)并行和發(fā)送數(shù)據(jù)的并行轉(zhuǎn)串行后,需要將保存好的接收數(shù)據(jù)傳輸?shù)紸PB時鐘域下,和從APB時鐘域讀取下一組待發(fā)數(shù)據(jù),這樣就需要在Slave內(nèi)部作異步時鐘處理操作,用以避免出現(xiàn)亞穩(wěn)態(tài)現(xiàn)象。所采取的方法如圖4所示。

圖4 SPI Slave異步時鐘處理設(shè)計

在SCK時鐘域和APB時鐘域之間,每次交換的都是多比特數(shù)據(jù),不能采用傳統(tǒng)的單比特同步方法。在本次設(shè)計中,使用的是類似于握手協(xié)議的處理方法[5],當一次傳輸完成,SCK時鐘域內(nèi)會產(chǎn)生單比特的標志信號送到APB時鐘域下,經(jīng)過兩級時鐘采樣再作為控制信號,再將SCK時鐘域下接收的數(shù)據(jù)轉(zhuǎn)移到APB時鐘域下,同時將APB時鐘域下準備好的下組待發(fā)數(shù)據(jù)轉(zhuǎn)移到SCK時鐘域下。這樣就可以滿足異步信號的建立和保持時間沖突問題,避免亞穩(wěn)態(tài)的產(chǎn)生。

3 仿真驗證和綜合結(jié)果

本設(shè)計,首先用Synopsys公司的VCS仿真軟件,用Verilog HDL語言編寫頂層的Testbench,并在該頂層內(nèi)編寫測試變量,進行功能仿真。然后,利用Synopsys公司的Design Compile軟件進行綜合,得到網(wǎng)表和延時文件再回到VCS軟件中進行時序仿真。最后,再采用Altera公司EP3SL150F1152 FPGA芯片搭建的驗證平臺上,配合導航芯片ATGB03的其他模塊,完成實測。在驗證無誤的情況下,已經(jīng)成功流片并且流片回歸測試運行正常,完全符合設(shè)計要求。

3.1 軟件仿真驗證

該部分的測試代碼設(shè)計思路是,在建立的頂層Testbench模塊內(nèi)[6][7],實例化兩個SPI模塊SPI_M和SPI_S,分別設(shè)置成主模塊和從模塊,完成數(shù)據(jù)的收發(fā)測試。圖5所示為VCS軟件上局部時序仿真圖。分別對應(yīng)著SPI Master模式下,相鄰發(fā)送數(shù)據(jù)可以產(chǎn)生連續(xù)的同步串行時鐘SCK;以及從SPI Master中發(fā)送的數(shù)據(jù)進過SPI Slave模塊接收存儲后,能正確的通過APB總線進行讀取。

圖5 SPI IP核仿真結(jié)果

從圖5(a)中可以看到,每次最高可以完成32比特的傳輸,并且當mas_cr_byte=0x01時,傳輸?shù)阶詈笠粋€比特,會自動開始下一組數(shù)據(jù)的發(fā)送,不需要再延遲幾個APB時鐘周期。內(nèi)部設(shè)計的兩個狀態(tài)機繼續(xù)保持在傳輸狀態(tài),大大提高了傳輸效率。在圖5(b)中,SPI Master中的數(shù)據(jù)tr_data_out,在進過并轉(zhuǎn)串處理,從sdi端傳輸?shù)絊PI Slave模塊。SPI Slave模塊對串行數(shù)據(jù)完成采樣存儲到接收FIFO后,從APB總線讀取到的接收數(shù)據(jù)prdata和所發(fā)送的數(shù)據(jù)tr_data_out一致。

3.2 綜合結(jié)果

使用Synopsys公司的Design Compile軟件,對所寫的SPI IP進行綜合,所得到的report_area如 圖6所 示。在SMIC 0.13工藝下,模塊的總面積為37566.1,約合7513邏輯門。在將APB總線時鐘設(shè)置在60MHz情況下,SPI IP運行在20MHz仍能完成數(shù)據(jù)的傳輸,達到了設(shè)計目的。

圖6 SPI IP在SMIC 0.13工藝下的綜合結(jié)果

4 結(jié)束語

本文設(shè)計一種應(yīng)用于GPS導航芯片的可復用SPI IP核,它具有功能完善、速度快、可重用性高等特點,并通過了仿真驗證、邏輯綜合和FPGA平臺測試,證明了其設(shè)計的可靠性和實用性,目前已經(jīng)成功應(yīng)用到已經(jīng)量產(chǎn)的ATGB03 GPS導航芯片上,具有實際的商業(yè)價值。

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

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

[3] 郭林,劉文杰,李躍輝. 基于FPGA的可復用SPI總線實現(xiàn)[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] 謝修祥,王廣生 異步多時鐘系統(tǒng)的同步設(shè)計技術(shù)[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核的設(shè)計與驗證[J].單片機與嵌入式系統(tǒng)應(yīng)用. 2004(11):5-8.

猜你喜歡
設(shè)計
二十四節(jié)氣在平面廣告設(shè)計中的應(yīng)用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統(tǒng)設(shè)計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設(shè)計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發(fā)生器仿真設(shè)計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過?!律O(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設(shè)計到“設(shè)計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 国产v精品成人免费视频71pao| 亚洲香蕉伊综合在人在线| 伊人AV天堂| 99视频国产精品| 国产成人狂喷潮在线观看2345| 成年人国产视频| 麻豆精品久久久久久久99蜜桃| 一边摸一边做爽的视频17国产| 中文字幕欧美日韩| 国产成人艳妇AA视频在线| 国产一区亚洲一区| 国产成人艳妇AA视频在线| 欧美成人第一页| 伊人精品视频免费在线| 制服丝袜亚洲| 亚洲色中色| 日韩精品免费一线在线观看| 精品国产毛片| 狠狠亚洲五月天| 丁香婷婷综合激情| 东京热一区二区三区无码视频| 黄色网址手机国内免费在线观看| 国产精品美人久久久久久AV| 91亚洲免费| 国产一区二区三区在线观看视频| 中文字幕乱妇无码AV在线| 国产精品妖精视频| 成人综合久久综合| 日韩在线影院| 真人高潮娇喘嗯啊在线观看| 91欧美亚洲国产五月天| 精品视频一区二区三区在线播| 欧洲亚洲欧美国产日本高清| 日韩欧美中文亚洲高清在线| 国产精品xxx| 欧美日韩一区二区在线免费观看| 亚洲动漫h| 热热久久狠狠偷偷色男同| 国产福利一区视频| 91免费国产高清观看| 人妻精品久久久无码区色视| 四虎影视库国产精品一区| 高清色本在线www| 国产高清自拍视频| 青青草国产在线视频| 永久免费无码成人网站| 成人福利在线免费观看| 97久久精品人人做人人爽| 国产精品部在线观看| 多人乱p欧美在线观看| 久久精品人人做人人爽97| 日本爱爱精品一区二区| 亚洲免费三区| 精品伊人久久久香线蕉| 91麻豆久久久| 亚洲欧美国产五月天综合| 亚洲一区波多野结衣二区三区| 沈阳少妇高潮在线| 国产成在线观看免费视频| 这里只有精品在线| 亚瑟天堂久久一区二区影院| 青青草原偷拍视频| 亚洲国产中文综合专区在| 久久一日本道色综合久久| A级毛片无码久久精品免费| 亚洲,国产,日韩,综合一区| 久久综合成人| 97精品久久久大香线焦| 精品在线免费播放| 成年免费在线观看| 国产成人一区免费观看| 精品无码国产自产野外拍在线| 国产亚洲高清视频| 天天干天天色综合网| 日韩中文精品亚洲第三区| 国产精品三级专区| 亚洲中文无码h在线观看| 国产乱子伦精品视频| 黄色国产在线| 91视频区| 国产乱子伦精品视频| 午夜天堂视频|