FPGA入门第1节课(极简实操版:从0到1点亮LED)
【本节要点】
1.核心概念一句话记
• FPGA:硬件并行电路,写代码=画电路,和CPU软件执行完全不同。
• 开发流程:写代码 → 编译 → 绑定引脚 → 生成文件 → 烧录点亮。
2. Verilog 最核心3个知识点
• 所有代码都写在 `
module/endmodule` 里面(一个文件一个模块)。
• 端口只有3种:`input`(输入)、`output`(输出)、`inout`(不用管)。
• 最简输出:`assign` 直接赋值控制LED亮灭。
3.上板必备操作
• 必须绑定引脚(时钟、LED对应芯片管脚),否则硬件不工作。
• 烧录文件:`.sof`/`.pof`/`.bit`,工具自动生成,直接下载即可。
4.第一个工程目标
• 不搞复杂逻辑,只实现:代码赋值 → 编译成功 → 上板点亮LED。
【疑问/坑点】
1.软件思维坑:以为代码从上往下执行,实际FPGA是全部同时运行。
2.端口定义错:LED明明是输出,写成 `input`,编译不报错但灯不亮。
3.没绑引脚/绑错引脚:最常见!软件编译正常,开发板完全没反应。
4.电平不匹配:LED是高电平亮还是低电平亮,要看原理图,写错不亮。
5.文件乱放/模块名不对:工程找不到代码,编译直接报错。
【可复用的代码/思路】
#1.万能最简模块模板(第一课直接用)
// 模块名 = 文件名,保持一致
module led_test(
input wire clk, // 开发板时钟输入
output reg led // LED输出,最简单的输出定义
);
// 直接让LED常亮(修改1/0即可控制亮灭)
always@(*)
led = 1'b0;
endmodule#2.上板复用思路
1.复制模板改一改:新建工程 → 粘贴代码 → 改LED电平 → 绑定引脚。
2.引脚绑定固定流程:先找时钟引脚 → 再找LED引脚 → 保存配置。
3.排查顺序:编译报错→看代码;编译成功灯不亮→优先查引脚、电平。
#总结
1.第一课只抓点亮LED,不求懂原理,先跑通工程流程;
2.代码只记:module、端口、assign/always赋值三件套;
3.灯不亮90%是:引脚错、电平错、端口方向错。

评论 0