所用开发板为高云(Gowin)的Tang prime 20K开发板,这次我使用的是LED4,根据原理图对应端口为L14,此开发板的晶振为27MHz,位置为H11。
1.创建工程(路径别含中文)
2.编写v文件
3.编译Debug
4.综合
5布局布线
6.烧录到SRAM快速验证
7.烧录到flash
源文件.v文件为
module led(
input Clock,
output IO_voltage
);
/**********计时部分**********/
//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
parameter count_value = 13_499_999; // 计时 0.5S 所需要的计数次数
reg [23:0] count_value_reg ; // 计数器
reg count_value_flag; // IO 电平翻转标志
always @(posedge Clock) begin
if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
count_value_reg <= count_value_reg + 1'b1; // 继续计数
count_value_flag <= 1'b0 ; // 不产生翻转标志
end
else begin //计数到 0.5S 了
count_value_reg <= 23'b0; // 清零计数器,为重新计数最准备
count_value_flag <= 1'b1 ; // 产生翻转标志
end
end
reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态
/**********电平翻转部分**********/
always @(posedge Clock) begin
if ( count_value_flag ) // 电平翻转标志有效
IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
else // 电平翻转标志无效
IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
end
/**********补充一行代码**********/
assign IO_voltage = IO_voltage_reg;
endmodule