judy的博客

Zedboard学习(六):XADC读取数据

zynq 的内嵌了 XADC,可以用来采集电压;

Temp:芯片温度
VCCINT: 内部PL核心电压
VCCAUX: 辅助PL电压
VCCBram: PL BRAM电压
VCCPInt: PS内部核心电压
VCCPAux: PS辅助电压
VCCDDR: DDR RAM的工作电压
VREFP: XADC正参考电压
VREFN: XADC负参考电压

1、新建工程,添加block design。添加zynq7 processor和xadc模块。

2、Run Block Automation后会自动配置zynq7处理器;Run Connection Automation 会自动将模块进行连接,将xadc模块挂载在axi总线下,这样xadc的相关寄存器会映射到处理器的内存(DDR)上。自动添加的两个模块,一个用于管理全局复位,一个用于同步axi总线。

ZYNQ ZCU102视频编码开发

ZCU102实时YUV码流输出方案:将摄像头采集的数据,输出YUV的码流数据!功能:将实时YUV码流在ZCU102BSP上编码H265,通过RTP传输协议将H265视频数据打包发送到客服端,客服端上设置H265相关参数(IP、端口号、时钟频率等)在sdp文件中,使用VLC播放实时的H265码流

Xilinx的Overlay选择指南

FPGA(现场可编程门阵列)是半导体器件,通过设计实现具有可编程互连的逻辑块阵列。与“硬化”设备(即CPU / GPU)不同,FPGA可以编程为实现用户所需的特定硬件设计。在设计硬件系统之后,必须使用二进制文件对FPGA进行编程。此过程通常称为配置。此外,在具有固定功能和动态功能的用例中,可以部分地重新配置FPGA

ZYNQ+Vivado2015.2系列(十五)AXI Timer 用户定时器中断控制LED

前面的中断学习中我们学了按键,GPIO,Timer,是时候把它们整合到一起了。今天我们混合使用PS/PL部分的资源,建立一个比较大的系统

Zedboard学习(五):MIO与EMIO操作

Zynq7000 系列芯片有 54 个 MIO(multiuse I/O), 它们分配在 GPIO 的 Bank0 和Bank1 隶属于 PS 部分, 这些 IO 与 PS 直接相连。 不需要添加引脚约束, MIO 信号对 PL部分是透明的。 所以对 MIO 的操作可以看作是纯PS 的操作

System Generator从入门到放弃(六)——利用Vivado HLS block实现Vivado HLS调用C/C++代码

 ug948中提供的官方例程为图像的中值滤波,该设计将一副256*256大小的RGB图像,添加噪声后提取出其中的Y通道,使用C++语言完成中值滤波。该设计将在Simulink环境下进行仿真。本次设计的流程是利用Vivado HLS建立C/C++代码,Export RTL–>System Generator–>Vivado

Zedboard学习(四):PS+PL搭建SoC最小系统

Zynq最核心的设计理念就是软件加硬件,即PS+PL。通过软硬件协同设计,结合了FPGA与双arm9内核,对于嵌入式拥有极大的优势。整个片上系统主要使用资源:ZYNQ系列FPGA XC7Z020、2片DDR、串口芯片(USB转UART)。Zedboard板子自带了这些资源,不需要另外添加模块。

System Generator从入门到放弃(五)——Black Box调用HDL代码

System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用。或者直接生成比特流下载文件。能够加快DSP系统的开发进度。

一、Black Box调用HDL代码

1、简介
  System Generator提供了一个特性:可以通过black box这个block将其它HDL文件以黑盒的形式封装到System Generator设计中,在仿真时使用Simulink+Vivado Simulator(或ModelSim)协同仿真的方法,在Simulink环境中完成设计的仿真测试。

  具体介绍大家可以查阅相关资料。

2、本部分设计使用到的block

Xilinx block

  • Black Box(->Basic Elements):调用HDL文件
  • 其它block

    定制PYNQ的overlay

    一、用HLS生成一个定制IP(加速器)

    (1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。

    (2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。

    选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。

    ZYNQ+Vivado2015.2系列(十四)按键中断控制LED亮灭

    前面我们介绍了按键中断,其实我们稍作修改就可以用按键控制LED了。做个小实验,两个按键分别控制两个led亮灭。

    板子:zc702。

    硬件部分

    添加zynq核:

    勾选串口用于打印信息,勾选EMIO,我们控制两个led,所以需要2bit

    PL 到PS的中断勾选上:

    PL时钟什么的都用不到,我们用的按键不需要时钟,EMIO属于PS。

    再添加一个concat IP用于合并两路按键信号: