- 博客(508)
- 资源 (5)
- 收藏
- 关注
原创 ZYNQ处理器系统外部接口
Zynq PS实现了众多接口,既有PS和PL之间的,也有PS和外部部件之间的。PS和外部接口之间的通信主要是通过复用的输入/输出(Multiplexed Input/Output,MIO)实现的,它提供了可以做灵活配置的54个引脚,这表明外部设备和引脚之间的映射是可以按需定义的。这样的连续也可以通过扩展MIO(Extended MIO,EMIO)来实现,EMIO并不是PS和外部连接之间的直接通路,而是通过共用了PL的I/O资源来实现的。当需要扩展超过54个引脚的时候可以用EMIO,而当PL中实现了一个I
2022-05-31 15:18:26
69
转载 ZYNQ从放弃到入门(四)- 中断(二)
这篇博文重点介绍了使用共享外设中断 GPIO 中断。为了正确实现这个中断结构,我们需要编写两个函数:中断服务程序(ISR-Interrupt service routine)——定义了中断发生时发生的动作。中断设置——配置中断。该例程设置并启用 GPIO 中断。它对系统内的所有中断都是通用的,以帮助代码重用。虽然,中断很复杂,但是,值得庆幸的是,独立板支持包 (BSP) 包含许多功能,可以大大简化这项任务。将在以下头文件中找到这些函数:Xparameters.h – 定义处理器设备 ID
2022-05-31 10:56:00
138
转载 ZYNQ从放弃到入门(三)- 中断(一)
在检查PS端IO口状态时,常用的就是轮询,但是实际工程中很少用这种方式,主要是运行复杂逻辑时,轮询方式效率太低,CPU需要等待IO口状态变化,这种肯定不符合大多数应用,所以多数情况下都是使用中断方式进行驱动的。在许多具有许多输入的系统中,键盘、鼠标、按钮、传感器等。来自这些设备的输入通常与当前执行的进程或任务异步,并且轮询 I/O 方法对于具有许多输入的系统通常效率太低。因为无法始终预测事件何时发生,因此必须经常使用轮询 I/O 方法检查 I/O 状态。轮询例程通常会获得空结果,这是低效的。使用中断可以
2022-05-31 10:51:05
78
转载 ZYNQ从放弃到入门(二)-PS端 GPIO
本博客着眼于驱动 GPIO 连接的 LED(PS 端)。虽然使 LED 闪烁是一项非常简单的任务,但通过驱动使 LED 闪烁所需的步骤,我们可以进一步探索 Zynq SoC 的其他方面,例如其定时器和中断。我将在以后的博客中讨论这些主题。Zynq SoC 具有多个通用 I/O 引脚,它们组合起来创建一个 10 位宽的通用 I/O 端口,如下所示。此 GPIO 组以混合电压分布在两个 MIO 组中。在本例中,我们的 LED 将连接到 MIO 47。Xilinx 提供了许多驱动程序来简化 Zynq So
2022-05-31 10:32:10
153
转载 ZYNQ从放弃到入门(一)MIO
系列文章开篇~ 卷起来这篇博文特别关注 Zynq SoC 的多用途 IO (MIO, Multipurpose IO) 模块。正是这个接口块为 Zynq SoC 的双核 ARM Cortex-A9 MPCore 处理器提供了许多标准接口。MIO 还包含确定 Zynq SoC 如何启动的配置设置。MIO 连接到 Zynq SoC 的 PS(处理器系统)端。它连接到 Zynq 设备上的 54 个引脚(注意 CLG225 封装中的 Zynq-7010 SoC 有 32 个 MIO 引脚),用于以下用途:
2022-05-31 10:13:26
185
转载 Vivado log文件包含什么信息(1)
无论是综合(Synthesis)还是实现(Implementation),Vivado在运行过程中都会生成日志文件。文件名为runme.log。这个文件位于相应的Design Runs目录下。例如,综合的Design Runs名为synth_1,那么runme.log就在这个目录下。该文件记录了Vivado在运行过程中的一些基本信息,对于设计分析很有帮助,却往往被很多工程师所忽略。这里我们就来看看runme.log里都有哪些信息。以综合阶段的runme.log为例。打开之后文件开头部分信息如下图所示
2022-05-30 14:02:43
681
1
转载 Xilinx AXI Central Direct Memory Access (CDMA)笔记
CDMA:Central Direct Memory Access,IP核内部框架如下:从框架图可以看出:S_AXI-Lite接口用来配置CDMA内部的寄存器,M_AXI接口用来搬运数据,M_AXI_SG接口一般与Bram连接,用来存储描述符。cdma_introut表示中断输出,一般用于DMA传输完成标志。s_axi_lite_aclk时钟应该小于等于m_axi_aclk。s_axi_lite_aresetn低电平复位,复位应该至少保持16个时钟周期内核才会对复位生效,且必须与s_axi_lite
2022-05-27 10:25:13
360
转载 PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换
PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功能的IP核都会有一页设置为PCIe:BARs,设置IP核的Base address register 的相关参数,如图1所示:图1 PCIe:BARs 配置图一般来说在FPGA中使用PCIe核都是Endpoint mode,我们的PC主机端是Rootpoint mode,一般会有一个Root .
2022-05-24 10:50:19
578
转载 xapp1171学习笔记
学习环境win10 64bitvivado 2017.4modelsim 10.6dKC705开发板学习目的1)理解 AXI Memory Mapped to PCI Express IP 用法2)理解 AXI Central Direct Memory Access (CDMA) 用法3)理解 AXI4 Interconnect 用法工程恢复1.修改tcl脚本从官方下载的xapp1171压缩包,解压后只有tcl脚本文件,需要用tcl脚本文件来生成工程文件。解压出来的tc
2022-05-20 14:53:08
406
转载 AXI memory mapped to PCI Express 理解及仿真
验证环境win10 64bitmodelsim 10.6d 64bitvivado 2017.4KC705开发板AXI memory mapped to PCI Express系统框图功能分析此ip可以分为两部分, AXI MM/S bridge + AXI-S Enhanced pcie.AXI MM/S bridge用户侧逻辑接口为标准AXI4总线,通过 AXI MM/S bridge 模块,转换成 AXI-stream 数据流AXI-S Enhanced pc.
2022-05-20 09:44:58
442
转载 如何写好状态机?
状态机是逻辑设计的重要内容,状态机的设计水平直接反应工程师的逻辑功底,所以很多公司在硬件工程师及逻辑工程师面试中,状态机设计几乎是必选题目。本篇在引入状态机设计思想的基础上,重点讨论如何写好状态机。由于篇幅比较长,如何写好状态机分成三篇呈现。话不多说,上货。主要内容预览: 状态机的基本概念; 如何写好状态机; 使用 Synplify Pro 分析 FSM。 状态机的基本概念; 如何写好状态机; 使用 Synplify Pro 分析 FSM。
2022-05-13 14:07:22
372
转载 管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?
在FPGA开发中,我们经常遇到因为管脚忘记约束,导致最后生成bit的时候报错1.管脚电平未约束image-20211018181223102image-20211018181242070 像上面这个图中,由于在约束中忘记指定mdc和mdio的电平,再经过了长时间的综合和实现后,最后的Generate Bitstream报错了。 这种情况下,如何才能不重新Implementation的情况下生成bit呢?打开实现后的routed.dcp文件:open_checkpoi
2022-05-13 11:22:25
81
转载 Vivado IP中的Shared Logic到底是干嘛的?
在很多Vivado的高速接口的IP中,比如Ethernet、PCIe、SRIO的设置中,都会有个Shared Logic的页面:image-20210903124458804可能很多同学并没有很关注这个页面,直接默认设置就完事了。 但其实这个页面的内容也是非常有用的,我们可以看到页面中有两个选择: Include Shared Logic in core Include Shared logic in example design 首先,什么是Shared Logic?
2022-05-12 17:49:16
227
原创 FPGA输入输出接口时序约束
对于输入管脚,需要约束时钟和数据之间的关系,使用set_input_delay来约束,即输入信号在时钟沿到来后多长时间到达模块的port上;对于输出管脚,需要将其固定,使用set _property IOB TRUE [get_ports {O_txd_ch1[0] }]...
2022-05-11 22:33:26
241
转载 GTX/GTH/GTY/GTP/GTZ/GTM有什么区别?
首先需要明确的一点是,他们都是高速收发器,只是传输速率同,速率大小为:GTP<GPX<GTH<GTZ<GTY<GTM 不同芯片上使用的高速收发器也不同,而且同样是GTX,不同系列芯片上的速率也可能不同。 比如7系列的FPGA,GTP最高可以达到6.6Gb/s,GTX最高12.5Gb/s,GTH最高13.1Gb/s,GTZ最高28.05Gb/s下面几个表展示了7系列FPGA中高速收发器的使用情况:在A7上面使用的高速收发器是GTP:...
2022-04-14 16:23:15
800
转载 vivado如何快速找到schematic中的object
在Vivado中,可能由于某些逻辑输入悬空而导致Implementation的opt_design时会错,比如:image-20220213154930313报的错误是dac_spi_i0/bit_cnt[4]_i_4的这个LUT有个输入悬空了,这个工程的逻辑比较简单,例化的嵌套也比较少,因此在schematic一层层找也很容易可以找到,但如果工程比较复杂,在很内部的一个LUT的输入悬空了,找起来就很费劲了。 笔者碰到的问题是在vivado的axi-interconnect ip中报了这
2022-04-14 16:19:45
177
转载 FPGA中的BEL Site Tile FSR SLR分别指什么?
在Xilinx FPGA中,从底层到整个设备可以划分为6个层次:BELSiteTileFSRSLRDevice下面我们从下到上依次来看一下各个定义。BEL(Basic Element of Logic) BEL是最底层的基本元素,也可以叫atomic unit(原子单位),BEL是FPGA中最小、不可分割的组件。BEL有两种:Logic BEL和Routing BEL。像我们常说的LUT、FF、CARRY都属于Logic BEL,Routing BEL我们平
2022-04-14 16:03:26
162
转载 一个板卡上所能运行的最大时钟频率?
请问如何知道一个板子上所能运行的最大时钟频率?如果查手册应该是芯片手册还是板子手册呢?对应手册的关键字应该是什么呢?比如我的芯片是KCU115,但是搜索出来的没有这个芯片的资料,我应该怎么获取它的手册呢?A:可以查看Kintex UltraScale FPGA Data Sheet: DC and AC Switching Characteristics (DS892)手册中关于BUFG的部分。另外,还应结合设计的时序情况:DS892:https://china.xilinx
2022-04-06 10:54:39
135
转载 FIR数字滤波器设计(下)
天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第三篇,FIR数字滤波器设计,包括窗函数法设计FIR滤波器、频率采样法设计FIR滤波器以及基于firls函数和remez函数的最优化方法设计FIR滤波器。话不多说,上货。这里也超链接了上、中两篇,方便参考学习。FIR数字滤波器设计(上)FIR数字滤波器设计(中)数字滤波器的输入输出均为数字信号,信号通过数字滤波器后,可以改变频率成分的相对比例或滤除某些频率成分。数字滤波器可以分为IIR数字滤波器和FIR数字滤波器。
2022-04-06 10:51:36
827
转载 FIR数字滤波器设计(中)
天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第二篇,FIR数字滤波器设计基础,包括FIR数字滤波器的特点、线性相位条件以及基本结构。话不多说,上货。数字滤波器的输入输出均为数字信号,信号通过数字滤波器后,可以改变频率成分的相对比例或滤除某些频率成分。数字滤波器可以分为IIR数字滤波器和FIR数字滤波器。本篇只介绍FIR数字滤波器的设计,可以根据所给定的频率特性直接设计FIR数字滤波器。FIR数字滤波器在保证幅度特性满足要求的同时,能够做到严格的线性特性。本篇采用了窗函
2022-04-06 10:49:34
986
转载 FIR数字滤波器设计(上)
今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第一篇,数字滤波器介绍,包括数字滤波器概述、分类以及设计指标。话不多说,上货。数字滤波器的输入输出均为数字信号,信号通过数字滤波器后,可以改变频率成分的相对比例或滤除某些频率成分。数字滤波器可以分为IIR数字滤波器和FIR数字滤波器。本篇只介绍FIR数字滤波器的设计,可以根据所给定的频率特性直接设计FIR数字滤波器。FIR数字滤波器在保证幅度特性满足要求的同时,能够做到严格的线性特性。本篇采用了窗函数法、频率采样法以及基于firl
2022-04-06 10:47:08
805
转载 set_input_delay/set_output_delay
input delay和output delay是在SDC中经常会遇到的问题,看似简单其实还有很多模棱两可的问题的。特别是为什要设置input delay和output delay?常用的30%和70%的原因以及input delay和output delay有些情况下回设置负值。针对这些问题,我通过研究,把自己的一些总结进行记录,如有问题欢迎留言交流。目录为什么需要设置input delay和output delay如何设置设置input delay和output delay命令介绍
2022-04-02 11:26:25
213
原创 不包含block desgin的纯FPGA代码固化
对于zynq开发板而言,flash是通过PS来控制的,固化代码必须通过PS,也就是说代码框架中必须包含block design。
2022-02-16 16:12:35
149
转载 UART串口协议
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种异步收发传输器。将数据由串行通信与并行通信间做传输转换,作为并行输入称为串行输出的芯片。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。1、UART通信协议 UART作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符一位一位地传输。其中每一位(bit)的意义如下: 起始位:先发出一个逻辑“0”的...
2022-01-09 21:50:02
907
转载 FPGA基础知识极简教程(6)UART通信与移位寄存器的应用
博文目录 写在前面正文关于UART的介绍UART通信过程UART、RS232以及TTL之间的关系UART的使用场合有关UART的总结调试UART的技巧UART的Verilog实现波特率问题发送模块接收模块 UART和移位寄存器之间的关系? 参考资料交个朋友...
2022-01-09 21:44:20
395
原创 硬件设计过程FPGA时钟引脚注意事项
在设计原理图的时候,对于接收时钟,应该尽量分配到FPGA的时钟引脚,且为P端。通常FPGA的时钟引脚为:后缀为SRCC或MRCC的IO,如下图所示。
2022-01-08 13:51:34
1425
转载 Xilinx RapidIO核例子工程源码分析
目录一、软件平台与硬件平台二、打开例子工程三、例子工程详解3.1 工程概述3.2 工程结构3.3 工程分析四、工程源码分析3.1 顶层模块srio_example_top.v源码分析3.2 模块srio_request_gen.v源码分析3.3 RAMB36SDP原语分析3.4 模块srio_response_gen.v源码分析3.5 模块srio_quick_start.v源码分析五、仿真六、总结七、附录八、参考资料一、软件平台与硬件平台
2021-12-15 15:04:47
343
1
转载 RAMB36SDP原语分析
// RAMB36SDP : In order to incorporate this function into the design,// Verilog : the forllowing ins
2021-12-10 15:42:24
520
特权FPGA VIP视频图像开发套件例程详解2——DDR2控制器读写测试.pdf
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人