基于高速串行BCD碼除法的數字頻率計的設計
BCD碼減法運算采用行波進(jìn)位方法,因此必須盡量減小進(jìn)位邏輯上的延遲。ACEX 1K系列的每個(gè)LE中都提供了一個(gè)專(zhuān)用的進(jìn)位鏈和級聯(lián)鏈,充分利用這些資源可以提高多位串行BCD碼減法的性能。根據ACEX1K系列周期約束,其延時(shí)為:
Tclk=Tco+B+Tsu-(E-C)
式中,Tco為clock-output的延時(shí),Tsu為建立時(shí)間,兩個(gè)時(shí)間均可達到1~2ns;B表示數據延時(shí),為0.6ns;E-C)表示時(shí)鐘傾斜[4]。因此,總時(shí)鐘延時(shí)為4.6ns,即工作頻率可以達到200MHz以上。本文采用100MHz的工作頻率,提高了運算速度。為了減小延時(shí)、提高工作效率,在對布局布線(xiàn)進(jìn)行精確控制以后,把BCD碼減法運算做成模塊,在除法運算過(guò)程反復調用,達到了模塊復用效果,大大提高了資源的利用率。
在整個(gè)BCD碼除法運算單元,首先通過(guò)輸入數據決定信號是否超出測量范圍。
·當ov1為1時(shí),該信號的頻率大于1Hz;
·當NSNX,該信號的頻率大于100MHz;
·當NS=NX,該信號的頻率為1Hz;
·當NS>NX,該信號頻率在測量范圍內。
根據輸入的NS和NX計算輸入信號的頻率。
除法運算通過(guò)雙狀態(tài)機的設計控制一個(gè)BCD碼減法運算。所有狀態(tài)用同一時(shí)鐘進(jìn)行控制,實(shí)現了系統的同步設計,消除了異步邏輯中存在的種種險象。各個(gè)狀態(tài)之間的關(guān)系如圖5所示。當計數模塊完成計數時(shí),則將數輸入除法模塊,開(kāi)始移位以確定輸入的值;然后發(fā)clrs信號到BCD碼減法運算單元開(kāi)始運算,循環(huán)相減。當循環(huán)結束時(shí),發(fā)回一個(gè)HNS信號,部分余數開(kāi)始移位,進(jìn)行下一輪的循環(huán)。最終輸出FOUT,即運算單元結束。
本頻率計設計采用8位的十進(jìn)制計數器,隨后應用狀態(tài)機實(shí)現了高速串行BCD碼除法運算,計算出頻率值。對BCD碼減法模塊的復用,減小了資源的利用。
當今VLSI的發(fā)展日新月異,FPGA的容量和速度成倍地增長(cháng),而價(jià)格卻逐年下降,這將使得基于FPGA設計的數字頻率計優(yōu)勢更加明顯。相信這一技術(shù)必將得到更加廣泛的應用。
評論