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