zynq入门教程

一、前言

本次实验将通过基本的流水灯代码进行讲解,但是是采用PS端时钟通过锁相环提供给PL端时钟,借此来熟悉一下基本的vivado环境。

二、基本过程

1、基本的PL部分代码

往期文章有讲,本篇文章重点不在这种简单的verilog语法,不做详细说明

复制代码
`timescale 1ns / 1ps

module shift_led(
input sclk,
input s_rst_n,
output reg [3:0] led
    );


parameter DELAY_1S='d49_000_000;
reg [25:0] cnt_1s;

always@(posedge sclk or negedge s_rst_n) begin
    if(!s_rst_n)
        cnt_1s<='d0;
    else if(cnt_1s==DELAY_1S)
        cnt_1s<='d0;
    else
        cnt_1s<=cnt_1s+1'd1;
end

always@(posedge sclk or negedge s_rst_n)begin
    if(!s_rst_n)
        led<=4'b1110;
    else if(cnt_1s==DELAY_1S)
        led<={led[2:0],led[3]};
end

endmodule

2、vivado配置

2.1添加zynq IP核

如图,首先正常创建项目,然后点击create block design,我们采取调用IP核的方式完成zynq配置

然后会弹出类似这个界面,第一就是按照一个箭头的,点击add IP,第二步就是搜zynq,我的板子只有这一个(如果你创造工程的时候胡乱选的器件型号,建议你自行修改一下),第三步就是双击这个IP核,然后他会自动加载。

2.2配置zynq IP核

2.2.1 PS-PL configuration

然后我们双击生成的zynq IP核,首先,我们的项目只需要PS(可以简单理解为单片机端),然后在PS-PL配置这里,我们可以点开AXI,以及他下面的GP master,我们能把默认的勾取消掉,这部分应该是arm读写控制fpga用的,我们现在暂时只需要PS端提供时钟,所以取消勾选。

2.2.2 配置时钟

然后,我们需要配置ps需要给我们pl端多少个时钟,他最多允许这几个,我们这边只要一个,50mhz的时钟,所以这样就够了

2.2.3 配置DDR3

我们还需要配置一下ddr3,这部分呢需要我们找原理图,明白自己手上的fpga需要对应哪一种ddr3芯片,我这边是MT41K128的这个,然后还需要改下位数,我这不是32位而是16位的

然后点击ok,完成配置。

三、打包IP

1、用户使用vivado工具创造IP核

1.1文件准备

首先,在我们的项目中,新建一个存放ip核的地方---ip_pero,

然后,再在这个文件夹里面新建我们的IP文件夹,比如我这个流水灯代码,就像这样

然后再把verilog写的.v文件放进这个文件夹里面,第一步就完成了

1.2 vivado工具打包

然后我们用vivado自带的打包工具,就像这样

这边改一下,打包在特定目录

选取我们刚刚的文件夹,到shift那里就行了,再下去你也点不到

然后你就可以在我们搜索栏找到这个IP核,自己搜搜名字就行(注意是在我们点加号那里搜,其他地方搜是可能搜不到的)

1.3使用IP核

首先用鼠标完成对应连线(类似原理图这个部分),然后鼠标右键我们的shift_led,他后续是需要和外部的led连接的,点击make external这个选项,可能和你的led名字不同,自行修改一下就行

连完线觉得难看可以点击这个layout,系统自动美化,至于zynq的ddr还有io,我们不用管

点击run block auto这个选项,然后直接默认接收就行

最后鼠标右键,点击validate design即可

2、源文件直接生成模块

我们只需要在design中写好Verilog代码,右键他,选择add module即可

四、完成收尾

1、design文件转.v文件

首先右键我们的design,这里选择generate output选项,然后运行完后再右键design,选择cerate hdl wrapper

然后我们可以发现,我们出现了.v文件

2、提示

后续就生成比特流文件,绑定引脚即可,不过记住,时钟端在ps部分,我们不需要管时钟。

相关推荐
XMAIPC_Robot3 小时前
RK3576/RK3588+FPGA+AI数据采集系统:实时性与边缘AI算力兼顾
人工智能·fpga开发·机器人·数据采集·rk3588+fpga·rk3576+fpga
火花页.18 小时前
【正点原子ZYNQ领航者7020】PS写ramPL读ram实验
zynq
156082072191 天前
JFMRFVU3P5G的bit正常,但烧录mcs程序后加载异常
fpga开发
狂奔蜗牛(bradley)1 天前
把 EtherCAT 初始化从 FPGA 搬到 ARM:命令通道的接口设计与11个坑
arm开发·人工智能·fpga开发·架构
女神下凡2 天前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
szxinmai主板定制专家3 天前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys
FPGA小徐3 天前
【硬件实战】立创 EDA 绘制 TF/SD 卡模块电路|SPI 模式原理图 + 阻抗匹配 + PCB 布局布线全教程
单片机·嵌入式硬件·fpga开发
狂奔蜗牛(bradley)3 天前
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模
人工智能·嵌入式硬件·fpga开发·架构
ALINX技术博客4 天前
8 通道同步采样 ADC!AN706 波形显示实验 【FPGA黑金云课堂】
fpga开发