Опишите на языке Verilog следующее устройство:
Восьмиразрядный инкрементирующий двоичный счетчик с синхронными сигналами загрузки данных (load) и разрешения счета (enable)
Решение
Счетчик имеет 4-е входа: тактовый, разрешения счета и разрешения загрузки, информационный.
Размерность входного информационного и выхода сяета – 8 разрядов (по умолчанию), задается параметром WIDTH.
Счетчик полностью синхронный. При появлении переднего фронта тактового сигнала
проверяется наличие 1 на входе загрузки, и если она разрешена, значение со входа копируется
в регистр count (он же и выход).
Если на load логический ноль, происходит инкремент значения в регистре count.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
module binary_sinchronous_up_counter
#(parameter WIDTH=8)
(
input clk, enable, load,
input [WIDTH—1:0] in,
output reg [WIDTH—1:0] count
);
always @ (posedge clk)
begin
if (load)
count <= in;
else if (enable == 1‘b1)
count <= count + 1;
end
endmodule
|