3、开发环境搭建:Vivado/Quartus安装指南、硬件描述语言选择(Verilog vs VHDL)、第一个工程创建

好,咱们直接进入正题。这一章,我带你把吃饭的家伙事儿先支棱起来。

很多新手朋友一上来就纠结「学哪个软件好」「学Verilog还是VHDL」。我的建议是——先别纠结,先把环境搭好,跑通第一个工程再说。你想想看,光看书不练手,永远学不会游泳。

3.1 Vivado vs Quartus:我该装哪个?

这个问题,说白了取决于你手头有什么板子。

  • Xilinx(AMD)的芯片,比如Artix-7、Zynq系列,那就装 Vivado
  • Intel(Altera)的芯片,比如Cyclone IV、MAX 10系列,那就装 Quartus Prime

我个人习惯是两套都装。为什么?因为项目需求不一样,客户给的芯片也不一样。你不可能指望一个工具吃遍天。

小提示: 如果你只是学习,买个便宜的国产开发板(比如黑金、正点原子),通常配的都是Xilinx芯片。那你就装Vivado。Quartus的安装流程大同小异,学会了Vivado,Quartus上手也快。

3.2 Vivado安装指南(以2023.1版本为例)

安装过程其实不复杂,但有几个坑我得提前跟你说。

  1. 去官网下载:AMD Xilinx官网,找到Vivado HLx。建议下载WebPACK版本,免费,功能对于学习完全够用。
  2. 安装路径:千万别有中文!千万别有空格!我见过有人装在「D:\程序\Vivado」下面,结果编译报错找半天原因。老老实实用英文路径。
  3. 选择组件:勾选「Vivado HL WebPACK」和「Vivado HL System Edition」相关的。如果你用Zynq,记得勾上「Vitis」。
  4. 安装时间:嗯,这个得有点心理准备。Vivado安装包大概20-30GB,解压安装下来可能要1-2小时。泡杯咖啡,或者去干点别的。
注意: 安装过程中会提示你安装驱动。一定要点「是」。我曾经有一次手快点了「否」,结果板子插上电脑死活识别不了,又重装了一遍驱动,折腾了半天。

3.3 Quartus Prime安装指南(以20.1版本为例)

Quartus相对轻量一些,但流程差不多。

  1. 下载:Intel官网,找到Quartus Prime Lite Edition,免费。
  2. 安装:同样,路径不要有中文。选择你需要的器件支持包(比如Cyclone IV、MAX 10)。
  3. License:Quartus Lite版不需要License,直接能用。如果你用标准版或专业版,需要申请免费的License文件。

我个人觉得Quartus的界面比Vivado清爽一些,但Vivado的IP核集成更强大。各有千秋吧。

3.4 硬件描述语言选择:Verilog vs VHDL

这是FPGA圈子里永恒的争论。我直接给你结论:

对比项 Verilog VHDL
语法风格 类似C语言,简洁 类似Ada,严谨冗长
学习曲线 平缓,上手快 陡峭,类型检查严格
市场占有率 约80%(尤其在中国) 约20%(军工、欧洲多)
适合场景 数字逻辑、SoC设计 复杂系统、安全关键系统

我的建议: 如果你是新手,直接学 Verilog。为什么?因为资源多,教程多,遇到问题随便一搜就有答案。VHDL当然也很好,但你在国内找工作,90%的公司都用Verilog。

我记得刚入行时,带我的老工程师说:「Verilog是写给机器看的,VHDL是写给人看的。」后来我自己体会,其实都差不多。关键是逻辑要清晰,代码要规范。

核心观点: 语言只是工具,硬件思维才是根本。你就算用Verilog写出花来,综合出来一堆Latch,那也是白搭。

3.5 第一个工程创建(以Vivado为例)

好,环境装好了,语言选好了。咱们来创建第一个工程。别怕,就三步。

第一步:新建工程

  1. 打开Vivado,点击「Create Project」。
  2. 工程名:比如 led_test。路径别带中文。
  3. 选择「RTL Project」,勾上「Do not specify sources at this time」。
  4. 选择芯片型号。如果你用的是开发板,一般会告诉你具体型号。比如我常用的黑金AX7010,芯片是 xc7z010clg400-1

第二步:写代码

点击「Add Sources」,选择「Create File」,输入文件名 led_top。然后双击打开,输入以下代码:

module led_top (
    input   wire        clk,        // 50MHz 时钟输入
    input   wire        rst_n,      // 复位,低有效
    output  reg  [3:0]  led         // 4个LED
);

    reg [31:0] cnt;

    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            cnt <= 32'd0;
            led <= 4'b0000;
        end else begin
            cnt <= cnt + 1'b1;
            // 每0.5秒翻转一次LED(50MHz时钟,计数25000000次)
            if (cnt == 32'd25000000 - 1) begin
                cnt <= 32'd0;
                led <= ~led;
            end
        end
    end

endmodule

这段代码什么意思?说白了就是一个计数器。每0.5秒,LED状态翻转一次。你下载到板子上,就能看到LED在闪烁。

第三步:综合、实现、生成比特流

  1. 点击左侧流程栏的「Run Synthesis」——综合。等几分钟。
  2. 综合完成后,点击「Run Implementation」——实现。
  3. 最后点击「Generate Bitstream」——生成下载文件。
避坑指南: 我第一次做的时候,综合报错说「没有约束文件」。别慌,Vivado会提示你添加。你创建一个XDC文件,写上时钟约束就行:create_clock -period 20.000 [get_ports clk]。20ns对应50MHz。

第四步:下载到板子

连接好下载器(一般是JTAG),点击「Open Hardware Manager」,然后「Auto Connect」。选择你的比特流文件,点击「Program Device」。搞定!

看到LED闪烁的那一刻,恭喜你,你已经完成了第一个FPGA工程。虽然简单,但这是万里长征的第一步。

总结一下: 环境搭建不难,但细节决定成败。路径别带中文、版本别选错、驱动记得装。语言选Verilog,先跑通再说。第一个工程就是点灯,别贪多。

下一章,我会带你深入Verilog的语法细节。咱们到时候见。