我不確定是否需要超過1個週期,以及是否需要考慮需要超過1個週期才能完成的班次。如果一次可以移位多於1位,移位1位是否需要移位多位的延遲/門控時間?在verilog中,每個週期可以移位多於1位嗎?
0
A
回答
1
如果你的意思是一個組合換檔,那麼一個固定的換檔完全不需要邏輯:它只是佈線的一些變化。如果你想要一個變量移位,那麼你可以使用這些Verilog運算符:<<
(邏輯左移),>>
(邏輯右移)或>>>
(算術右移)。你的合成器應該爲這些操作員合成一個組合電路。這個大小和延遲因此將取決於所需的最大移位和要移動的單詞的長度。延遲是否超過一個時鐘週期取決於您的時鐘頻率。除非你有一個非常快的時鐘或很長的最大移位,否則延遲可能會輕易小於一個時鐘週期。
這裏是一個組合左移位器以Verilog:
module ones_shift #(log2_width=2) (input [(2**log2_width)-1:0] A, input [log2_width:0] SHIFT, output [(2**log2_width)-1:0] As);
assign As = A << SHIFT;
endmodule
http://www.edaplayground.com/x/24P8
換檔器通過由所述輸入SHIFT
表示的位數的移位輸入A
,得到As
輸出。
如果你的意思是一個移位寄存器(是一個時序電路),那麼你將在每個時鐘週期產生一次移位。
這裏是用Verilog移位寄存器:
module SHIFT_REG #(SIZE = 16) (input LOAD, SHIFT, CLOCK, RESET, [SIZE-1:0] A, output reg [SIZE-1:0] As);
always @(posedge CLOCK or posedge RESET)
if (RESET)
As <= {SIZE{1'b0}};
else
if (LOAD)
As <= A;
else
if (SHIFT)
As <= {As[SIZE-2:0],1'b0};
endmodule
http://www.edaplayground.com/x/2bAW
如果LOAD
輸入爲高時,輸入A
加載到移位寄存器。如果SHIFT
輸入爲高電平,則寄存器向左移動(每CLOCK
週期一位)。 As
輸出是移位寄存器的並行輸出。 RESET
輸入爲高電平有效。
相關問題
- 1. 在verilog中移位輸入位
- 2. Verilog輸出是1個時鐘週期
- 3. 如何在verilog中創建1個週期自上升信號?
- 4. 移位寄存器Verilog
- 5. 在Verilog中將ALU 1位轉換爲ALU 8位
- 6. CABasicAnimation在完成1個週期後回到其原始位置
- 7. 以每週爲單位顯示數據
- 8. GDDR5每個週期可以裝載多少數據?
- 9. Vector可以在一個位置存儲多個數據嗎?
- 10. 在Verilog中可以合成$ readmem嗎?
- 11. 你可以在'for-loop'中使用位移操作嗎?
- 12. MOSS 32位和64位可以存在於同一個農場嗎?
- 13. 的Verilog,我可以分配一個位值倍數位內始終阻止
- 14. 如何在組合模塊中給出1個時鐘週期的延遲verilog
- 15. 循環移位左索引 - VERILOG
- 16. Verilog代碼移位和添加乘數
- 17. Verilog移位寄存器接口到AVR
- 18. Verilog錯誤:ALU輸出右移一位
- 19. JPQL命名參數可以在多個位置使用嗎?
- 20. 引用可以在其生命週期中引用多個對象嗎?
- 21. ASP.NET可以從多個位置提供單個內容佔位符嗎?
- 22. 在JavaScript中,可以使用位移來隔離一個字節中的一個或多個位?
- 23. 8位寬,2對1多路複用器verilog模塊
- 24. 在Verilog中將4位移位寄存器輸出連接到另一個模塊中的4位輸入
- 25. Verilog HDL:如果在復位條件內可以嵌套嵌套嗎?
- 26. 1 TaskTracker可以運行多個JVM嗎?
- 27. 我可以聲明一個位表嗎?
- 28. 我可以在64位版本中使用32位庫嗎?
- 29. 我可以在64位python中使用32位dll或exe嗎?
- 30. 32位Excel加載項可以在64位Excel中工作嗎?
假設我要在一個寄存器上做左移5(<< 5)。這需要5個週期還是1個週期?合成器會把它當作一個移位寄存器嗎?還是它會做一些讓它只需要一個週期的技巧? –
@Brian Crafton合成器不會做出這樣的決定;你必須。當您使用HDL進行設計時,您正在進行更高層次的抽象設計,但並不是那麼高。我現在可以在Verilog中給出組合移位和移位寄存器的例子。 –
@Brian Crafton我已經添加了一些例子。如果這沒有幫助,也許你可以提供一些關於你的問題的更多細節。你在轉移什麼?爲什麼? –