无法在 Lattice ICE40 FPGA 上创建时钟信号
Cannot create a clock signal on a Lattice ICE40 FPGA
我正在尝试在 Lattice ICE40 FPGA 上创建一个 1 Hz 的时钟信号。我正在用 Verilog 编写代码并使用 Lattice Radiant 软件。这个 1 Hz 时钟信号将用于创建方波。
但是,我没有得到任何输出,无论是从时钟信号应该打开的引脚还是从应该输出方波的引脚。我确定我正在检查正确的引脚。我也确定代码正在下载到板上。我相信 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 Hz 的时钟。
谢谢。
谢谢大家。我没有意识到我需要自己制作时钟。我使用高速振荡器功能创建了一个时钟:
// 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";
它似乎在工作。
我正在尝试在 Lattice ICE40 FPGA 上创建一个 1 Hz 的时钟信号。我正在用 Verilog 编写代码并使用 Lattice Radiant 软件。这个 1 Hz 时钟信号将用于创建方波。
但是,我没有得到任何输出,无论是从时钟信号应该打开的引脚还是从应该输出方波的引脚。我确定我正在检查正确的引脚。我也确定代码正在下载到板上。我相信 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 Hz 的时钟。
谢谢。
谢谢大家。我没有意识到我需要自己制作时钟。我使用高速振荡器功能创建了一个时钟:
// 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";
它似乎在工作。