硬件
SiPeed Tang-Primer-20k开发板
点灯
[https://wiki.sipeed.com/hardware/zh/tang/tang-primer-20k/examples/led.html]
candy1.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
保存文件后点击左下Process,右击Synthesize->Run进行综合生成综合网表
网表通常传递了电路连接方面的信息,例如模块的实例、线网以及相关属性。如果需要包含更多的硬件信息,通常会使用硬件描述语言,例如Verilog、VHDL或其他的专用语言来进行描述、验证和仿真。高抽象层次(如寄存器传输级)的硬件描述可以通过逻辑综合转换为低抽象层次(逻辑门级)的电路连线网表,这一步骤目前可以使用自动化工具完成,这也大大降低了设计人员处理超大规模集成电路的繁琐程度。硬件厂商利用上述网表,可以制造具体的专用集成电路或其他电路。一些相对较小的电路也可以在现场可编程逻辑门阵列上实现。
点击 Synthesize 上面的 FloorPlanner 来进行管脚约束
完成约束后就要开始运行布局布线了,目的是为了把综合所生成的网表与我们自己定义的约束来通过 IDE 算出最优解然后将资源合理地分配在 FPGA 芯片上。
双击Place&Route
使用高云云源编程器教育版进行烧录,
接线说明:
接线有些费事,一定要注意丝印的示意图,别接反了