基于FPGA+DSP導引頭信號處理中FPGA設計的關(guān)鍵技術(shù)
3.1.2跨R寸鐘域的處理
現代IC與FPGA設計巾使用的綜合工具可以保證設計能滿(mǎn)足每個(gè)數字電路觸發(fā)器對建立與保持時(shí)間的要求。然而,異步信號卻給軟件提出了難題。對新的時(shí)鐘域米說(shuō).從其它時(shí)鐘域傳柬的信號是異步的。大多數綜合丁具在判定算步信號是否滿(mǎn)足觸發(fā)器時(shí)序要求時(shí)遇到了麻煩。因為它們不能確定觸發(fā)器處于非穩態(tài)的時(shí)間,所以它們也就不能確定從一個(gè)觸發(fā)器通過(guò)組合邏輯到達下一個(gè)觸發(fā)器的總延遲時(shí)間。所以,最好的辦法是使用一些電路來(lái)減輕異步信號的影響。
同步措施歸納起來(lái)主要有兩方面,
1)對于跨越時(shí)鐘域控制信號,用同步器來(lái)實(shí)現同步;
為了使同步。工作能正常進(jìn)行,從某個(gè)時(shí)鐘域傳來(lái)的信號應先通過(guò)原時(shí)鐘域上的一個(gè)觸發(fā)器,然后不經(jīng)過(guò)兩個(gè)時(shí)鐘域間的任何組合邏輯,直接進(jìn)入同步器的第一個(gè)觸發(fā)器中(圖3)。這一要求非常重要,因為同步器的第一級觸發(fā)器對組合邏輯所產(chǎn)生的毛刺非常敏感。如果一個(gè)足夠長(cháng)的信號毛刺正好滿(mǎn)足建立一保持時(shí)問(wèn)的要求,則同步器的第一級觸發(fā)器會(huì )將其放行,給新時(shí)鐘域的后續邏輯送出一個(gè)虛假的信號。
圖3同步器示意
一個(gè)經(jīng)同步后的信號在兩個(gè)時(shí)鐘沿以后就成為新時(shí)鐘域中的有效信號。信號的延遲是新時(shí)鐘域中的一到兩個(gè)時(shí)鐘周期。一種粗略的估算方法是同步器電路在新時(shí)鐘域中造成兩個(gè)時(shí)鐘周期的延遲,設計者需要考慮同步延遲將對跨時(shí)鐘域的信號時(shí)序造成的影響。
2)對于跨越時(shí)鐘域的數據總線(xiàn),要通過(guò)FIFO或RAM達到同步的目的。
數據在時(shí)鐘域之間的傳遞是多個(gè)隨機變化的控制信號在時(shí)鐘域之間傳遞的一種實(shí)例。這種情況下,用同步器米處理同步問(wèn)題往往不能收到滿(mǎn)意的效果,因為多位數據的變化將會(huì )使同步器的采樣錯誤率大大增加。常用的數據同步方法有兩種:一種是用握手信號;另一種是用FIFO,一個(gè)時(shí)鐘存數據。另一個(gè)時(shí)鐘取數據。
時(shí)鐘域之間的數據傳輸用得最多的是FIFO,采用Xilinx自帶的FIFO核來(lái)實(shí)現比較簡(jiǎn)單方便,圖4足Xilinx提供的FIFO核的一個(gè)簡(jiǎn)單的示意圖.wclk為寫(xiě)時(shí)鐘,rclk為讀時(shí)鐘,FIFO深度通過(guò)讀寫(xiě)使能wen和ren控制。
圖4 FIFO核示意圖
實(shí)際應用過(guò)程中,DSP和FPGA程序設計往往是由不同的設計人員分工完成,在最后系統聯(lián)調時(shí),這兩者之間的數據傳輸經(jīng)常占用大量的調試時(shí)間,成為約束工程進(jìn)度的關(guān)鍵兇素。因此,DSP與FPGA間接口和傳輸方式的選擇與設計,是系統設計中必須要考惑的問(wèn)題。
導引頭信號處理的一個(gè)特點(diǎn)是,FPGA要傳輸給DSP的數據比較多,需要傳遞幅度信息,和差支路數據等十幾組數據.每組數據長(cháng)度在512~2K,而且讀取速度要求也比較高,一般要求百兆以上的讀取頻率。經(jīng)過(guò)工程實(shí)踐表明,采用通過(guò)EDMA通道同步讀取FIFO的方式實(shí)現通信是非常有效的方法。但是接口處的FIFO比較多,而且讀取速度有比較高,這勢必導致FPGA內部對接口處資源的競爭,甚至會(huì )導致時(shí)序的不滿(mǎn)足。在實(shí)際工程調試中表現在DSP接收到的數據亂序,周期循環(huán)甚至亂碼。
要解決好FPGA和DSP的數據交互問(wèn)題,要注意以下兩個(gè)方面。
評論