2010-06-11 27 views
3

我正在研究冗餘二進制表示(RBR)算法,其中每兩位代表一個數字。日誌2 N通用比較樹

我設計了比較器,需要4位並給出2位。我想在log 2 n中進行比較,所以如果我有X和Y ..我將X的每2位與Y的每2位進行比較。如果X或Y的位數等於n,則這是平滑的,其中(n = 2^X)即n = 2,4,8,16,32,...等等。像這樣:

alt text http://www.freeimagehosting.net/uploads/th.a57569d23f.png

但是,如果我的投入讓我們說是6個或10 ..然後它變得不順暢,我必須考慮到一些奇怪的情況是這樣的:

alt text http://www.freeimagehosting.net/uploads/th.28bd84300d.png

我在算法淺的經驗..有一個通用的方法來做到這一點..所以在最後無論輸入是什麼,我只能得到2位數據?

我只需要提示或僞代碼。如果我的問題在這裏不適用,請隨時舉報或告訴我將其刪除。

我正在使用VHDL!

回答

2

0填充你的輸入位串,直到它長得很好,也許吧?在比較器中隱式地執行此操作最簡單:如果作爲參數提供給比較器的位數小於4,則只需左移位中的位,直到輸入字大小合適爲止。

0

每個比較會由2減少你的總位數,所以除非爲了事項某些其他原因,你會做相同數量的比較,無論你如何安排比較。