Я пытаюсь сгенерировать часы, которые (3/16) от системных часов.Итак, я решил сгенерировать 3x тактовых импульса из системы clk и затем (1/16) x тактовых из этого.Прямо сейчас я застрял в генерации только 3х часов.Я делаю это, вычисляя период времени системных часов, а затем переключая 3x часы каждую 1/6 этого периода.Но моя симуляция просто останавливается на этомЯ нигде не использовал блок forever
, я проверил.Следовательно, нет временной конструкции.Ниже приведен код, над которым я работаю.
module eec_clk_gen (
input logic arst,
input logic sys_clk,
output logic eec_clk
);
real t0;
real t1;
real sys_clk_tp;
logic eec_clk_x3;
//Calculating clock period of sys_clk
initial
begin
@(posedge sys_clk) t0 = $realtime;
@(posedge sys_clk) t1 = $realtime;
sys_clk_tp = t1 - t0;
end
//Generating clock at 3 times sys_clk freq
initial
begin
@(posedge sys_clk) eec_clk_x3 = 1'b1;
end
always
begin
#(sys_clk_tp/6) eec_clk_x3 <= ~eec_clk_x3;
end
endmodule: eec_clk_gen
Меня не беспокоит сигнал arst
, который отсутствует в моем коде.Он будет реализован после того, как eec_clk
станет функциональным.Некоторая помощь, пожалуйста?