本站小編為你精心準備了計數器電路設計論文參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1電路設計
前導0計數器電路實現的功能:從數據的高位往低位計算連續0的個數,若出現1,則停止計數.
1.1設計理論本文設計一個108位前導0計數器電路,采用2位分組的并行計數算法,電路設計原理如下:如圖2所示,前導0計數電路將數據位寬平分為高半位和低半位兩個部分,然后分別對兩部分前導0個數進行計算,在下一級計數邏輯對上面兩個計數器結果進行匯總.當n=2時,相當于4位前導0計數電路;當n>2時,相當于2n位前導0計數電路.
1.24位前導0電路設計如圖3所示,Count[1:0]可以表示Data[3:0]不全為0時前導0個數;當Data[3:0]全為0時,前導0的個數為4,Count[1:0]最多也只能表示3,因此需要Z信號作為Count的拓展位[4].當Data[3:0]全為0時,前導0個數是4,拓展位Z=1,count[1:0]=2′b00,Z與Count[1:0]組成3位二進制計數值,為3′b100,正好可以表示Data[3:0]全為0時前導0的個數4.
1.38位前導0電路設計8位前導0電路是在兩個4位前導0得出的計數結果后再做一次選擇,對前面兩個4位前導0的計數結果進行匯總.8位前導0的電路結構如圖4所示.圖4中,左上方電路計算高4位前導0個數,右上方電路計算低4位前導0個數.當高4位全為0時,則需將高4位前導0個數與低4位前導0個數相加;當高4位不全為0,則只需輸出高4位前導0個數即可.當Data[7:0]不全為0,Count[2:0]即可表示前導0的個數;當Data[7:0]全為0,則Count[2:0]=3’b0,Z=1,構成二進制1000可以表示成8個0.從8位前導0電路結構,再結合4位前導0電路結構,由此找出前導0電路設計規律,為108位前導0電路設計提供結構的拓展.將8位前導0電路結構進行模塊層次化,如圖5所示.圖5所示,淺灰色模塊(四端口模塊)是1個NR2D和1個INVD,深灰色模塊(三端口模塊)是1個AN2D,上一級的白色模塊是3個MUX2D,下一級白色模塊(五端口模塊)是5個MUX2D.在大位寬前導0電路設計中,每向下增加一級模塊,模塊的個數就會增加一倍,白色模塊的MUX2D就會增加2個,淺灰色和深灰色模塊的邏輯單元不變.
1.4108前導0電路設計將64位、32位和12位這三個前導0電路進行拼接,組成的108位前導0電路結構如圖6所示.如圖6所示,從上到下分別是第一級模塊、第二級模塊、第三級模塊、第四級模塊、第五級模塊、第六級模塊、第七級模塊.各個模塊的內部邏輯電路如圖7所示,其中白色模塊n(n≥2)是指模塊的級數。
2電路優化
2.1Z信號樹邏輯優化圖6中深灰色模塊(三端口模塊)是Z信號樹邏輯模塊,Z信號樹經過優化之后如圖8所示.
2.2Count樹邏輯優化圖6中白色模塊(五端口模塊)構成Count樹,Count樹由MUX2D邏輯單元構成.由于MUX2D標準單元存在傳輸管,導致標準單元延時大,以及單元驅動能力弱的情況[5].因此需要將傳輸管邏輯單元優化成速度快、穩定性好的CMOS互補邏輯單元。將MUX2D傳輸管邏輯單元通過邏輯換算,使之成為互補的CMOS邏輯單元,可以有效提高Count樹的計算速度和穩定性.根據Count樹中白色模塊(五端口模塊)所處的模塊級數,分奇偶兩種情況分別進行邏輯換算和重組,優化之后的邏輯結構如圖9所示.從圖9發現,優化后的邏輯電路中有反相器存在,并且隨著模塊級數增加,反相器個數也在增加.因此有必要將反相器提取出來,以一個大尺寸的反相器來代替這些分散的反相器,這樣既可以滿足驅動的需要,也可以用來減少面積.于是進一步優化之后的電路結構如圖10所示.
2.3單元尺寸優化在同一級有關聯的相鄰兩個模塊,由于扇出不同造成負載不一樣,因而不同模塊內部單元尺寸的調整順序也不一樣.108位前導0電路邏輯單元尺寸調整的順序如圖11所示.從圖11可以看出,首先優化第1條路徑的尺寸,按照阿拉伯數字依次增大的順序,依次進行不同路徑的模塊單元尺寸調整,最后優化第13條路徑.每條路徑都是順著箭頭的方向,對各個模塊依次進行單元尺寸的調整.
3性能比較
在108位前導0電路設計完成過后,提取電路設計的網表進行PT分析,通過PT分析獲得到時序和面積結果.然后分別與傳統前導0計數器的RTL級代碼[6]進行DC綜合的結果,以及8位分組的RTL級代碼進行DC綜合的結果進行比較,如表1所示.通過比較發現,傳統前導0的RTL級代碼進行DC綜合的時序和面積都太大,相對而言8位分組前導0的RTL級代碼進行DC綜合的時序卻要比它要好得多,這也是當前一直使用8位分組前導0的RTL級代碼的原因.然而本文設計的2位分組的108位前導0電路,進行PT分析的時序比8位分組DC綜合的時序少了19%,但面積卻比8位分組的差了20%.由于計數器的運算速度對浮點加法的運算是至關重要的,在面積相差不大的情況下這個電路設計仍然是非常成功的.
4結束語
本文通過采用二位分組并行計數算法,實現108位前導0電路設計與優化,并與當前性能最優的8位分組RTL級代碼進行性能比較,通過比較發現采用2位并行分組計數的前導0電路的運算速度比8位分組RTL級代碼DC綜合的時序快了19%.由于前導0計數器電路處在浮點加法運算的關鍵路徑上,因此108位前導0計數器在時序上取得的良好結果,對提高浮點加法的運算具有非常重要的意義.
作者:李勇秦海陽李振濤單位:國防科學技術大學計算機學院