基于FPGA與DSP導(dǎo)引頭信號處理中FPGA設(shè)計
3.1.2跨R寸鐘域的處理
現(xiàn)代IC與FPGA設(shè)計巾使用的綜合工具可以保證設(shè)計能滿足每個數(shù)字電路觸發(fā)器對建立與保持時間的要求。然而,異步信號卻給軟件提出了難題。對新的時鐘域米說.從其它時鐘域傳柬的信號是異步的。大多數(shù)綜合丁具在判定算步信號是否滿足觸發(fā)器時序要求時遇到了麻煩。因為它們不能確定觸發(fā)器處于非穩(wěn)態(tài)的時間,所以它們也就不能確定從一個觸發(fā)器通過組合邏輯到達(dá)下一個觸發(fā)器的總延遲時間。所以,最好的辦法是使用一些電路來減輕異步信號的影響。
同步措施歸納起來主要有兩方面,
1)對于跨越時鐘域控制信號,用同步器來實現(xiàn)同步;
為了使同步。工作能正常進(jìn)行,從某個時鐘域傳來的信號應(yīng)先通過原時鐘域上的一個觸發(fā)器,然后不經(jīng)過兩個時鐘域間的任何組合邏輯,直接進(jìn)入同步器的第一個觸發(fā)器中(圖3)。這一要求非常重要,因為同步器的第一級觸發(fā)器對組合邏輯所產(chǎn)生的毛刺非常敏感。如果一個足夠長的信號毛刺正好滿足建立一保持時問的要求,則同步器的第一級觸發(fā)器會將其放行,給新時鐘域的后續(xù)邏輯送出一個虛假的信號。
圖3同步器示意
一個經(jīng)同步后的信號在兩個時鐘沿以后就成為新時鐘域中的有效信號。信號的延遲是新時鐘域中的一到兩個時鐘周期。一種粗略的估算方法是同步器電路在新時鐘域中造成兩個時鐘周期的延遲,設(shè)計者需要考慮同步延遲將對跨時鐘域的信號時序造成的影響。
2)對于跨越時鐘域的數(shù)據(jù)總線,要通過FIFO或RAM達(dá)到同步的目的。
數(shù)據(jù)在時鐘域之間的傳遞是多個隨機變化的控制信號在時鐘域之間傳遞的一種實例。這種情況下,用同步器米處理同步問題往往不能收到滿意的效果,因為多位數(shù)據(jù)的變化將會使同步器的采樣錯誤率大大增加。常用的數(shù)據(jù)同步方法有兩種:一種是用握手信號;另一種是用FIFO,一個時鐘存數(shù)據(jù)。另一個時鐘取數(shù)據(jù)。
時鐘域之間的數(shù)據(jù)傳輸用得最多的是FIFO,采用Xilinx自帶的FIFO核來實現(xiàn)比較簡單方便,圖4足Xilinx提供的FIFO核的一個簡單的示意圖.wclk為寫時鐘,rclk為讀時鐘,F(xiàn)IFO深度通過讀寫使能wen和ren控制。
圖4 FIFO核示意圖
實際應(yīng)用過程中,DSP和FPGA程序設(shè)計往往是由不同的設(shè)計人員分工完成,在最后系統(tǒng)聯(lián)調(diào)時,這兩者之間的數(shù)據(jù)傳輸經(jīng)常占用大量的調(diào)試時間,成為約束工程進(jìn)度的關(guān)鍵兇素。因此,DSP與FPGA間接口和傳輸方式的選擇與設(shè)計,是系統(tǒng)設(shè)計中必須要考惑的問題。
導(dǎo)引頭信號處理的一個特點是,F(xiàn)PGA要傳輸給DSP的數(shù)據(jù)比較多,需要傳遞幅度信息,和差支路數(shù)據(jù)等十幾組數(shù)據(jù).每組數(shù)據(jù)長度在512~2K,而且讀取速度要求也比較高,一般要求百兆以上的讀取頻率。經(jīng)過工程實踐表明,采用通過EDMA通道同步讀取FIFO的方式實現(xiàn)通信是非常有效的方法。但是接口處的FIFO比較多,而且讀取速度有比較高,這勢必導(dǎo)致FPGA內(nèi)部對接口處資源的競爭,甚至?xí)?dǎo)致時序的不滿足。在實際工程調(diào)試中表現(xiàn)在DSP接收到的數(shù)據(jù)亂序,周期循環(huán)甚至亂碼。
要解決好FPGA和DSP的數(shù)據(jù)交互問題,要注意以下兩個方面。
3.2.1 三態(tài)門的設(shè)計
在本設(shè)計中,DSP和FPGA的互連采用了總線連接的方式,數(shù)據(jù)交互是通過一個32位的雙向數(shù)據(jù)總線來完成的,而要實現(xiàn)雙向總線,就需要使用FPGA構(gòu)造三態(tài)總線了,使用三態(tài)緩沖器實現(xiàn)高、低電平和高阻三個狀態(tài)。
圖5雙向數(shù)據(jù)總線的三態(tài)門設(shè)計
本設(shè)計當(dāng)中,F(xiàn)PGA給DSP發(fā)中斷信號,DSP在中斷信號到來時,根據(jù)系統(tǒng)要求,將不同的控制字寫入數(shù)據(jù)總線,然后通過數(shù)據(jù)總線從FPGA中不同的FIFO中讀取數(shù)據(jù),這一切都通過DSP在地址線上給出不同的地址來完成。為了合理分配總線的使用,設(shè)計當(dāng)中使用這樣的策略:利用片選信號aace3,地址aaea[9:0]作為三態(tài)緩沖器的控制信號,由于DSP對FPGA的讀寫地址都不同,當(dāng)片選信號aace3有效時,F(xiàn)PGA根據(jù)地址來確定湊寫方式以及讀寫那些信息,否則置為高阻態(tài),這樣就避免了可能產(chǎn)生的的總線阻塞現(xiàn)象,使DSP和FPGA之間的數(shù)據(jù)交互能夠順利進(jìn)行,示意圖如圖5所示。
3.2.2 加有效的時序約束
由于接口FIFO比較多,為了合理分配FPGA內(nèi)部接口處的資源,滿足系統(tǒng)的時序要求,需要加必要的時序約束。因為本設(shè)計采用Xilinx公司芯片,所以需要加偏移約束2。
偏置約束可以優(yōu)化以下時延路徑:從輸入管腳到同步元件偏置輸入;從同步元件到輸出管腳偏置輸出。為了確保芯片數(shù)據(jù)采樣可靠和下級芯片之間正確交換數(shù)據(jù),需要約束外部時鐘和數(shù)據(jù)輸入輸出引腳問的時序關(guān)系。偏置約束的內(nèi)容告訴綜合器,布線器輸入數(shù)據(jù)到達(dá)的時刻或者輸出數(shù)據(jù)穩(wěn)定的時刻,從而保證與下一級電路的時序關(guān)系。更多關(guān)于約束的內(nèi)容請參閱文獻(xiàn)。
4 結(jié)束語
FPGA+DSP是同前導(dǎo)引頭信號處理器中運用的最廣泛的系統(tǒng)組成形式,對速度以及靈活性的要求都能夠很好的滿足,文中所涉及到的跨時鐘域設(shè)計以及數(shù)據(jù)接口方面的問題是這樣的系統(tǒng)中FPGA設(shè)計存在的關(guān)鍵技術(shù),文中提出了詳實的解決方法,而且工程應(yīng)用已經(jīng)證明了其有效性。
本文作者創(chuàng)新點:依據(jù)工程實踐經(jīng)驗,總結(jié)了在FPGA+DSP結(jié)構(gòu)的雷達(dá)導(dǎo)引頭信號處理中FPGA的關(guān)鍵問題,并提出了詳細(xì)的解決方案,并得到了工程驗證。
評論