通用異步串行接口的VHDL實用化設(shè)計
3.5 同步FIFO的設(shè)計
設(shè)計中根據(jù)收發(fā)模塊對狀態(tài)標(biāo)志要求的不同,分別進(jìn)行同步FIFO的設(shè)計以節(jié)約邏輯資源。其中,發(fā)送模塊的FIFO只需要全空/全滿標(biāo)志,采用地址相等不相等的比較邏輯和地址繞回指示位來產(chǎn)生。具體過程為:地址隨著相應(yīng)的操作遞增,寫指針由內(nèi)存的最后位置返回到初始位置時將地址繞回指示位置1,讀指針返回時則置0。因此,當(dāng)讀寫指針地址相同時,若地址繞回指示位為0,則讀寫指針經(jīng)歷了相同次數(shù)的循環(huán)移動, FIFO處于空狀態(tài)(圖4a);若地址繞回指示位為1,則寫指針比讀指針多循環(huán)一次,F(xiàn)IFO處于滿狀態(tài)。
接收模塊需要在FIFO中數(shù)據(jù)量達(dá)到一個設(shè)定的數(shù)值時產(chǎn)生一個中斷,由于設(shè)定的數(shù)值是任意的,這樣空/滿標(biāo)記的產(chǎn)生必須使用減法器,消耗的邏輯資源稍大。綜合后的邏輯資源使用情況也說明了這點(diǎn)。
3.6 鎖存器的使用
使電路復(fù)雜化的常見原因之一是設(shè)計中存在許多不必要的鎖存器,使得電路復(fù)雜,工作速度降低,系統(tǒng)可靠性變差。綜合時應(yīng)該仔細(xì)檢查是否合理使用了鎖存器。由于UART接口的功能特點(diǎn),設(shè)計中共使用了4個鎖存器,用來鎖存A(2:0)和CSn信號。當(dāng)UART和CPU總線處在同一個芯片中時,這些鎖存器可以用寄存器取代。
4 綜合結(jié)果
整個設(shè)計以VHDL語言來實現(xiàn)。在SYNOPSYS Design Compiler中使用LSI_10K庫,設(shè)定系統(tǒng)工作頻率為25MHz,其他使用預(yù)定的選項,綜合后最大路徑延時為10.66ns,預(yù)期工作頻率大于90MHz。資源使用情況如表1所示。
在XC2V1000-6芯片中,以Synplify為綜合工具,則使用了188個寄存器,占用了1%的邏輯資源。最大路徑延遲預(yù)期9.043ns,預(yù)期工作頻率110MHz。
5 仿真與驗證
設(shè)計中對UART各模塊分別撰寫了相應(yīng)的測試程序,驗證了各模塊的正確性。然后把這些模塊裝配在一起,在系統(tǒng)級上再進(jìn)行了接收、發(fā)送和中斷功能的門級驗證。這種模塊化分層次的驗證過程在調(diào)試中有效地縮小了查找錯誤的范圍,提高了調(diào)試效率并保證了代碼的健壯性。
6 結(jié)束語
穩(wěn)定性和低功耗是嵌入式通信系統(tǒng)的重要設(shè)計目標(biāo)。實現(xiàn)需要的功能有時并不困難,難的是提高系統(tǒng)穩(wěn)定性和有效降低功耗。時鐘的規(guī)劃和亞穩(wěn)態(tài)的處理與這兩個目標(biāo)有著非常密切的關(guān)系,是實用化設(shè)計關(guān)注的重點(diǎn)之一。通過穩(wěn)定性、功耗與資源等方面的綜合考慮,該設(shè)計在所實現(xiàn)的軟件無線電硬件平臺上得到了成功應(yīng)用,達(dá)到了實用化設(shè)計的目標(biāo)。
評論