1、簡介
IPOntellectualPIDperty)是隨著EDA(ElectroniDesignAn-tomation)技術(shù)發(fā)展而提出的新概念。隨著微電子工業(yè)的飛速革命,集成電路的設(shè)計規(guī)模越來越大,以滿足日漸復(fù)雜的電子系統(tǒng)的需要,同時又由于上市時間廠linetoMarket)的要求,必須花費盡可能少的時間來證明部件和系統(tǒng)的可靠性。所以,從共享的角度來看待問題,對已經(jīng)過設(shè)計驗證的功能模塊的重用無疑是解決這個瓶頸的最佳方案。
當(dāng)前的設(shè)計思想是類似軟件的面向?qū)ο蟮母拍睿捎锰摂M插座VS(VirtuaS0ckets)的概念,把多個不同來源的電路模塊組合起來達(dá)到要求的功能,并將其集成在一塊硅片上。IP就是實現(xiàn)這種功能模塊的混合、嗎配和重用以實現(xiàn)片上系統(tǒng)(SystemonACh響設(shè)計的最好方法。這將使系統(tǒng)級IC集成設(shè)計成為切實可行的技術(shù)方向。
IP就其本質(zhì)來講即是一個能提供正確接口信號的功能模塊。MentorGraPhics所下的定義是可重用的部件(ReusableComPOnentS)。具體在ASIC/IC設(shè)計中,通常指的是一個軟核,是一個通過具體電路驗證(Silicon-Verified)的功能模塊,它以可綜合的寄存器傳輸級RWRegisterTranslationbevel)文件給出,通過庫文件調(diào)用可實現(xiàn)它的重用。
2、可編程DMA控制器
DMA直接存儲器存取臟制器是用于微處理器系統(tǒng)的外圍接口電路芯片。它能夠增強(qiáng)系統(tǒng)外部設(shè)備同主存儲器之間信息傳送的性能,從而增強(qiáng)數(shù)據(jù)吞吐量。
8237A是Intel公司推出的8位DMA控制器,提供了大量的可編程控制特性,同時可以允許程序動態(tài)編程控制而優(yōu)化系統(tǒng)。它主要配合微控制器,完成外圍設(shè)備與存儲器之間的大量高速數(shù)據(jù)傳輸工作,并且它也提供存儲器到存儲器的傳送功能。當(dāng)前存在著大量采用8237A作為外圍接口電路芯片的微控制電路,所以8237A的IP設(shè)計對于這些系統(tǒng)片上集成具有重要意義。
8237A的IP包含以下幾個特點:
?。?)包含了四個通道,每個通道可以有四種工作模式,可以單字節(jié)傳送、塊傳送房求傳送、級連工作。每個通道可以通過級連模式連接附加的控制器芯片而擴(kuò)展成為任意通道數(shù),其它的三個模式可以由用戶編程為外圍器件提供DMA傳送服務(wù)。
?。?)通道編程設(shè)置為自動初始化,每當(dāng)傳送結(jié)束或者EOP信號有效時,通道可以自動初始化。由于每個通道的地址和字寄存器都是16位,所以具有64K地址以及字計數(shù)能力。
(3)提供通道優(yōu)先權(quán)控制,進(jìn)行固定和循環(huán)優(yōu)先權(quán)調(diào)度。8237A最突出的特點是具有對多種傳輸方式的控制。
3、電路功能模塊設(shè)計
整個系統(tǒng)設(shè)計成為全同步電路。根據(jù)Intel提供的器件時序,設(shè)計在系統(tǒng)時鐘CLK的下降沿將狀態(tài)翻轉(zhuǎn),給出相應(yīng)控制信號;而系統(tǒng)的數(shù)據(jù)通道在系統(tǒng)時鐘CLK的上升沿進(jìn)行數(shù)據(jù)傳遞。通過對文獻(xiàn)間所進(jìn)行的邏輯分析,所設(shè)計的IP電路劃分為如下模塊:接口模塊、通道請求優(yōu)先級及屏蔽控制模塊。中央控制模塊、通道地址和計數(shù)器控制模塊、命令寄存器模塊、狀態(tài)寄存器模塊。如圖1。
3.1接口模塊
接口電路的主要功能是實現(xiàn)與CPU和存儲器以及外部設(shè)備的連接。接收CPU寫入的命令字、地址、字節(jié)數(shù)、模式控制率等;向CPU提供狀態(tài)字以及各個寄存器的內(nèi)容。對于存儲器和外設(shè)的接口一般都是提供傳輸數(shù)據(jù)的當(dāng)前地址,在存儲器至存儲器傳輸工作模式下,還要使用臨時寄存器Temp對傳輸?shù)臄?shù)據(jù)進(jìn)行暫存。
3.2通道請來優(yōu)先級及屏蔽控制模塊
這個模塊利用邊沿檢測器和或邏輯實現(xiàn)了對DREQ(DMARequest晴求的沿觸發(fā)以及電平觸發(fā)的檢測。同時通過優(yōu)先級設(shè)置和屏蔽寄存器的設(shè)置判定對應(yīng)請求是否有效,之后將有效的請求送給中央控制模塊,由中央控制模塊對相應(yīng)的通道進(jìn)行處理,并且發(fā)送DACK(DMAcknowle吃小向應(yīng)信號通知外設(shè)撤消DREQ請求。優(yōu)先級可以用命令方式設(shè)置為固定優(yōu)先級和循環(huán)優(yōu)先級。
3.3中央控制模塊
這是整個IP設(shè)計的核心部分,該模塊作為DMA控制器的主要工作模塊,相應(yīng)地執(zhí)行各種控制命令,負(fù)責(zé)在空閑(id由周期響應(yīng)CPU操作;在執(zhí)行(ActiVe調(diào)期,協(xié)調(diào)DMA內(nèi)部的其它模塊,接管總線控制,提供數(shù)據(jù)傳輸所需要的所有地址、數(shù)據(jù)暫存控制,并向外提供讀寫時序信號。
8237A的工作過程可以分為7個狀態(tài),即SI,SO,S1,S2,S3,S4和Sw。它的狀態(tài)轉(zhuǎn)移如圖2所示。該模塊的主要構(gòu)成部分就是系統(tǒng)狀態(tài)機(jī),而其中的引,SZ,S4狀態(tài)對于數(shù)據(jù)通道進(jìn)行主要操作,8237A是一個同步電路,所以中央控制模塊就設(shè)計成一個同步狀態(tài)機(jī),每個狀態(tài)都是一個時鐘周期的寬度。
3.4 ?Inc/Dec單元
因為在S1,S2,S4這三個狀態(tài),也就是三個周期中,8237A必須執(zhí)行加載,地址改變,恢復(fù)這三個操作,而在部分情況下地址必須要求在S4改變,所以就不能保證一個周期一個操作。這樣就必須以每個通道的當(dāng)前寄存器作為Inc/Dec的源和目的操作數(shù)。
如果每個通道的地址和計數(shù)采用同步計數(shù)器,該同步計數(shù)器由每個通道的當(dāng)前寄存器實現(xiàn),這樣的話,四個通道的地址和字?jǐn)?shù)計算就至少需要四個同步計數(shù)器;那么這個設(shè)計與直接采用組合邏輯Inc/Dec單元的設(shè)計相比,就少了一個4路16位的多路選通器。如果按照ASIC庫標(biāo)準(zhǔn)單元設(shè)計,該多路選通器將占用16X4個CMOS門,同時由于同步計數(shù)器的進(jìn)位判斷邏輯并本比直接的組合邏輯Inc單元少,所以在假設(shè)門的傳輸延遲滿足工作頻率的情況下,它們都可以采用每級一個與門的邏輯,應(yīng)該為14個二輸入與門與匕個二輸入異或門,每個與門占用兩個CMOS門,每個異或門占用四個CMOS門。這樣采用同步計數(shù)器將占用Zx4xl4+4x4xls=352個CMOS門;采用組合邏輯Inc單元將占用16X4+Zxl4+4X15=152個CMOS門。即使在只有加1邏輯的情況下,同步計數(shù)器的進(jìn)位判斷邏輯比直接的組合邏輯Inc單元多。如果再加上減1邏輯,同步計數(shù)器占用的CMOS門將會以接近4倍的關(guān)系和直接的組合邏輯Inc/Dec單元一起增長,所以應(yīng)該采用組合邏輯Inc/Dec單元。
當(dāng)然以上的設(shè)計都是在采用ASIC標(biāo)準(zhǔn)單元庫的情況下,由于采用FPGA實現(xiàn)時,沒有可以直接利用的MUX單元,4路16位的多路選通器就會占用較多的邏輯資源,同時影響系統(tǒng)頻率的提高,而且FPGA中提供專用的進(jìn)位鏈邏輯來優(yōu)化計數(shù)器設(shè)計,所以應(yīng)該采用四個同步計數(shù)器的設(shè)計實現(xiàn)。所以在IP的設(shè)計中,考慮到實現(xiàn)目標(biāo)工藝的不同,以及對于系統(tǒng)整體性能的需求不同,提供了可以參數(shù)化選擇的實現(xiàn)方法。
3.5先后觸發(fā)器
在8237ADMA控制器中,先后觸發(fā)器的作用就是在系統(tǒng)讀寫DMA中的16位寄存器時,提供高低8位寄存器部分的先后次序控制。
設(shè)計中,對于高低8位寄存器部分的讀寫要根據(jù)先后觸發(fā)器的值進(jìn)行判斷操作。由于整個系統(tǒng)是同步設(shè)計,就不能采用利用讀寫信號的上升沿直接將先后觸發(fā)器翻轉(zhuǎn)的方法。所以,設(shè)計中對讀寫信號進(jìn)行邊沿檢測,利用檢測得到的讀寫結(jié)束信號,在時鐘的上升沿將觸發(fā)器翻轉(zhuǎn)。而且,由于并不是所有的對內(nèi)部寄存器的讀寫都需要翻轉(zhuǎn)先后觸發(fā)器,所以還要對地址的進(jìn)行判斷,但是如果在讀寫信號結(jié)束時進(jìn)行檢測,此時的地址可能已經(jīng)改變。所以設(shè)計中在讀寫信號的開始時就進(jìn)行檢測,并將結(jié)果保存,以供在讀寫信號結(jié)束時判斷是否翻轉(zhuǎn)觸發(fā)器。
所以系統(tǒng)中先后觸發(fā)器有四個邊治檢測器,兩個用來檢測端口讀寫信號的開始,兩個用來檢測端口讀寫信號的結(jié)束。
3.6連續(xù)傳輸時SI狀態(tài)加載高8位地址控制
在DMA連續(xù)傳輸時,當(dāng)?shù)刂返牡?位從ox00向oxFF變化時,或從oxFT向ox00變化時,需要進(jìn)入引狀態(tài)加載已經(jīng)變化了的高8位地址。因為地址加1減1邏輯不是用計數(shù)器實現(xiàn)的,所以無法采用低8位的進(jìn)位借位信號進(jìn)行判斷。設(shè)計中采用將高8位的最低位值與運算后得到的值進(jìn)行異或(XOR),該值的作用就如同進(jìn)位借位標(biāo)志。
4、實現(xiàn)與驗證
對于可編程DMA控制器IP的設(shè)計實現(xiàn)是采用TOp-down設(shè)計方法,首先建立了一個可供仿真的頂層模型,在仿真環(huán)境中確定了各種控制信號的時序關(guān)系,之后才使用具體的功能電路逐步細(xì)化整個系統(tǒng)。這種設(shè)計方法,可以在設(shè)計的初期就能夠發(fā)現(xiàn)結(jié)構(gòu)設(shè)計中存在的錯誤和瓶頸,以避免反復(fù)設(shè)計。由于可編程DMA控制器IP是同步電路,所以在設(shè)計中盡量采用各種同步信號,并且采用一些措施來減少組合路徑的延遲,提高系統(tǒng)的工作時鐘頻率,同時消除毛刺,使電路性能更加穩(wěn)定。
在設(shè)計中,作者采用VHDL(VHSIHaldDtSCriptionban-gUage)語言編寫代碼。利用SynoPsys的Design-Analyzer進(jìn)行編譯和綜合。采用iii,nx驗證IP正確性,采用Altera的MAX-Plus11進(jìn)行布局布線,選擇ALrFERA的Fled0K30器件,進(jìn)行了片上驗證。與ALTERA公司提供的8237AIP進(jìn)行比較,資源占用基本一致,時序分析時性能較好。
在進(jìn)行ASIC門級后仿真(P0st-simulation)時,采用的是標(biāo)準(zhǔn)的vrrsLtiny,采用cnosl藝,線寬為o.5微米,具有Sin-of性質(zhì)。提取了布局布線后的各種延遲信息后,在Sn-0PSyS的VSS中進(jìn)行仿真,驗證了IP的正確性。
5、結(jié)論
可編程DMA控制器IP設(shè)計實現(xiàn)了IP設(shè)計的目標(biāo),即設(shè)計的重用,實現(xiàn)了一些相應(yīng)單元模塊的參數(shù)化設(shè)計。只需要進(jìn)行很少量的參數(shù)修改工作,就可以重構(gòu)一個適用于不同需求的DMA控制器,例如可以將四個通道進(jìn)行裁減。而且可以根據(jù)實現(xiàn)工藝(ASIC或FPGA)的不同,設(shè)定相應(yīng)參數(shù),選擇合適的設(shè)計。
國內(nèi)對于IP的設(shè)計研究還是剛剛開始,通過可編程DMA控制器IP設(shè)計可以獲得經(jīng)驗。在設(shè)計中作者基本按照TOP-down的設(shè)計方法。在實際驗證時整個電路的各項參數(shù)都達(dá)到了Intel手冊上提供的參數(shù),電路工作正常,這說明高層設(shè)計方法在數(shù)字電路的設(shè)計工作中是有效的,這個設(shè)計也作為這方面的一個探索。
評論
查看更多