- 博客(264)
- 资源 (55)
- 论坛 (5)
- 收藏
- 关注
原创 一份很用心的H桥驱动扫盲教程
什么是H桥?H桥是一个比较简单的电路,通常它会包含四个独立控制的开关元器件(例如MOS-FET),它们通常用于驱动电流较大的负载,比如电机,至于为什么要叫H桥(H-Bridge),因为长得比较像字母H,具体如下图所示;这里有四个开关元器件Q1,Q2,Q3,Q4,另外还有一个直流电机M,D1,D2,D3,D4是MOS-FET的续流二极管;开关状态下面以控制一个直流电机为例,对H桥的几种开关状态进行简单的介绍,其中正转和反转是人为规定的方向,实际工程中按照实际情况进行划分即可;正转通常H桥用来驱动
2021-01-19 23:02:52
26
原创 【Vivado那些事】Xilinx FPGA普通IO能不能直接接入PLL作为时钟输入
[结论]普通IO不能直接作PLL的时钟输入,专用时钟管脚可以;普通IO可以通过BUFG再连到PLL的时钟输入上,但要修改PLL的设置 input clk的选项中要选择"No Buffer";具体内部布局分配可以通过 Xilinx的FPGA Editor来查看,ZYNQ的时钟管理也和之前的片子略有不同,之后在另一篇介绍,相关文档 <ug472_7Series_Clocking.pdf>[Demo1]1 // demo1 two bufg connect 2 3 module io
2021-01-19 22:44:13
22
原创 7系列FPGA的时钟资源——UG472
时钟架构总览7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求。Clock Management Tiles(CMT)提供了时钟合成(Clock frequency synthesis),倾斜矫正(deskew),过滤抖动(jitter filtering)功能。非时钟资源,例如本地布线,不建议使用在时钟设计中。全局时钟树(Global clock tree)可以驱动device中的所有同步原件(synchronous elements)
2020-12-12 00:30:42
168
转载 verilog 里面,always,assign和always@(*)区别
1.always@后面内容是敏感变量,always@(*)里面的敏感变量为*,意思是说敏感变量由综合器根据always里面的输入变量自动添加,也就是所有变量都是敏感列表,不用自己考虑。 2.如果没有@,那就是不会满足特定条件才执行,而是执行完一次后立马执行下一次,一直重复执行,比如testbench里面产生50Mhz的时钟就(假设时间尺度是1ns)可以写成 always #25 CLK_50Mhz = ~CLK_50Mhz;一般always@(*)是指里面的语句是组合逻辑的。*代替了敏感变量。而一般时序
2020-12-10 22:17:12
418
转载 谈谈FPGA设计的实现过程-基于Quartus II
相信不少同学,在刚接触FPGA的时候,就听说过所谓FPGA的实现过程。然而,编译、映射、布局、布线等等词语,听起来让人摸不着头脑。可能看了不少资料,依然感觉比较困惑,今天我们来谈谈这个问题。00其实概括来说,FPGA的实现过程分为2步:分析综合与布局布线。这一点,在Quartus II软件中体现的尤为明显。这是Quartus II软件在编译时的任务栏。红框中的两步,正是分析综合与布局布线。而在Altera中,将编译与映射合称为综合。因此这样看来,整个实现过程,其实包含编译、映射、布局、布线这4个步骤
2020-12-09 22:42:01
1549
转载 【EDA】EDAgit: Ubuntu下编译EpicSim(iVerilog国产升级版)
关于EpicSimhttps://www.edagit.com/article-read.html#1910官网http://www.edagit.com/下载源EDAgit开源的EDA软件源码EpicSim1.2下载地址:https://www.edagit.com/forum.php?mod=viewthread&tid=88编译方法参看目录下的编译说明文件:INSTALL_INSTRUCTIONS.txt我的编译经历1.0 Building/Installing EpicSi
2020-12-06 23:48:54
92
转载 RTL中的惯性延迟和传输延迟
1 基本概念在数字实现过程中,延迟一般有以下几种:分布式延迟(Distributed Delays)一般用来指定模块内部信号通过逻辑单元或者线网耗费的时间。模块路径延迟(Module Path Delays)模块路径一般指从源(输入端口或者输入输出端口)到目的(输出端口或者输入输出端口)的路径,模块路径延迟是信号从源传输到目的地所耗费的时间,即模块内部延迟。下图为模块路径延迟为10的示意图:注意:模块路径延迟一般在“specify-endspecify”中指定。互联线延迟(Interconn
2020-12-05 17:16:14
154
原创 【Vivado那些事】Vivado下怎么查看各子模块的资源占用?
图形界面操作完成Implementation后,在Vivado IDE左侧的Flow Navigator点击Open Implemented Design,然后点击report_utilization。新建一个名字和选择是否导出到文件,点击OK。在生成的结果中选中某一类资源,会看到按模块排列的资源占用情况。当然,点击图示箭头位置可以按照%显示资源。TCL操作report_utilization -hierarchical图示箭头窗口下面的命令行位置输入上述命令,回车即可。
2020-12-02 23:01:27
707
转载 FPGA上电后IO的默认状态
概述在进行FPGA硬件设计时,引脚分配是非常重要的一个环节,特别是在硬件电路上需要与其他芯片通行的引脚。Xilinx FPGA从上电之后到正常工作整个过程中各个阶段引脚的状态,会对硬件设计、引脚分配产生非常重要的影响。这篇专题就针对FPGA从上电开始 ,配置程序,到正常工作整个过程中所有IO的状态进行分析。从时间阶段可以分为两部分,第一阶段是从FPGA上电开始直到配置(Configuration)完成之前。第二个阶段是配置完成之后,FPGA开始正常工作开始。从引脚类型上分,可以分为三大类:第一类是普通
2020-11-29 00:33:31
228
2
原创 AXI总线详解完结篇
经过几个月的整理和发文,AXI总线详解系列正式迎来最终篇,内容基本涵盖了上一篇文章的全部内容。所有文章的链接如下:1、 AXI总线详解2、AXI总线详解-总线和接口以及协议3、AXI协议中的通道结构4、AXI总线详解-AXI4读写操作时序及AXI4猝发地址及选择5、AXI4交换机制6、ZYNQ中DMA与AXI4总线-DMA简介7、AXI总线详解-不同类型的DMA8、AXI总线详解-DMA内部寄存器的读写方式9、AXI总线详解-几种应用DMA的场合10、Altera Scatter-G.
2020-11-29 00:09:35
2154
原创 AXI DMA测试
AXI DMA测试增加一个AXIDMA章节,这部分内容是很多例程的基础,难度不大但是也不小,需要彻底理解整个运行机制。 图4‑61 测试框图 处理器通过M_AXI_GP0接口和AXI_DMA通信,以设置、启动和监控数据传输。数据传输通过S_AXI_HP0接口。整个过程如下:PS 端 ARM 将数据发送给 DDR。PS 控制 DMA,使 DMA 通过数据通道读取 DDR 中的数据; DMA 将读取到的数据传给 FIFO。FIFO 将数据传输给 DMA; PS 控.
2020-11-25 23:41:11
1512
原创 【Vivado那些事】如何查找官网例程及如何使用官网例程
有的时候需要查找一些官网的例程进行学习和参考,但是总感觉无从下手,今天就教大家怎么利用官网和Vivado的Documention进行相关的操作。不清楚使用哪些IP或者不清楚需要参考哪个文档首先点击Help–>Documention and Tutorials就可以打开XIlinx Documention浏览器了。打开后如下:主要分为:1、分类窗口;2、文件选择窗口;3、设置窗口;4、选择窗口;可以在3窗口进行搜索。假如现在我需要查找一下7系列FPGA中关于HLS的使用,那么我可以通过1
2020-11-21 22:35:57
3120
原创 AXI-Stream代码详解
**AXI-Stream代码详解** AXI4-Stream跟AXI4的区别在于AXI4-Stream没有ADDR接口,这样就不涉及读写数据的概念了,只有简单的发送与接收说法,减少了延时,允许无限制的数据突发传输规模。AXI4-Stream的核心思想在于流式处理数据。 图 4 58 AXI-Stream Interface全局信号ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变.
2020-11-02 19:54:07
186
原创 AXI_lite代码简解(四)-观察 AXI4-Lite 总线信号
观察 AXI4-Lite 总线信号 在《AXI-Lite 自定义IP》章节基础上,添加ila\vio等调试ip,完成后的BD如下图: 图4 53 添加测试信号 加载到SDK,并且在Vivado中连接到开发板。 Trigger Setup,点击“+”,选择 AXI_WVALID,双击添加。设置 Radix 为 B,触发条件 Value 为 1。 图4 54 添加信号设置触发位置为 512 .
2020-10-26 22:24:57
84
转载 【转载】让你的GitHub下载飞速提升到2M/s以上
2020年7月27日整理发布多种GitHub加速方式!转载自:https://code.pingbook.top/blog/2020/How-To-Speed-Github.htmlGitHub 镜像访问这里提供两个最常用的镜像地址:https://github.com.cnpmjs.orghttps://hub.fastgit.org也就是说上面的镜像就是一个克隆版的Github,你可以访问上面的镜像网站,网站的内容跟Github是完整同步的镜像,然后在这个网站里面进行下载克隆等操作。
2020-10-22 01:07:08
81
原创 AXI_lite代码简解(三)-AXI-LITE 自定义IP
AXI-LITE 自定义IP目的:通过嵌入式软核或者硬核通过AXI_Lite接口(Master)控制FPGA端引脚的GPIO。实现框图: 图4 50 自定义IP应用框图按照AXI互联机制我们知道,我们的自定义IP是通过AXI_Interconnect连接到Master端,整体的框图也比较简单,为了验证方便我们只按照红色线路径进行测试。自定义的IP也比较简单,是直接在上面两节的基础上修改几个参数即可。我们知道软核或者硬核通过接口向自定义IP写数据时,是通过sl
2020-10-18 16:40:45
145
转载 Quartus 各版本器件支持列表
参考:http://www.ithinktech.cn/index.php?c=content&a=show&id=786
2020-10-13 20:18:04
1029
原创 AXI_lite代码简解(二)-AXI-Lite 源码分析
AXI-Lite 源码分析 对于使用AXI总线,最开始肯定要了解顶层接口定义,这样才能针对顶层接口进行调用和例化,打开axi_lite_v1_0.v文件,第一段就是顶层的接口定义:代码4 1 axi_lite接口定义1. // Ports of Axi Slave Bus Interface S00_AXI 2. input wire s00_axi_aclk, 3. input wire s00_axi_aresetn, 4. input wire [C_S00_AXI_A
2020-10-10 22:11:20
410
原创 AXI_lite代码简解(一)-查看源码
查看源码1、要看到AXI-Lite的源码,我们先要自定义一个AXI-Lite的IP,新建工程之后,选择,菜单栏->Tools->Creat and Package IP: 图4‑43 Creat and Package IP2、选择NEXT 图4‑44 选择NEXT3、选择Create AXI4 Peripheral,然后Next: 图4‑45 选择Create AXI4 Peripheral,然后Next4.
2020-10-09 20:53:30
114
转载 Altera Scatter-Gather DMA (SG-DMA)的简单使用
文章来源:http://www.cnblogs.com/scnutiger/archive/2010/02/06/1664980.html在Quartus7.2之后的版本中,除了原有的基于avalon-mm总线的DMA之外,还增加了Scatter-Gather DMA这种基于avalon-ST流总线的DMA IP核,它更适合与大量数据流传输的场合,使用起来比较灵活,增加了与外设流器件配合的能力。由于网上关于SG-DMA介绍的资料比较少,因此这里简单介绍一下SG-DMA的使用,利用它可以搭配Altera的千
2020-09-28 20:45:17
141
原创 AXI总线详解-几种应用DMA的典型应用
几种应用DMA的典型应用 (1) AXI DMA 图4‑40 AXI DMA应用在系统中,AXI DMA与处理器等其他设备通过AXI Interconnect互联。系统处理器通过AXI4-lite接口访问DMA内部寄存器,向其写入配置信息,然后根据配置信息,高效的进行数据传输;DMA也可以启动S/G传输模式,通过独立的AXI S/G通道从DDR中获取描述符信息,然后协调以太网和DDR间的数据传输;独立的控制和状态流通道,提供相关的包信息;DMA的中断与系统中断控制器相连.
2020-09-28 20:33:04
2066
原创 AXI总线详解-DMA内部寄存器的读写方式
DMA内部寄存器的读写方式基于AXI的DMA对内部寄存器的读写有着相同的方式。在普通传输模式下,DMA内部的寄存器都是由处理器通过AXI-Lite总线进行读写的;但基于AXI总线的三种DMA,都增加了S/G传输模式,它卸载了处理器对寄存器的读写,通过独立的S/G读写通道对存储着命令描述符的内存进行访问读取、处理描述符,然后更新描述符写入内存。...
2020-09-28 20:26:11
236
原创 AXI总线详解-不同类型的DMA
不同类型的DMAGPIOPL general purpose AXIGP AXI utlilizing PS DMACHigh performance w/DMAACP w/DMA几种DMA的总结ZYNQ中不同应用类型的DMA 几个常用的 AXI 接口 IP 的功能(上面已经提到): AXI-DMA:实现从 PS 内存到 PL 高速传输高速通道 AXI-HP<---->AXI-Stream 的转换 AXI-FIFO-MM2S:实现从 PS 内存到.
2020-09-22 22:55:07
153
原创 ZYNQ中DMA与AXI4总线-DMA简介
ZYNQ中DMA与AXI4总线 为什么在ZYNQ中DMA和AXI联系这么密切?通过上面的介绍我们知道ZYNQ中基本是以AXI总线完成相关功能的: 图4‑34 连接 PS 和 PL 的 AXI 互联和接口的构架 在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-Stream只能在PL中实现,不能直接和PS相连,必须通过AXI-Lite或AXI4转接。PS与PL之间的物理接口有9个,包括4个AXI-
2020-09-19 23:33:26
178
原创 AXI4交换机制
AXI4交换机制接口与互联 一个典型的系统主要是由一个主设备和从设备连接组成的,它们通过某种形式的互连组合在一起,如图4‑21所示。 图4‑29 接口和互联 AXI协议提供了一个单独的接口定义来描述接口:主设备和互连之间从设备和互联之间主设备和从设备之间。 上述接口定义使各种不同的互连易于表达。设备之间的互联,与其他具有对称的主端口和从端口设备一样,可以连接真正的主设备和从设备。 大多数系统采用如下三种互连的方式之一:共享地址和数据总线共享地.
2020-09-14 20:05:29
307
原创 AXI总线详解-AXI4读写操作时序及AXI4猝发地址及选择
AXI4读操作 图 4‑15 读通道架构 如上图所示,主设备向从设备通过读地址通道指定读数据地址及控制信号,从设备通过读数据通道将指定地址上的数据传输给主设备。 图4‑16 Read Burst 流程1、当状态机的当前状态为WAIT_START时,master将ARVALID拉高。2、slave收到ARVALID信号后,将ARREADY拉高,持续到一次burst_len传完为止。master收到ARREADY拉高的信号后,将ARVALID拉低。3、AR.
2020-09-09 21:31:52
3808
1
原创 AXI协议中的通道结构
AXI4协议基于猝发式传输机制。在地址通道上,每个交易有地址和控制信息,这些信息描述了需要传输的数据性质。主从设备间的数据传输有两种情况,一种是主设备经过写通道向从设备写数据(简称写交易),另一种是主设备经过读通道从从设备那里读取数据(简称读交易)。在写交易过程中,AXI有一个额外的写响应通道,从设备通过该通道向主设备发出信号表示完成写交易。 AXI 协议可以实现:地址信息发出先于实际传输的数据支持多个未完成的交易支持乱序交易 图4‑13展示了使用读地址和读数据通道如何实现读交易。.
2020-09-08 21:08:14
1769
1
原创 AXI总线详解-总线和接口以及协议
总线、接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别。 总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又常常被称之为物理接口。 协议就是传输数据的规则。 我们通常说的PCIE,既可以是PCIE信号,也可以是PCIE接口、PCIE总线,还可以是PCIE协议。之所以这么复杂,主要原因就是每个人对概念认知的差异。再比如,只要百度一下串行和并行,就会出来很多类似“串行通信与并行通信”、“串行接口与并行接口”、“.
2020-08-30 04:06:22
659
原创 AXI总线详解
AXI的重要性AXI是ZYNQ系统中比较重要的一部分。· AMBA总线,熟悉ARM架构的朋友应该都大致了解, AMBA是ARM公司的注册商标。是一种用于片上系统(SoC)设计中功能块的连接和管理的开放标准片上互连规范。它促进了具有总线结构及多控制器或组件的多核处理器设计开发。自成立以来,AMBA已广为应用,远远超出了微控制器设备领域。如今,AMBA已广泛用于各种ASIC和SoC部件,包括在现代便携式移动设备中使用的应用处理器。· 高级可扩展接口AXI(Advance
2020-08-23 23:23:41
1642
原创 Vivado安装过程卡在Optimize Diskspace Usage’ stage不动的解决办法
Vivado在安装过程中,所有文件安装完毕后,会长时间卡在Final Processing界面,并且提示… Optimize Diskspace Usage’ stage。先说解决办法,就是在第一个安装界面,如下面界面:**选择–>Prefence**选择Disk Usage Settings之后取消选择图示选择框官方的解释如下:...
2020-03-29 20:29:23
4986
6
原创 Vitis尝鲜(二)
上一篇安装完相关程序后,这一篇就简单运行一个“Hello Vitis”的程序。 本例硬件平台为ZYNQ平台,具体芯片为XC7Z035。 ZYNQ 芯片分为 PL 和 PS, PS 端的 IO 分配相对是固定的,不能任意分配,而且不需要在 Vivado 软件里分配管脚,虽然本实验仅仅使用了 PS,但是还要建立一个 Vivado 工程,用来配置 PS 管脚。虽然 PS 端的 ARM 是硬核,但是...
2020-03-18 23:24:38
2931
原创 Vitis尝鲜(一)
vitis已经发布很长时间了,但是我就要尝鲜。。。 首先是安装,本教程分两个主要的平台(WIN10和Ubuntu)给出安装教程和源文件。Vitis在WINDOWS平台的安装 官方下载链接:https://china.xilinx.com/support/download.html 推荐下载这个程序,是win平台的下载器,个人自测峰值可以达到6~10M/s的下载速度,同样推荐下载...
2020-03-18 20:51:24
4654
1
原创 [Common 17-69] Command failed: This design contains one or more cells for which bitstream generation
Vivado 在编译的时候会报错,完整的错误信息如下:[Common 17-69] Command failed: This design contains one or more cells for which bitstream generation is not permitted:tri_mode_ethernet_mac_i/inst/tri_mode_ethernet_mac_0...
2019-12-22 20:54:49
3785
原创 基于FPGA的HDMI显示(二)
1.4 基于FPGA的720P HDMI显示1.4.1 HDMI 硬件电路分析 本次设计采用了 IO 模拟的方式实现 HDMI 的功能。与采用专用 HDMI 芯片相比,此方案具有成本更低、效果不输于采用专用芯片的效果、经过测试,兼容性方面也要比专用芯片要好、最大输出图像分辨率 1080P、图像传输稳定等显著的优势。 具体硬件电路上面已经提到过了,这里简单分析一下。 ...
2019-12-15 21:56:05
2277
5
原创 基于FPGA的HDMI显示(一)
1.1 HDMI简介简介略,网上很多,这里也不过多描述。1.2 基于FPGA的HDMI接口设计 HDMI输出接口在FPGA方面应用时,主要有两种方式:一种就是如图1 22所示的方式,采用Silion Image 公司的 SIL9134 HDMI( DVI)编码芯片,最高支持 1080P@60Hz 输出,支持 3D 输出。 另一种方式是HDMI 接口设计全由 IO 模拟方式实现,如图1 ...
2019-12-15 21:50:39
5392
转载 最新 Xilinx vivado IP许可申请
最新 Xilinx vivado IP许可申请xilinx的fpga使用vivado开发,zynq系列fpga的SOC开发成为主流,加快fpga开发,也进一步提高了fpga开发的灵活性。xilinx提供很多ip核供开发者直接使用,开发快捷方便,但很多需要购买许可,这很头疼。万事都不会做的很绝的,xilinx官网提供ip评估licence,算是试用。今天我就以 video on screen ...
2019-12-08 22:05:52
1719
原创 Xilinx ZYNQ开发板资料共享
ZYNQ 7010【ZYNQ】特权老师Xilinx ZYNQ资料【ZYNQ】黑金AX7010ZYNQ 7015【ZYNQ】黑金Xilinx ZYNQ资料(7015)ZYNQ 7020【ZYNQ】黑金AX7020【ZYNQ】米联Xilinx ZYNQ资料(7020)ZYNQ 7035【ZYNQ】米联客Xilinx ZYNQ资料(7035)全部是开发板满资料(有些不是最新的)。具...
2019-10-24 12:54:50
3089
4
原创 2.4 基于FPGA的UART协议实现(四)实用UART传输FPGA实现(二)
2.3.4.2 UART发送模块 发送模块的时序及相关介绍前面都已经写的很清楚了,就是将波特率模块分开,这样方便后期维护及修改,同时也为了下一节接收模块的设计做统一处理。 整个模块要实现的结构如下: 图2 47 发送模块(tx_module.v)整体结构图 首先,有一个顶层模块(tx_module.v),这个模块会包含(例化)成下面的两个子模块(bps_module....
2019-10-14 22:01:12
330
原创 2.4 基于FPGA的UART协议实现(四)实用UART传输FPGA实现(一)
上一节设计实现的UART只是简易的实现,没考虑诸如抖动(起始位抖动会导致数据位传输或接收错误)等问题,但是对于理解UART传输协议却很有帮助。在单片机中使用时一般串口都可以进行大量数据的传输,这得益于单片机在串口传输时会有“缓存”空间用于数据的存储,下面来看看单片机内部串口结构,如图2 43所示: 图2 43 80C51串口组成示意图 所以本节设计串口时会参考单片机内...
2019-10-14 21:42:16
408
基于FPGA的深度学习加速器设计与实现
2018-06-25
xapp623-FPGA电源设计应用指导
2018-07-18
FPGA知识图谱-PDF格式
2019-03-11
FPGA知识图谱-SVG格式
2019-03-11
System Generator实现CORDIC算法工程文件
2018-11-05
基于FPGA的CORDIC算法实现-Vivado Verilog
2018-11-01
基于VIP_Board Big的FPGA入门进阶及图像处理算法开发教程-V3.0
2018-10-18
LogicLock技术资料
2018-09-11
Tcl_Tk入门经典(第2版)
2018-09-05
如何看待硬件工程师这个职位?
发表于 2017-08-29 最后回复 2020-08-19
碎碎思的留言板
发表于 2020-01-02 最后回复 2020-05-19
博客粉丝咋变成0了
发表于 2019-06-17 最后回复 2019-08-06
修改以前的博客图片不显示
发表于 2018-12-20 最后回复 2019-05-09
博客编辑 图片显示的问题
发表于 2018-11-15 最后回复 2018-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝