ZYNQ FPGA自学笔记

一 ZYNQ FPGA 简介

ZYNQ FPGA主要特点是包含了完整的ARM处理系统,内部包含了内存控制器和大量的外设,且可独立于可编程逻辑单元,下图中的ARM内核为 ARM Cortex™-A9,ZYNQ FPGA包含两大功能块,处理系统Processing System(ps)和可编程逻辑Progarmmable Logic(pl),为了实现 ARM 处理器和FPGA之间的高速通信和数据交互,发挥 ARM 处理器和FPGA的性能优势,需要设计高效的片内高性能处理器与FPGA之间的互联通路。从zynq内部框图看ps与pl端的高速互联接口为Advanced eXtensible Interface(AXI)。

图: zynq fpga xc7z020 内部框图

通过 pl 点亮 LED

1 硬件电路

zynq fpga 为xc7z020,电路如下图所示,点亮led1~led4,与PL端连接的为M14,M15,K16,J16,PL_GCLK为50M的时钟源。

图:硬件原理图

2 vivado 工程

vivado版本为2017.4。

安装包直接在官网下载:https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/vivado-design-tools/archive.html

license文件:

链接:https://pan.baidu.com/s/1mlVilCib8T-KzS6U1Ufytw?pwd=4kc3

提取码:4kc3

操作过程主要是:

新建工程→创建led.v文件→生成管脚xdc文件→综合在xdc中增加时序约束→生成bit文件

2.1 点亮 led verilog

代码如下:

module led(

input sys_clk,

input rst_n,

output reg 3:0 led

);

reg31:0 timer_cnt;

always@(posedge sys_clk or negedge rst_n)

begin

if (!rst_n)

begin

led <= 4'd0 ;

timer_cnt <= 32'd0 ;

end

else if(timer_cnt >= 32'd49_999_999)

begin

led <= ~led;

timer_cnt <= 32'd0;

end

else

begin

led <= led;

timer_cnt <= timer_cnt + 32'd1;

end

end

Instantiate ila in source file

//ila ila_inst(

// .clk(sys_clk),

// .probe0(timer_cnt),

// .probe1(led)

// );

endmodule

由系统时钟50M,计数到49999999翻转LED,也就以1s的间隔亮灭LED。

IO 的配置如下图所示:

图:点亮 LED io 配置

生成的原理图:

图:点亮 LED 的逻辑原理图

2.2 vivado 仿真

仿真文件:

module vtf_led_test;

// Inputs

reg sys_clk;

reg rst_n ;

// Outputs

wire 3:0 led;

// Instantiate the Unit Under Test (UUT)

led uut (

.sys_clk(sys_clk),

.rst_n(rst_n),

.led(led)

);

initial

begin

// Initialize Inputs

sys_clk = 0;

rst_n = 0 ;

#1000 ;

rst_n = 1;

end

//Create clock

always #10 sys_clk = ~ sys_clk;

endmodule

仿真结果:

可以看到在1s的位置led1~led4电平有翻转。

图:仿真的波形

完整的点亮 LED 工程:

链接:https://pan.baidu.com/s/19WJav9AoM_YqfZWq-V-_Xw?pwd=mwgu

提取码:mwgu

烧录 pl 程序到 flash

相关推荐
ALINX技术博客6 小时前
AMD MoP 封装策略解读 | HBM 大热,为何 AMD Versal 系列反选 LPDDR5X?
fpga开发·fpga·amd·versal
zlinear数据采集卡8 小时前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
Rambo.xia9 小时前
AXI-Stream反压与背靠背传输——TREADY反压丢帧、TDEST路由错误、反压死锁,流式数据一反压就出事
fpga开发
国科安芯11 小时前
ASC8T245S 8通道电平转换设计实战:从系统架构到QFN24 Layout再到量产测试
网络·单片机·物联网·安全·fpga开发·系统架构
传感器与混合集成电路1 天前
基于FPGA与ADC协同架构的高密度数据采集模块设计原理与应用场景分析
fpga开发·架构
Rambo.xia1 天前
10Gbps实时图像重采样:一个FPGA项目的完整交付复盘
fpga开发
zlinear数据采集卡1 天前
2mV纹波的代价:硬核拆解ZLinear模拟前端放大器与正负可调电源设计
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
小麦嵌入式1 天前
FPGA入门(八):一篇讲透跑马灯、闪烁灯、呼吸灯的原理与模拟波形分析
fpga开发
Rambo.xia1 天前
AXI4-Full突发传输掉数据——突发长度算错、WRAP边界、窄传输字节错位,调试一周才发现是协议理解错了
fpga开发
zlinear数据采集卡1 天前
硅片里的“自动纠错“:硬核拆解LHAMP188自动归零技术原理与三种封装的PCB布局实战
arm开发·单片机·嵌入式硬件·fpga开发·开源