關鍵詞:VHDL,CPLD,雷達回波,延遲線
?
?
1 引言
在延遲控制系統及目標跟蹤仿真測試系統等應用系統中,要使用脈沖延遲器來實現脈沖信號延遲控制功能。傳統的延遲繼電器無法滿足大動態范圍、高精度以及高速實時控制等諸多系統要求。現有的專用脈沖延遲器件(如AD9500/9501等)雖然在精度、速度方面可以保證,但對于比較大的動態范圍實現比較困難,而且在連續脈沖信號的延遲時間逐漸減小時,無法實現負增量延遲。針對以上問題,我們采用VHDL對CPLD進行編程,通過直接采樣法實現大范圍動態連續脈沖信號可控延遲功能。
2 系統功能
本系統擬定對頻率范圍在200~600kHz的TTL電平脈沖序列進行延遲處理,延遲范圍600ns~170μs,分辨率為100ns。延遲精度<50ns,延遲量刷新周期大于脈沖信號周期但要小于1ms。
3 方案選擇
當要處理的信號是單個脈沖信號或連續脈沖的脈沖間隔時間大于脈沖延遲時間時,延遲器只要一級緩沖,不必考慮脈沖串的多脈沖存儲和再生問題。這種情況下,可以根據不同精度的要求采用機械延遲(如:延時繼電器)、模擬延遲(如:積分延遲)和數字延遲(如:計數器)等手段。如果要無失真恢復脈沖信號,則必須有精確的脈寬測量和恢復電路。見圖1。
?
?
?
但當脈沖串的脈沖間隔小于延遲時間時,就有很大的不同。此時必須考慮多脈沖存儲和再生的問題,電路必須設定相應的存儲器保存多脈沖信息用于再生。可以直接對脈沖串進行采樣,然后量化為數字信號進行存儲,再利用延遲量來控制信號再生。另外,脈沖信號不同于通常的數字信號,數字信號的占空比一般為固定的50%,所以,無論存儲和再生都比較容易,而脈沖信號的占空比是不規則的,隨時因場合的變化而變化,所以,要無失真地再生脈沖串信號必須精確記錄每一脈沖的脈沖寬度和周期信息。
輸入連續脈沖是邏輯電平信號,所以,可以將連續脈沖串信號看作邏輯信號直接使用FIFO進行采樣,采樣結果只有1和0兩種值,所以采樣結果只需要一位寬度的FIFO進行存儲。為保證電路的精度,采樣速度可能比較高,采樣速度越高,所需要的FIFO規模越大,對于本設計所要求的精度,即最大延遲170μs,延遲精度<50ns,則采樣周期必須小于25ns。選擇40MHz的采樣頻率,采樣周期為25ns,采樣精度±25ns。此時要求FIFO的深度為170000/25=6800bit,為解決在延遲參數切換時造成的系統不連續性,尤其在延遲參數遞減時造成的系統信息無法恢復的問題,我們對奇數幀和偶數幀的信號分別進行延遲處理(設每一次延遲參數下的脈沖信號為一幀)。使用控制信號來分時選通兩種FIFO進行清除和采樣以及信號輸出。
?
?
?
4 方案實現
具體方案原理見圖2,FIFO的數量為2個。用2個FIFO輪流存儲脈沖的采樣值,延遲時間相同的脈沖存儲在同一個FIFO中,延遲時間不同的脈沖存在不同的FIFO中,延遲時間每刷新一次,存儲FIFO切換一次。輸出信號由兩個FIFO的輸出相或而得。
從圖2可以看出:該設計主要有切換控制、延遲時間控制、FIFO等組成部分。信號由輸入端進入器件,經切換開關,由切換控制選擇存儲FIFO,直接采樣存儲到不同的FIFO中去,由延遲控制器控制延遲時間,最后兩個FIFO的輸出相或得到輸出脈沖。
用可編程器件進行設計時,應采用自頂向下的設計方法,脈沖延遲電路的端口圖如圖3所示。首先,把系統劃為幾個模塊,再對各個模塊進行設計,完成電路設計。在設計脈沖延遲電路時,對電路模塊進行了劃分,分成了切換控制、延遲控制、存儲FIFO等模塊,由各模塊之間的控制關系構成了系統的結構框圖如圖4所示。
端口說明:
·clk為系統時鐘,應用于整個電路,輸入端口;
·reset為系統復位信號,高電平有效,輸入
·cs為延遲時間更新控制信號,控制延遲時間的改變,低電平有效,輸入端口;
·pulse為調制脈沖,被處理脈沖,輸入端口;
·timda[15..0]為延遲時間數據,延遲時間的大小由此信號得到,為16位數據線,輸入端口;
·outpulse為調制脈沖輸出信號,輸出延遲后的脈沖,輸出端口。
該方案設計的脈沖延遲電路由三類元件組成,分別是切換控制元件(CTRLFSM)、延遲控制元件(DELAYCTRL)、存儲單元(LPFIFO)。下面對各元件進行設計:
CTRLFSM 該元件為時序邏輯電路,可設計成有限狀態機。狀態轉移圖如圖5所示:首先,一個同步復位信號使該狀態機進入空閑態(idle)。當cs信號有效后,在下一個時鐘周期進入decision狀態,再根據ab1信號分別進入channela或channelb狀態,判斷并發選擇信號。當pulse有效時進入last狀態,進行切換,切換后,等待cs無效,以便返回空閑狀態。
DELAYCTRL 延遲時間控制元件完成延遲時間的刷新和延遲時間的定時控制,由一個有限狀態,計數器完成定時。定時計數器為簡單的16位計數器,設計比較簡單,在此不再贅述。這里只介紹一下延遲控制器的設計,其狀態轉移圖如圖6所示。延時控制器包括三個狀態:空閑狀態(idle)、延遲時間刷新狀態(indata)、延時狀態(countstar)。
LPFIFO 存儲單元可以自己設計,也可以調用已有參數化lpm模塊。為簡化設計,提高器件的利用率,本方案中直接調用lpm模塊,具體調用過程可由軟件生成。
綜上所述,可以寫出脈沖延遲電路的實體說明如下(VHDL語言):
說明了上述元件包以后,可以根據頂層結構圖將各元件連接起來,得到脈沖延遲電路的頂層描述VHDL語言代碼如下:
本設計選擇Altera的FLEX 10KE產品,Altera FLEX 10KE的產品集成度更高,工作頻率高、系統傳輸延遲更小。采樣周期為25ns,采樣精度±25ns。要求FIFO的深度為2×170000/25=2×6800bit,Altera FLEX 10KE的EAB規模為2048×2bit,對于40MHz的采樣時鐘,每一個FIFO至少需要4塊EAB(6800/2048>3),共8塊,此時選用EPF10K50E比較合適,電路板設計采用Mentor Graphic EDA產品,CPLD設計采用Altera的MaxplusII。為了延遲系統能盡量獨立工作,采用主動配置方式設計系統,選用Altera的EPC2電可擦除EPROM來配置系統。電路PCB及電路實物圖略。
5 系統仿真
完成設計后,用MAX+PLUS II軟件進行后仿真,仿真結果如圖7所示。
?
?
?
從圖7可以看出,輸入信號與輸出信號延遲可變,輸出的脈沖信數與輸入的脈沖個數相等。符合設計要求,滿應用需要。
6 結束語
本設計不同于現有的延遲電路,它可以對實時連續信號進行大范圍動態延遲,不但可以實現正增量延遲,更重要的是可以實現負增量動態延遲,這為雷達回波模擬提供了可能,同時延遲范圍不局限于通常延遲電路小于一個脈沖周期的延遲時間,在不丟失脈沖的前提下,實現了多周期大范圍動態延遲。該方法不但可以完成TTL電平信號的大范圍動態延遲,而且只要適當增加位深度,就可以將該方法用于對模擬信號進行采樣延遲,為各種信號大范圍實時動態延遲提供了很好的思路。
?
參考文獻
?
2 曾繁泰,陳美金著.VHDL程序設計.北京:清華大學出版社,2001,2
3 林敏,方穎立編著.VHDL數字系統設計與高層次綜合.北京:電子工業出版社,2002,1
評論
查看更多