如何進行分FPGA模塊劃分
學(xué)習(xí)至簡設(shè)計法,學(xué)會模塊設(shè)計和模塊劃分技巧。
模塊劃分,顧名思義是指模塊的劃分。但是,明德?lián)P至簡設(shè)計法提出的模塊劃分,是廣義的“模塊劃分”。后續(xù)所提及的“模塊劃分”,不單單指模塊的劃分,還包括模塊劃分好后,模塊的端口及模塊之間數(shù)據(jù)流向的確定。
模塊劃分原則
原則一:對每個同步時序設(shè)計的子模塊的輸出使用寄存器(Registering)。
原則二:將相關(guān)的邏輯或者可以復(fù)用的邏輯劃分在同一個模塊。
原則三:將不同優(yōu)化目標的邏輯分開。
原則四:將松約束的邏輯歸到同一個模塊。
原則五:將存儲邏輯獨立劃分成模塊。
原則六:合適的模塊規(guī)模。
模塊劃分技巧非常重要,好的模塊結(jié)構(gòu),能極大地精簡各模塊的結(jié)構(gòu),從而能用最少的代碼實現(xiàn)所需的功能;使各模塊順暢運行,保證系統(tǒng)更加穩(wěn)定。大家深有體會的就是ISO和安卓系統(tǒng),雖然任何手機功能都可以在兩者系統(tǒng)上實現(xiàn),但ISO的穩(wěn)定性、效率遠超過了安卓,這可以歸功于ISO良好的系統(tǒng)結(jié)構(gòu)??梢哉f模塊劃分更考究人的智慧,中國人至今沒有設(shè)計出好的芯片結(jié)構(gòu),華為海思的架構(gòu)師基本上都是國外的專家來擔任。
如何進行模塊劃分,列出了非常多的實用技巧。
1. 講述了模塊之間連接的常用信號。一般模塊之間就通過這些信號來連接,讀者定義模塊信號時基本上套上這幾個信號就可以了,也不用再去煩信號的命名問題。
2. 對于FPGA內(nèi)部模塊,講述了模塊之間數(shù)據(jù)交互的幾種模式和應(yīng)用場景。讀者可以按照項目情況選擇合適的模式來使用。
3. FPGA經(jīng)常與外設(shè)通信,至簡設(shè)計法也講述了與外設(shè)連接時,F(xiàn)PGA模塊標準,如一般可分為接口模塊和命令模塊。接口模塊負責時序,命令模塊負責發(fā)布命令。
4. 對于復(fù)雜的、內(nèi)部有寄存器的外設(shè)。至簡設(shè)計述定義了模塊標準,方便調(diào)試和使用的同時,也減少了出錯的可能。
研究出來的至簡設(shè)計法,綜合考慮了調(diào)試、使用和降錯機率,要讓每個學(xué)員都能設(shè)計出最優(yōu)秀的代碼。