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