Невозможно создать тактовый сигнал на Lattice ICE40 FPGA

Я пытаюсь создать тактовый сигнал с частотой 1 Гц на ПЛИС решетки ICE40. Я пишу свой код в Verilog и использую программное обеспечение Lattice Radiant. Этот тактовый сигнал с частотой 1 Гц будет использоваться для создания прямоугольной волны.

Однако я не получаю никакого вывода, ни от вывода, на котором должен быть включен тактовый сигнал, ни от вывода, который должен выводить прямоугольную волну. Я уверен, что проверяю правильные контакты. Я также уверен, что код загружается на доску. Я считаю, что FPGA по какой-то причине не создает тактовый сигнал.

Вот мой код:

module square (clk, x, y, z);

// Inputs and Outputs
input clk; // The clock signal
output x, y, z; // The square wave output

// Type Declaration
reg x; // x is a register

// Initialize x
initial
    begin
        x = 0;
    end

// Run each time the clock transitions from low to high
always @(posedge clk)
    begin 
        x = !x; // Flip x
    end

// Outputs used to confirm the program is running   
assign y = 0; //39A
assign z = 1; //41A

endmodule

А вот мой файл ограничений синтеза (.ldc):

create_clock -name {clk} -period 1000000000 [get_ports clk]

Период определяется в наносекундах, так что это часы с частотой 1 Гц.

Спасибо.

1 ответ

Спасибо всем. Я не осознавал, что мне нужно было самим создавать часы. Я создал часы, используя функцию высокоскоростного генератора:

// Initialize the high speed oscillator
HSOSC clock (
    .CLKHFEN(1'b1), // Enable the output  
    .CLKHFPU(1'b1), // Power up the oscillator  
    .CLKHF(clk) // Oscillator output  
);

// Divide the oscillator down to 6 MHz
defparam clock.CLKHF_DIV = "0b11";

И, похоже, работает.

Другие вопросы по тегам