Вот пример make-кода клавиши, генерируемого клавиатурой PS2
Частота ALTUFM_OSC (частота штатного генератора) 5.5 МГц (MAX II EPM240 CPLD Minimal Development Board).
Вот пример модуля, использующего штатный генератор
module inner_Clock ( output reg LED);
ALTUFM_OSC osc( .oscena(1'b1), .osc(clk));
reg signal;
reg [24:0] osc_counter;
reg [24:0] const_data = 25'b10110111000110110000000;
initial
begin
signal = 1'b0;
osc_counter = 25'b0;
end
//досчитываем до 6 000 000 и обнуляем счетчик osc_counter
always @(posedge clk)
begin
osc_counter <= osc_counter+ 1'b1;
if(osc_counter == const_data)
begin
signal <= ~signal;
osc_counter <= 25'b0;
end
LED = signal; // LED мигает ~1 раз в сеунду.
end
endmodule
Здесь мы 5,5 МГц делим на 6 млн, получаем примерно 1 Гц.
Для того, чтобы "сгенерировать частоту" 12.88КГц необходимо чтобы const_data = ~ 427 (decimal) = 1 1010 1011 (binary).
Правильно?
Как отсчитать 11 тактов?