FPGA-ZYNQ核心板之流水灯

本系列为学习FPGA开发板的随笔~
使用FPGA:xlink ZYNQ7000 AX7021
开发环境:vivado2020.1

Zynq7000 SOC芯片 采用ARM+FPGA技术,将ARM Cortex-A9 和FPGA集成在一块芯片上,这个系列的板子可以实现非常多的功能。
先跑一个流水灯试试吧~

一、准备硬件

FPGA-ZYNQ核心板之流水灯_第1张图片
为了能在核心板上进行下载调试,小编给核心板jtag接口焊上了排针
FPGA-ZYNQ核心板之流水灯_第2张图片
FPGA-ZYNQ核心板之流水灯_第3张图片

然后把开关SW1拨到了JTAG 的启动模式

FPGA-ZYNQ核心板之流水灯_第4张图片
用杜邦线连接下载器
FPGA-ZYNQ核心板之流水灯_第5张图片

二、编译代码并下载测试

使用vivado2020,创建工程 命名为led
FPGA-ZYNQ核心板之流水灯_第6张图片
选择筛选条件“Zynq-7000” “-2”“clg484”,然后选择xc7z020clg484-2
FPGA-ZYNQ核心板之流水灯_第7张图片
FPGA-ZYNQ核心板之流水灯_第8张图片
接下来编写led.v,定义一个32位寄存器timer 用于循环计数0~499999999(1s)

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2020/07/20 13:36:08
// Design Name: 
// Module Name: led
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module led(
 input sys_clk,
 output reg  led
    );
    reg[31:0] timer_cnt;
    always@(posedge sys_clk)
    begin
        if(timer_cnt>=32'd49_999_999)
        begin
        led<=~led;
        timer_cnt<=timer_cnt+32'd0;
        end
        else
        begin
          led<=led;
          timer_cnt<=timer_cnt+32'd1;
        end
       end      
endmodule

添加管脚约束文件,核心板上led2的管脚对应R7,PL时钟引脚对应Y9



set_property PACKAGE_PIN R7 [get_ports led]
set_property PACKAGE_PIN Y9 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]

create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} [get_ports sys_clk]

编译之后生成bit文件,然后连接硬件选择xc7z020_1,右键“Program Device”
FPGA-ZYNQ核心板之流水灯_第9张图片

下载之后可以看见l“down”灯(表示程序下载完成)常亮,“led2”闪烁
FPGA-ZYNQ核心板之流水灯_第10张图片

相关vivado工程文件:
https://download.csdn.net/download/hongliyu_lvliyu/12646568

你可能感兴趣的:(FPGA)