lattice diamond中使用时钟源demo
我一直以为使用时钟源 OSCH 需要配置ip核什么的, 实际上不需要配置.
直接在代码里写 OSCH OSCH_inst(…) 即可. 默认就引用.
参考代码如下. 无需任何额外的配置.
`timescale 10ns / 1ps
module inter_clk
(
output[1:0] led
);
localparam TIME1MHZ_DIV = 38000_000;
wire sys_clk;
defparam OSCH_inst.NOM_FREQ = "38.00";
OSCH OSCH_inst(
.STDBY(1'b0), // 0=Enabled, 1=Disabled // also Disabled with Bandgap=OFF
.OSC (sys_clk),
.SEDSTDBY()
);
reg[31:0] led_blink_count;
always @(posedge sys_clk)
begin
if(led_blink_count == TIME1MHZ_DIV)
led_blink_count <= 0;
else
led_blink_count <= led_blink_count+ 1'd1;
end
reg led_temp;
always @(posedge sys_clk)
begin
if(led_blink_count == TIME1MHZ_DIV)
led_temp <= ~led_temp;
else
led_temp <= led_temp;
end
assign led[0] = led_temp;
assign led[1] = ~led_temp;
endmodule