2011-03-19 77 views
0

我做了一個組合桶式移位器/旋轉器。現在我必須讓一個邊緣觸發一個。如果使用控制信號告訴邊沿觸發移位器/旋轉器右移一位,那麼如果不更改控制,輸出最終是否會變爲0?在Verilog中設計邊緣觸發桶式移位器/旋轉器

我應該通過使用組合移位器/旋轉器和D寄存器來設計它。爲什麼需要D寄存器?

回答

1

它最終不會變爲0,因爲輸出不會作爲輸入反饋回來。由於組合移位器/旋轉器對其不敏感,因此需要D寄存器來提供對時鐘上升沿的靈敏度。在上升沿,D寄存器會將其保存的任何內容轉儲到移位器/旋轉器中。

1

從我所瞭解的情況來看,如果你只是在移動,位會脫落,零將填滿空位位置。如果你在旋轉,那麼位不會脫落,而是會粘在另一端。這裏是一個輪換的位ABCD一位的位置,兩次:ABCD DABC CDAB。你可以看到,如果控制卡住旋轉,這些位將保持循環。這是一個移位的一個位位置,三次:ABCD 0ABC 00AB 000A,你可以看到如果控制不變,這種情況最終會變爲零。就D寄存器的使用而言,這是我的猜測:寄存器是存儲器元件,必須存儲位值,因此D寄存器是由D觸發器組成的寄存器來存儲其元素,並且您使用D觸發器,因爲D觸發器是邊緣觸發器件。你可以有一個使用J-K觸發器來存儲內存元素的J-K寄存器。希望這可以幫助。

+0

假設您已將ctrl設置爲告訴移位器向右移動。然後你的輸入就是1111.在下一個上升沿,它將變成0111,但在那之後,在下一個上升沿,它會變成0011嗎?輸入仍然是1111。 – 2011-03-20 07:30:22