zynq 7010 PL 点灯例程

环境

硬件:ebaz4205
软件:Vivado 2018.3
下载器:XILINX JTAG 下载器

硬件改造

由于 ebaz4205 矿板没有焊接 PL 晶振,需要手工焊接,共需焊接下面三处才能让 PL 晶振工作,

  1. 背面 L29 焊接一个 0603 的 0 欧姆电阻
  2. X5 焊接一个 3225 的 50MHz 的有源晶振
  3. R1372 焊接一个 0402 的 10 欧姆的电阻
    在这里插入图片描述
    在这里插入图片描述

代码

编写 Verilog 代码,创建一个 module。

Verilog 中的 module 相当于 VHDL 中的 entity + architecture。

在 module 中定义模块的输入输出信号,并描述内部行为:时钟上升沿,计数加一,累计到 50M 时 led 取反。
后面会给 clk 绑定外部晶振引脚,外部晶振频率为 50MHz,所以 led 每秒状态会变化一次。
led.v

module led(
  input clk,        // 输入时钟信号
  output reg led    // 输出 LED 信号
);

reg [31:0] counter = 0;         // 定义一个 32 位计数器变量

always @(posedge clk) begin     // 该 always 块会在时钟上升沿触发时执行。positive edge: 上升沿;negative edge:下降沿。
  counter <= counter + 1;       // 计数器加 1
  if (counter == 50000000) begin // 如果计数器达到一个固定的值
    counter <= 0;               // 计数器清零
    led <= ~led;                // LED 取反
  end
end
endmodule

分配引脚

将 module 视为 PCB 上的 IC 芯片,我们还要为其连接外部引脚,才能完成输入输出功能。
在 Vivado 中,分配引脚有两种方式,一种是用图形界面,另一种是写约束文件。这两种方式结果相同,最终都是生成相同的约束文件。
为了简单直观起见,我们使用图形界面,操作步骤如下图。
在这里插入图片描述
其中,板子上晶振的输入引脚是 N18,我们便将 clk 与 N18 引脚相连。
输出引脚我们随便选一个 H18(DATA1-15),并设置引脚的电气属性为 3.3V,后面将该引脚连接一个 LED 观看效果。
在这里插入图片描述 在这里插入图片描述

综合(Synthesis)

点击 Run Synthesis 进行综合。
综合(synthesis)的概念是:将高级抽象层次的电路描述转化成较低层次的描述。
也就是说将语言描述的电路逻辑转化成与门、或门、非门、触发器等基本逻辑单元的互连关系。也就是我们常说的门级网表。
简单来说就是:Verilog =综合=> 电路原理图
在这里插入图片描述

实现(Implementation)

点击 Run Implementation 进行实现。
implementation 正确的翻译应该是“实现”,implementation 是一个 place 和 route 的过程,也就是布局布线
综合后生成的门级网表只是表示了门与门之间虚拟的连接关系,并没有规定每个门的位置以及连线的长度等。布局布线就是一个将门级网表中的门的位置以及连线信息确定下来的过程。
可以理解为是 PCB 布局布线的过程。
在这里插入图片描述

生成 Bitstream(Generate Bitstream)

点击 Generate Bitstream。
通过 Generate Bitstream 命令,可以将设计文件转换为可下载到 FPGA 芯片中的 Bitstream 文件
这个 Bitstream 文件包含了 FPGA 芯片的配置信息,包括了实现的逻辑电路、时序等信息,可以被烧录到 FPGA 芯片中,从而使 FPGA 芯片运行用户设计的逻辑电路。
通过生成 Bitstream 文件,可以将 FPGA 设计从软件模拟阶段转换到硬件实现阶段,并将设计部署到目标 FPGA 芯片中。

Auto Connect && Program Device

依次点击 Open Hardware Manager、Auto Connect、Program Device,将 Bitstream 文件烧写到 zynq 中。
具体来说是烧写到 zynq PL(FPGA) 的配置寄存器中。FPGA 中的配置寄存器是用来配置 PL 中逻辑单元的寄存器,它们可以配置逻辑单元的功能、输入输出端口以及与其他逻辑单元之间的互联关系。通过将 Bitstream 文件写入配置寄存器,FPGA 中的逻辑单元就会按照文件中的配置进行初始化,从而实现所需的功能。

测试

请添加图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li-Yongjun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值