Недогенерил. Выхода нет. SystemVerilog c выходом.
module monostable (
input wire clk, // Входной тактовый сигнал
input wire trigger, // Входной сигнал для запуска одновибратора
output reg out // Выходной сигнал одновибратора
);
logic [31:0] count; // Регистр для подсчета тактов
logic running; // Флаг работы одновибратора
always_ff @(posedge clk) begin
if (trigger && !running) begin
running <= 1; // Запуск одновибратора по фронту триггера
count <= 0; // Сброс счетчика
out <= 1; // Установка выхода в 1 при запуске
end else if (running) begin
if (count < 32'd62500000 - 1) begin
count <= count + 1; // Увеличение счетчика до нужной задержки
end else begin
count <= 0; // Сброс счетчика после задержки
running <= 0; // Остановка одновибратора
out <= 0; // Установка выхода в 0 при остановке
end
end
end
endmodule