FPGA+DSP導引頭信號處理中FPGA設計的關鍵技術
現代IC與FPGA設計巾使用的綜合工具可以保證設計能滿足每個數字電路觸發器對建立與保持時間的要求。然而,異步信號卻給軟件提出了難題。對新的時鐘域米說.從其它時鐘域傳柬的信號是異步的。大多數綜合丁具在判定算步信號是否滿足觸發器時序要求時遇到了麻煩。因為它們不能確定觸發器處于非穩態的時間,所以它們也就不能確定從一個觸發器通過組合邏輯到達下一個觸發器的總延遲時間。所以,最好的辦法是使用一些電路來減輕異步信號的影響。
同步措施歸納起來主要有兩方面,
1)對于跨越時鐘域控制信號,用同步器來實現同步;
為了使同步。工作能正常進行,從某個時鐘域傳來的信號應先通過原時鐘域上的一個觸發器,然后不經過兩個時鐘域間的任何組合邏輯,直接進入同步器的第一個觸發器中(圖3)。這一要求非常重要,因為同步器的第一級觸發器對組合邏輯所產生的毛刺非常敏感。如果一個足夠長的信號毛刺正好滿足建立一保持時問的要求,則同步器的第一級觸發器會將其放行,給新時鐘域的后續邏輯送出一個虛假的信號。
圖3同步器示意
一個經同步后的信號在兩個時鐘沿以后就成為新時鐘域中的有效信號。信號的延遲是新時鐘域中的一到兩個時鐘周期。一種粗略的估算方法是同步器電路在新時鐘域中造成兩個時鐘周期的延遲,設計者需要考慮同步延遲將對跨時鐘域的信號時序造成的影響。
2)對于跨越時鐘域的數據總線,要通過FIFO或RAM達到同步的目的。
數據在時鐘域之間的傳遞是多個隨機變化的控制信號在時鐘域之間傳遞的一種實例。這種情況下,用同步器米處理同步問題往往不能收到滿意的效果,因為多位數據的變化將會使同步器的采樣錯誤率大大增加。常用的數據同步方法有兩種:一種是用握手信號;另一種是用FIFO,一個時鐘存數據。另一個時鐘取數據。
時鐘域之間的數據傳輸用得最多的是FIFO,采用Xilinx自帶的FIFO核來實現比較簡單方便,圖4足Xilinx提供的FIFO核的一個簡單的示意圖.wclk為寫時鐘,rclk為讀時鐘,FIFO深度通過讀寫使能wen和ren控制。
圖4 FIFO核示意圖
3.2、FPGA與DSP數據交互
實際應用過程中,DSP和FPGA程序設計往往是由不同的設計人員分工完成,在最后系統聯調時,這兩者之間的數據傳輸經常占用大量的調試時間,成為約束工程進度的關鍵兇素。因此,DSP與FPGA間接口和傳輸方式的選擇與設計,是系統設計中必須要考惑的問題。
評論