跳转到主要内容

博客

FPGA的RTL级几种状态控制的分析总结

外部触发信号到来后,执行若干步骤,步骤由计数器控制。(这里的计数器可计数为0-127)。故触发信号高电平使能计数器使能信号(用组合逻辑实现)。仅计数器记到127后,或者复位信号到来,计数器使能归0.使能一旦归零,计数器恢复0。

FPGA串口实战篇

在业界,串口又称为通用异步收发器(Universal Asynchronous Receiver/Transmitter,简称UART),它的通信方式遵循一套串口协议:UART通信首先将接收到的并行数据换成串行数据来传输。数据帧从起始位开始,后面是7个或8个数据位,一个可用的奇偶校验位和一个或几个高位停止位

zcu102(7)AXI_LITE实验

从本文档开始将介绍PS和PL之间通过AXI总线互联。三种AXI总线协议为① AXI_LITE:性能较低的地址映射传输,一次只能传输4字节;② AXI_STREAM:高速流数据传输,无地址映射,不能直接与PS连接;③ AXI(又称AXI_FULL):性能较高的地址映射传输。

zcu102(6)AXI_TIMER精确计时

axi_timer模块即为PS可以访问的PL计数器,通过计数值以及接入axi_timer的计数时钟周期,可以在PS内取得比较精确的计时。axi_timer有2种使用方式,一种是作为计数器使用,另一种是作为定时器使用。

学会Zynq(23)XADC报警功能与中断使用示例

上篇中我们简单了解了XADC和其基本使用方法,本文我们将学习XADC的报警功能和中断的使用方法。程序中我们设置温度和VCCPAUX的上、下报警阈值。当超出这个范围时,便进入中断进行报警提示。

学会Zynq(22)XADC测量片内温度与电源电压

本文将介绍如何在PS中调用Zynq内部的XADC模块进行片内温度和电源电压测量。先了解XADC的相关知识,再通过实例体会XADC的用法,学习XADC API函数的使用。

ZCU102(6)——AXI_TIMER精确计时

axi_timer模块即为PS可以访问的PL计数器,通过计数值以及接入axi_timer的计数时钟周期,可以在PS内取得比较精确的计时。axi_timer有2种使用方式,一种是作为计数器使用,另一种是作为定时器使用

重温FPGA设计流程四:(有限状态机)

软件:Vivado2017.4 板卡:Ego1 型号:xc7a35tcsg324-1

学会Zynq(21)TCP轮询机制(polling)示例

前面我们已经学习了TCP的所有发送、接收和各种回调函数。本文将介绍最后一部分,TCP的轮询机制。在前面TCP发送Hello World的实例中,我们是在main函数的while循环中每隔1s调用一次数据发送函数。本文的实例将利用轮询机制完成同样的功能。

重温FPGA设计流程三:(基于Verilog来设计流水灯)

软件:Vivado2017.4 板卡:Ego1 型号:xc7a35tcsg324-1。打开Vivado,创建一个名为design_test的空白工程。点击Add source或者Sources中的+号来添加或者创建一个设计源文件,点击Next。

重温FPGA设计流程一:(IP封装)

一、IP封装:1、打开Vivado,点击Create Project。2、点击Next,在Project name中输入我们的项目名称:74LS00。3、点击Next,默认勾选Do not specify…4、点击Next,核对信息,然后点击Finish。5、在空白工程中,左侧Flow Navigator中,选择PROJECT MANAGER下的Add Source。

重温FPGA设计流程二:(IP核应用-全加器)

软件:Vivado2017.4 板卡:Ego1 型号:xc7a35tcsg324-1

ZCU102(5)——AXI_BRAM实现PL与PS数据互联

PS模块通过axi_bram模块,可以使用AXI接口读写PL内的Block RAM,实现PS与PL之间的数据互联。axi_bram需要与Block Memory Generator模块共同使用,axi_bram将PS的AXI操作转化为bram的控制接口时序。建立Vivado工程,并且添加Zynq模块,AXI BRAM Controller模块,Block Memory Generator模块,Utility Vector Logic模块和ILA模块。

学会Zynq(20)TCP echo服务器(接收回调)

前两篇我们学习了TCP的发送,本文学习如何处理接收数据。本文使用TCP设计一个echo服务器,开发板将来自所有IP地址和端口的数据原路发送回去,功能和本系列第15篇的UDP echo服务器相同。本文实例与SDK提供的“lwip echo server”例程相比要简化许多,没有使用DHCP协议。本文主要是学习TCP的接收回调,DHCP的内容会在后面专门讲述。

ZCU102(4)——AXI_GPIO实现按钮控制LED及PS响应PL中断

AXI GPIO模块将PL端连接的GPIO信号通过AXI接口与PS模块连接,PS通过AXI接口的地址映射对PL端的GPIO信号进行读写等控制。与EMIO可以实现相同的功能,区别主要在于EMIO对于少数GPIO接口进行单独的控制,而AXI GPIO可以对多个GPIO接口合并成的总线进行整体读写控制。

学会Zynq(19)TCP发送Hello World(server模式)

上文介绍了用TCP发送“Hello World”的实例,工作在client模式下。本文实现同样的功能,但让TCP工作在server模式下。把开发板当作服务器,远程主机为客服端访问服务器,实现被动连接。TCP client和TCP server在lwIP中的连接流程和区别可参考本系列前面与lwIP相关的文章

ZYNQ--从入门到起飞--AXI总线接口分析(LITE)

在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为

Petalinux制作linux系统

这里引用的u-boot,kernel,busybox版本分别是:
u-boot : U-Boot 2017.01
kernel : 4.9.0-xilinx-v2017.4
busybox : BusyBox v1.24.1

ZCU102(3)——EMIO实现按钮控制LED

根据Zynq MPSOC的设计,EMIO占用GPIO BANK3至5的全部32位,对应GPIO的序号78至174,共96个EMIO但是在PS模块中引出的PL中断会默认占用高序号值的EMIO,如本实验中PS模块的pl_resetn0复位信号占用了序号174的EMIO

学会Zynq(18)TCP发送Hello World(client模式)

TCP的工作机制比UDP要复杂的多。本文介绍用TCP发送“Hello World”的实例,讨论程序设计中几个关键的问题。本文撰写思路假设您已经阅读了本系列前几篇与lwIP、UDP相关的文章,重复性语言不过多描述。本文TCP工作在client模式。TCP内容较多,后面的文章会逐步深入介绍