基于FPGA的幀同步系統(tǒng)設(shè)計(jì)方案
圖5 是校核模塊的Modelsim 仿真波形。其中,幀長(zhǎng)度LenFrame=16,校核幀數(shù)CheckNum=2,容錯(cuò)門限ErrorNum=0,其余參數(shù)與搜索模塊相同。從波形上很容易 看出,當(dāng)search_over第一次出現(xiàn)高電平時(shí),其后連續(xù)兩組同步碼均為“1011000(ErrorNum=0)”;當(dāng)search_over第二 次出現(xiàn)高電平時(shí),其后第一組同步碼為“1001000(ErrorNum=1)”,第二組同步碼為“1011000(ErrorNum=0)”。因此第一 次幀校核順利通過(guò),校核完成后check_over輸出一個(gè)高電平脈沖,research_check保持為低電平;第二次校核未通過(guò),校核完成后 research_check輸出一個(gè)高電平脈沖,check_over保持為低電平。
本文引用地址:http://butianyuan.cn/article/221559.htm2.4 同步模塊的VHDL設(shè)計(jì)與仿真
為了簡(jiǎn)化設(shè)計(jì),將同步狀態(tài)分為三個(gè)進(jìn)程來(lái)完成,即計(jì)數(shù)器進(jìn)程(Counter)、幀校驗(yàn)進(jìn)程 (FrameChecking)和同步校驗(yàn)進(jìn)程(SyncChecking)。Counter 進(jìn)程用于產(chǎn)生幀內(nèi)數(shù)據(jù)位置的計(jì)數(shù),當(dāng)檢測(cè)到check_over 信號(hào)為高電平時(shí),重新開(kāi)始以幀周期(LenFrame)循環(huán)計(jì)數(shù);FrameChecking 進(jìn)程用于產(chǎn)生幀起始位置的同步脈沖,且高電平脈沖與同步碼的最后1 b對(duì)齊,該進(jìn)程首先需要對(duì)同步碼組進(jìn)行校核,如校核通過(guò),則在同步碼位置處產(chǎn)生一個(gè)高電平脈沖FramePosition,如果校驗(yàn)未通過(guò),則在同步碼位 置不產(chǎn)生高電平脈沖;SyncChecking進(jìn)程通過(guò)判斷FramePosition 來(lái)確定系統(tǒng)是否處于同步狀態(tài),即只需判斷FramePosition是否連續(xù)在同步碼組的位置出現(xiàn)低電平,如連續(xù)出現(xiàn)SyncNum 次低電平,則判斷為失鎖,否則繼續(xù)維持同步狀態(tài)。
圖6 是同步模塊的Modelsim 仿真波形。其中同步態(tài)校核幀數(shù)SyncNum=2,其他參數(shù)與校核態(tài)相同。從圖中可以看出,當(dāng)檢測(cè)到check_over為高電平時(shí),計(jì)數(shù)器Number 開(kāi)始以周期為幀長(zhǎng)LenFrame=16循環(huán)計(jì)數(shù)。當(dāng)check_over 出現(xiàn)高電平時(shí),其后連續(xù)4 組同步碼為 “1011000(ErrorNum=0)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”。 由于此時(shí)設(shè)置的容錯(cuò)門限ErrorNum=0,因此第一幀同步碼校核通過(guò),輸出了同步脈沖FramePosition,此后出現(xiàn)連續(xù)3 個(gè)校核未通過(guò)的數(shù)據(jù)幀。同步狀態(tài)信號(hào)State_Sync 高電平狀態(tài)持續(xù)維持了2 幀數(shù)據(jù)的長(zhǎng)度,而后停止同步狀態(tài),輸出失步信號(hào)research_sync,用于啟動(dòng)搜索過(guò)程。
3 幀同步系統(tǒng)的FPGA實(shí)現(xiàn)及仿真
本實(shí)例的目標(biāo)器件為XC3S200-4FT200,FPGA實(shí)現(xiàn)后,查找表資源(LUTs)占用了 484 個(gè)(12%),全局時(shí)鐘資源(GCLKs)占用了1個(gè)(12%)。最高系統(tǒng)時(shí)鐘頻率(Maximum frequency)可達(dá)54.81 MHz.圖7 是幀同步系統(tǒng)的Modelsim 仿真波形。其中,各模塊的容錯(cuò)門限ErrorNum均為0,其他同步參數(shù)不變。
圖7 實(shí)際上對(duì)幀同步系統(tǒng)的搜索、校核、校核未通過(guò)、失步、重新搜索、重新同步等過(guò)程進(jìn)行了完整的仿真測(cè)試。
4 結(jié)語(yǔ)
本方案是基于模塊化設(shè)計(jì)思想,采用VHDL語(yǔ)言對(duì)幀同步系統(tǒng)進(jìn)行設(shè)計(jì)實(shí)現(xiàn),有利于程序的移置及維 護(hù)。方案設(shè)計(jì)的關(guān)鍵在于理解各模塊之間的信號(hào)接口關(guān)系及時(shí)序關(guān)系。在模塊設(shè)計(jì)時(shí),通過(guò)進(jìn)一步合理劃分模塊內(nèi)部的結(jié)構(gòu),可以更好地理清程序思路并提高設(shè)計(jì)方 案的效率。最后利用Modelsim 6.0軟件進(jìn)行了仿真測(cè)試。仿真結(jié)果表明,該方案中設(shè)計(jì)的同步系統(tǒng)工作穩(wěn)定,滿足性能要求。
fpga相關(guān)文章:fpga是什么
評(píng)論