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部分,我们不需要管时钟。

相关推荐
幻智星科技3 小时前
树形架构破解FPGA扇出瓶颈
fpga开发·硬件架构
FPGA小迷弟7 小时前
FPGA开发Vivado Block Design/Vitis/SDK/xlinx/开发教程,保姆级别,一看就会!
网络协议·tcp/ip·fpga开发·verilog·fpga
FPGA小迷弟7 小时前
基于FPGA实现智能网卡的概念,什么是智能网卡
网络协议·tcp/ip·fpga开发·verilog·fpga
好焊孙辉9 小时前
螺柱焊机哪家质量好
python·fpga开发
XMAIPC_Robot14 小时前
基于 i.MX95 平台在新一代工业控制器中的应用 — 工业车载平板、半导体设备主控方案解析
arm开发·人工智能·机器学习·fpga开发·rk3588+fpga·i.mx95
szxinmai主板定制专家14 小时前
基于 AM62x + Artix-7 的低功耗 ARM+FPGA 平台在轨道交通车门控制中的应用
arm开发·人工智能·fpga开发·zynq·am62x
幻智星科技14 小时前
我砍掉了FPGA里的ARM核项目反而提前交付了
arm开发·网络协议·fpga开发·硬件架构
逐光者93314 小时前
Verilog 三段式状态机:原理、模板与实战
fpga开发
XMAIPC_Robot15 小时前
NXP i.MX95 + FPGA 异构计算平台 — 工业多域融合 AI 加速嵌入式控制解决方案
人工智能·分布式·fpga开发·能源·rk3576+fpga
FPGA小迷弟1 天前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
fpga开发·dsp开发·fpga·1024程序员节·sdr·无线电