Лог c прав. Однако есть неточности. Я изменил размер регистра, чтобы запустить симуляцию, как разрешено EDA игровая площадка.
DUT:
module w_m(clk, clk_out);
input clk;
//output [21:0] cnt;
output clk_out;
reg [11:0] cnt = 0; // make 11 to 21
always @(posedge clk)
cnt = cnt + 1;
assign clk_out = cnt[11];
endmodule
Кроме того, тестовой системе требуется $ fini sh, чтобы остановить бесконечное выполнение блока forever, занимающего дисковое пространство. Добавлен параллельный путь для запуска симулятора и выхода через 10000 нс. Вы можете изменить это по своему усмотрению. ТБ:
module w_tf;
reg clk;
wire cnt;
w_m uut
(
.clk(clk),
.clk_out(cnt)
);
initial begin
// Initialize Inputs
clk = 0;
fork
begin
forever begin
#10 clk = !clk; end
end
begin
#10000000 $finish; // increase this number as per the simulation requirement
end
join
end
endmodule