В языке Verilog реализовано 2 типа циклов: while – цикл с предусловием и for – цикл с параметром (счетчиком). Третий цикл do в Verilog не предусмотрен. Цикл While Условие выхода из цикла проверяется каждый раз перед выполнением тела цикла. Синтаксис: while (логическое выражение) тело цикла, оператор 1; Или: while (логическое_выражение) begin
тело цикла, оператор 1;
тело цикла, оператор 2;
... тело цикла, оператор n;
end Рассмотрим цикл While на примере циклического сдвига числа 8′b10001101 вправо на 4 бита. При таком типе сдвига, старшие биты (с 8-го по 2-ой) сдвигаются на 1 позицию вправо, а младший бит (1-ый) переносится на старшую (8-ую) позицию. Таким образом, циклически сдвинув число 8′b10001101 на 4 позиции вправо, получим 8′b11011000. Код программы: `timescale 1 ns / 1 ps
module main (
input wire rst,
input wire start,
output reg [7:0] out
);
integer i;
always @(posedge rst, posedge start)
if (rst) begin
out = 8'b10001101;
i = 0;
end
else b