• 已绑定课时
  • 工程师可点评

FPGA入门第1节课(极简实操版:从0到1点亮LED) 【本节要点】 1.核心概念一句话记 • FPGA:硬件并行电路,写代码=画电路,和CPU软件执行完全不同。 • 开发流程:写代码 → 编译 → 绑定引脚 → 生成文件 → 烧录点亮。 2. Verilog 最核心3个知识点 • 所有代码都写在 `module/endmodule` 里面(一个文件一个模块)。 • 端口只有3种:`input`(…

二牛学FPGA
109 0 1

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%是:引脚错、电平错、端口方向错。

学习上下文

产出状态

工程师已阅109 位工程师