Я не уверен, требуется ли более 1 цикла, и если мне нужно будет учитывать сдвиг, для завершения более 1 цикла. И если можно сдвинуть более 1 бит за раз, сдвигает ли 1 бит один и тот же уровень задержки/времени затвора, как сдвиг нескольких бит?Можно ли переместить более 1 бит за цикл в verilog?
ответ
Если вы имеете в виду комбинационный сдвиг, то фиксированный сдвиг вообще не принимает никакой логики: это всего лишь некоторое изменение в проводке. Если вы хотите переменный сдвиг, вы можете использовать эти операторы 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
Устройство сдвига сдвигает A
вход по количеству мест, представленных SHIFT
ввода, чтобы дать выход 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 бит сдвиг с 1
- 2. смещение бит ввода в verilog
- 3. Verilog: можно ли проиндексировать экземпляр?
- 4. 8 бит в ширину, 2-к-1 модуль мультиплексора verilog
- 5. Бит мудрый «И» массив регистров в Verilog
- 6. Можно ли переместить значок?
- 7. Может ли AdvancedFilter копировать более 1 строки за раз?
- 8. Конкатенация бит оперативной памяти в Verilog
- 9. Как динамически изменить положение бит в verilog?
- 10. Как переместить бит в целое?
- 11. Verilog: Храните бит в определенном диапазоне бит инициализированного модуля
- 12. Можно ли подключить более 1 файл в IE8?
- 13. Можно ли переместить «ящик» флажка?
- 14. Можно ли переместить phpmyadmin за пределы корневой папки?
- 15. vb.net: возможно ли комментировать более 1 строки кода за раз?
- 16. 8 Бит ALU с переполнением в Verilog
- 17. Можно ли переместить boost :: optional?
- 18. В JavaScript можно использовать смещение битов для выделения 1 или более бит в байте?
- 19. , заставляя бит в проводной системе verilog
- 20. Можно ли оптимизировать этот цикл?
- 21. Можно ли векторизовать следующий цикл?
- 22. Переместить бит битового сдвига python
- 23. Нужно ли подписать расширение 0 бит в Verilog?
- 24. ArrayList удалить более 1 на цикл?
- 25. Может ли более сложный цикл выполняться быстрее?
- 26. Можно ли переместить двоичный файл?
- 27. Можно ли использовать параметры JPQL в более чем 1 позиции?
- 28. генератор состояния в Verilog для N бит
- 29. Как рандомизировать массив бит-массивов в verilog?
- 30. Можно ли реализовать цикл в MySQL Query
Скажем, я должен был сделать сдвиг влево по 5 (<< 5) в регистре. Это займет 5 циклов или 1 цикл? Будет ли синтезатор рассматривать его как регистр сдвига или он сделает какой-то трюк, который заставит его принять только один цикл? –
@Brian Crafton Синтезатор не примет такого решения; вы должны. Когда вы разрабатываете HDL, вы разрабатываете более высокий уровень абстракции, но не настолько высок. Я мог бы привести примеры комбинационного сдвига и сдвигового регистра в Verilog, но теперь. –
@Brian Crafton Я добавил несколько примеров. Если это не поможет, возможно, вы могли бы предоставить более подробную информацию о своем вопросе. Что ты меняешь? Зачем? –