Невозможно создать тактовый сигнал на Lattice ICE40 FPGA - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь создать тактовый сигнал 1 Гц на Lattice ICE40 FPGA.Я пишу свой код в 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 Ответ

0 голосов
/ 23 января 2019

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

// 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";

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

...