国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

支持錯誤檢測的SPI從機(jī)模塊的設(shè)計與實(shí)現(xiàn)

2016-12-26 10:06劉曉陽
電子技術(shù)與軟件工程 2016年22期

劉曉陽

摘 要

SPI是一種常見的串行總線接口,可將串行信號轉(zhuǎn)化為并行信號,有效地節(jié)約芯片的引腳。本文開發(fā)了一種SPI從機(jī)模塊,它是Ku頻段相控陣芯片的一部分。其基本結(jié)構(gòu)參照SPI標(biāo)準(zhǔn)設(shè)計,在標(biāo)準(zhǔn)的基礎(chǔ)上添加了奇偶校驗與自檢驗功能,使接口具備了在復(fù)雜電磁環(huán)境下檢測傳輸錯誤的能力。本文使用數(shù)字芯片的設(shè)計方法,完成了從前端功能設(shè)計到后端設(shè)計的全部流程,并進(jìn)行了流片。使用FPGA作為主機(jī)對芯片進(jìn)行了測試,結(jié)果符合預(yù)期,實(shí)現(xiàn)了設(shè)計目標(biāo)。

【關(guān)鍵詞】SPI 從機(jī)模塊 數(shù)字芯片設(shè)計

當(dāng)需要向集成電路芯片并行地傳輸大量信號時,會占用許多芯片引腳;但這些引腳屬于稀缺資源,不能被大量占用。為此,需要在芯片中添加接口模塊,接口使用串行模式接收數(shù)據(jù),在內(nèi)部轉(zhuǎn)換為并行模式后再傳遞給后端模塊。

SPI(Serial Peripheral Interface)是Motorola提出的一種同步串行外設(shè)接口[1],允許主機(jī)與外部設(shè)備進(jìn)行串行、同步以及全雙工的通信;它包括主機(jī)模塊和從機(jī)模塊。SPI使用四條信號線,分別是串行時鐘(SCLK)、主機(jī)輸出/從機(jī)輸入(MOSI)、主機(jī)輸入/從機(jī)輸出(MISO)以及使能信號(SS),若是需要控制多個從機(jī)只需要增加相應(yīng)的使能信號線。SPI能節(jié)約大量的引腳資源,因此被運(yùn)用于各種芯片當(dāng)中。

本文研究開發(fā)了一種SPI從機(jī)模塊,它是某雷達(dá)芯片的一部分。該芯片需要同時輸入44路控制信號,若使用并行輸入,需要44個對外引腳,這會使芯片面積大幅增大,增加成本。本文將主機(jī)控制信號串行地輸入芯片,通過SPI轉(zhuǎn)換成并行信號,再傳輸給芯片的后端模塊。根據(jù)應(yīng)用環(huán)境的需要,以SPI標(biāo)準(zhǔn)為基礎(chǔ),本文增加了自檢驗與奇偶校驗兩種糾錯模式,使芯片具備了在復(fù)雜電磁環(huán)境中進(jìn)行錯誤檢測的能力。

1 SPI從機(jī)模塊整體結(jié)構(gòu)

標(biāo)準(zhǔn)SPI從機(jī)模塊一般包括循環(huán)移位寄存器與相關(guān)控制電路。為了支持奇偶校驗與自檢驗的功能,本文設(shè)計的SPI從機(jī)模塊增加了自檢驗?zāi)K、奇偶校驗?zāi)K以及模式判斷模塊,整體結(jié)構(gòu)如圖1所示。

1.1 循環(huán)移位寄存器

這是是本設(shè)計的核心部分。SPI的主機(jī)與從機(jī)分別有一個循環(huán)移位寄存器,首尾相連,由同步時鐘驅(qū)動。每個時鐘周期,主機(jī)移位寄存器末尾的數(shù)據(jù)位通過MOSI進(jìn)入從機(jī)移位寄存器的隊首,相應(yīng)的從機(jī)移位寄存器末尾的數(shù)據(jù)通過MISO進(jìn)入主機(jī)移位寄存器的隊首,這樣就實(shí)現(xiàn)了串行、同步、全雙工的通信。

1.2 輸出寄存器

由主機(jī)傳遞至從機(jī)的數(shù)據(jù)要求在穩(wěn)定之后并行讀取,本設(shè)計在移位寄存器后添加了一個相同寬度的輸出寄存器,由FINISH信號控制,當(dāng)檢測到FINISH信號的上升沿時將移位寄存器輸出的數(shù)據(jù)讀入輸出寄存器。

1.3 模式判斷模塊

用于判斷對本幀數(shù)據(jù)進(jìn)行何種檢測。在每幀數(shù)據(jù)前添加了3位模式判斷位,模式判斷模塊讀取前3位數(shù)據(jù)并進(jìn)行判斷,決定啟動哪種檢測模塊。傳輸數(shù)據(jù)時,數(shù)據(jù)與時鐘信號同步傳輸,第1位數(shù)據(jù)到達(dá)時第1個時鐘沿也同時到達(dá),數(shù)據(jù)進(jìn)入移位寄存器,模式判斷模塊中計數(shù)器開始計數(shù)。計數(shù)到3后,計數(shù)器產(chǎn)生一個信號,將已經(jīng)進(jìn)入移位寄存器的3位數(shù)據(jù)讀入模式判斷模塊中的寄存器,并對數(shù)據(jù)進(jìn)行判斷,改變控制信號control的邏輯值,使能不同的模式。

1.4 奇偶校驗?zāi)K

檢測主機(jī)至從機(jī)的傳輸過程中是否出錯。數(shù)據(jù)按幀傳輸,每幀44位,要求對每幀數(shù)據(jù)進(jìn)行奇偶校驗。每幀數(shù)據(jù)末尾添加了1位奇偶校驗位,主機(jī)根據(jù)傳輸?shù)臄?shù)據(jù)位確定校驗位,要求保證44位數(shù)據(jù)位加1位校驗位共45位數(shù)據(jù)中‘1的個數(shù)為偶數(shù)。若模式判斷模塊判定應(yīng)當(dāng)進(jìn)入奇偶校驗?zāi)J剑瑒t啟動奇偶校驗?zāi)K,將該45位數(shù)據(jù)讀入奇偶校驗?zāi)K中的寄存器,并判斷其中‘1的個數(shù)。若為偶數(shù)則認(rèn)為傳輸中沒有出現(xiàn)錯誤。同時輸出寄存器讀入44位有效數(shù)據(jù)位至后端模塊。

1.5 自檢驗?zāi)K

檢查內(nèi)部寄存器是否出現(xiàn)問題。進(jìn)入自檢驗?zāi)J胶笠莆患拇嫫鞑辉俳邮罩鳈C(jī)傳來的數(shù)據(jù),改為接收自檢驗?zāi)K產(chǎn)生的一組已知數(shù)據(jù)。傳輸完成后,自檢驗?zāi)K再讀出移位寄存器內(nèi)的數(shù)據(jù),與已知數(shù)據(jù)進(jìn)行比較,若兩者相同說明寄存器工作正常,若有不同之處則說明寄存器出現(xiàn)故障。該模塊接收control信號作為使能,高位有效;即control為“1”時啟動自檢測模塊,進(jìn)入自檢測模式。若進(jìn)入自檢驗?zāi)J剑袚Q輸入移位寄存器的數(shù)據(jù)流,改為輸入自檢驗?zāi)K產(chǎn)生的已知數(shù)據(jù)流。接到主機(jī)傳來的FINISH信號后,自檢測模塊讀取移位寄存器中的數(shù)據(jù),與已知數(shù)據(jù)進(jìn)行比較,判斷是否出現(xiàn)錯誤。

2 SPI接口的前端與后端設(shè)計

前端設(shè)計指的是模塊邏輯功能的設(shè)計,使用硬件設(shè)計語言對模塊邏輯功能進(jìn)行描述,最后仿真驗證。本文使用VHDL進(jìn)行前端設(shè)計,VHDL是IEEE和美國國防部確立的標(biāo)準(zhǔn)硬件描述語言。

后端設(shè)計指的是從邏輯功能描述到最終用于流片的設(shè)計圖的一系列流程,主要包括綜合、添加約束、布局布線以及設(shè)計規(guī)則檢查等。幾家著名的EDA軟件公司為這些流程開發(fā)出了功能強(qiáng)大的工具軟件。本設(shè)計使用Synopsys的Design Compiler進(jìn)行綜合以及時序約束,使用Cadence的Soc Encounter進(jìn)行布局布線,最后使用Cadence的Calibre進(jìn)行DRC(Design Rule Check)以及LVS(Layout Versus Schematics)檢查。

2.1 綜合與約束

綜合指的是將硬件描述語言設(shè)計的電路,用芯片制造商提供的基本電路單元庫實(shí)現(xiàn)的過程。約束是指給設(shè)計的電路添加諸如建立時間、保持時間、Fan out等約束條件。

綜合的第一步是關(guān)聯(lián)綜合庫,本設(shè)計使用的是臺積電的0.18um工藝庫。綜合庫包括了基本電路單元的信息,如邏輯關(guān)系、尺寸、時延以及溫度等。接下來讀取設(shè)計,并根據(jù)設(shè)計需要添加相應(yīng)的約束。最后對設(shè)計進(jìn)行綜合,可以看到原先只有行為級描述的設(shè)計被替換為由基本電路單元組成的RTL級設(shè)計。除了實(shí)現(xiàn)邏輯功能外,電路中還添加了緩沖元件以及驅(qū)動元件,用于滿足時序以及驅(qū)動的約束。綜合完成后會生成網(wǎng)表,網(wǎng)表是用硬件描述語言描述的關(guān)于電路的文件,電路由基本電路單元組成。

2.2 布局布線

綜合后得到了由基本電路單元組成的電路,但是器件的布局以及之間連線的放置仍然沒有確定。對于集成電路來說,由于其器件數(shù)量多、尺寸小的特點(diǎn),布局布線會對其性能產(chǎn)生巨大的影響,甚至?xí)绊懙狡涫欠衲軌蛘9ぷ鳌N覀儾捎肅adence公司的Soc Encounter來設(shè)計集成電路的布局布線。

2.2.1 確定芯片的面積、形狀

一般來說芯片的面積要保證放置器件后其密度不會太大,應(yīng)當(dāng)給布線留下一定的空間。本設(shè)計將芯片的形狀設(shè)定為正方形。

2.2.2 添加電源環(huán)

電源環(huán)是指環(huán)繞芯片的金屬導(dǎo)線,用于給芯片內(nèi)部的基本電路單元供電,為了承受較大的電流,這些導(dǎo)線往往也比較粗。

2.2.3 布置標(biāo)準(zhǔn)單元

這些標(biāo)準(zhǔn)單元由芯片制造商提供,其高度都被設(shè)計為相同的尺寸,因此可以非常整齊的按行排列。標(biāo)準(zhǔn)單元的電源和地分別在上下兩端,因此只需要兩條線路就可以為整行標(biāo)準(zhǔn)單元供電。

2.2.4 預(yù)布線并進(jìn)行時序優(yōu)化

優(yōu)化會調(diào)整標(biāo)準(zhǔn)單元以及線路的位置,優(yōu)化可進(jìn)行多次,直到?jīng)]有時序違例后,可以添加時鐘數(shù)。添加時鐘數(shù)是在芯片內(nèi)添加一些特殊的延時以及驅(qū)動模塊,這些模塊添加在時鐘線路上,使得時序得到進(jìn)一步的優(yōu)化。之后再次進(jìn)行布線以及優(yōu)化,直到不存在時序違例為止。若是發(fā)現(xiàn)無論如何優(yōu)化都無法消除時序違例,那么就需要返回綜合與約束的步驟,對時序的約束進(jìn)行調(diào)整。

2.2.5 進(jìn)行布線(NanoRoute)

布線之后進(jìn)行優(yōu)化,若沒有違例就可以認(rèn)為這是最終的布線版本了,之后再進(jìn)行一些諸如修正金屬密度的操作,布局布線的工作就完成了。

2.3 設(shè)計規(guī)則檢查

設(shè)計規(guī)則檢查包括兩項,DRC與LVS。將經(jīng)過布局布線的設(shè)計導(dǎo)入Virtuoso中,使用內(nèi)嵌其中的Calibre進(jìn)行設(shè)計規(guī)則檢查。

DRC(Design Rule Check),即設(shè)計規(guī)則檢查,這些規(guī)則由芯片生產(chǎn)商提供,若設(shè)計不滿足這些規(guī)則,在制造芯片的時候就會造成錯誤。比較典型的一種DRC錯誤是同層金屬之間的距離過小,在制造的時候可能會導(dǎo)致兩塊金屬連到一起,造成嚴(yán)重的問題。相當(dāng)數(shù)量的DRC錯誤是可以在布局布線階段消除的,比如金屬密度等問題,在Soc Encounter中就有修正金屬密度的步驟。

LVS(Layout Versus Schematics)用于驗證版圖與邏輯圖是否匹配。將導(dǎo)入Virtuoso的版圖與Design Compiler生成的網(wǎng)表進(jìn)行比較,可以看到版圖中的元件與連線是否能與網(wǎng)表中的對應(yīng),若是對應(yīng)無誤,則說明版圖可以滿足最初設(shè)計的邏輯功能。

最終的版圖如圖2所示,圖中在核心邏輯模塊周圍加上了PAD,即與外部連接用的壓焊塊,其目的是為了對本設(shè)計進(jìn)行測試。實(shí)際芯片如圖3所示,芯片被焊在了PCB上,使用金絲將信號引出進(jìn)行測試,測試結(jié)果符合預(yù)期。

3 結(jié)語

本文設(shè)計的SPI從機(jī)接口模塊在流片后進(jìn)行了測試,使用FPGA作為主機(jī)向芯片傳輸了大量不同的數(shù)據(jù),涵蓋了設(shè)計中的各種情形。測量芯片的輸出信號,完全符合預(yù)期,說明邏輯功能正確。此設(shè)計實(shí)現(xiàn)了串行信號轉(zhuǎn)并行信號的功能,完成了設(shè)計目標(biāo)。

致謝:本論文工作得到了電子科技大學(xué)康凱教授和劉輝華老師的指導(dǎo)和幫助,在此表示衷心的感謝。

參考文獻(xiàn)

[1]Motorola/Freescale/NXP.SPI Block Guide v3.06 [EB/OL].2003.

[2]IEEE.IEEE Standard VHDL Language Reference Manual[S].ISBN 0-7381-3247-0.

[3]Rushton.A[著],劉雷波,陳英杰[譯].用于邏輯綜合的VHDL(第三版)[M].北京:北京航空航天大學(xué)出版社,2014.

[4]Bhatnagar.H[著],張文俊[譯].高級ASIC芯片綜合[M].北京:清華大學(xué)出版社,2007.

作者單位

電子科技大學(xué)英才實(shí)驗學(xué)院 四川省成都市 611731