FPGA
一个早起的程序员
主要从事FPGA、ZYNQ、CPU内核、MicroBlaze、STM32、QT、MFC、上位机相关开发,擅长高速接口、视频传输、视频采集,包括PCIe、USB3.0、光纤、SDI、VGA、DVI、HDMI等高速接口。大学期间在学校参加过全国电子设计大赛两届、全国物联网大赛、山东省电子设计大赛、全国信息杯等比赛,并获得全国奖和省级奖十余项。
展开
-
XAPP585框架详解-LVDS时钟恢复逻辑
bt_val 为 17h。先取出 bt_val 的中间值,即17h 的中间值是 0Bh。把差分时钟n 的延迟时间设定为0Bh,把差分时钟p的初始延迟设定为17h,然后保持差分时钟n 的延迟时间不变,每次调节1个Tap,用于差分时钟p和差分时钟n的反向 进行相位对比,直到二者相位差为零。原创 2022-09-20 10:18:06 · 3654 阅读 · 1 评论 -
PLLE2_ADV、MMCME2_ADV源语详解
上图红色部分为PLLE2_ADV源语功能,其余部件为人为添加的电路,包括输入缓冲、输出缓冲、反馈方式。原创 2022-09-20 08:48:41 · 3538 阅读 · 0 评论 -
LVDS接收在高温(≥100°C)不稳定的问题,分析及解决
这是一个真实的Case。系统描述:使用FPGA普通IO做LVDS接收,一共四路,每一路有4路数据和一路时钟,数据速率约为700Mbps。LVDS接收部分的设计采用Xilinx XAPP585参考设计的源代码,基本没有做改动。所用器件:Kintex7,-3速度等级,商业档现象描述:在做高温测试时,在芯片结温超过100°C之后(芯片结温可以用JTAG实时监测),四路LVDS之一接收到的数据开始出现明显的误码,此时其它几路还能正常工作。从Xilinx器件本身来说,商业档的芯片,手册标称的温度范围是转载 2022-09-20 08:30:33 · 2457 阅读 · 0 评论 -
ERROR: [Synth 8-439] module ‘xxx‘ not found not found 错误解决办法
问题原因:Vivado 2021.2中关于HLS的操作都不兼容2022年份这个系统时间。解决办法:将window的系统时间给成2021年之前,复位工程reset_pro,再次编译就好了。原创 2022-07-20 17:01:40 · 5325 阅读 · 3 评论 -
FPGA未使用IO大坑
当FPGA的IO未使用时,如果接了外部其他信号,信号可能被拉低,因为FPGA上电后未使用的IO可能被配置为下拉,导致外部信号源高电平信号被拉低,这个信号如果为1分2,则ARM检测的信号状态会是常低,显然是不正确的,这种状态下需要把FPGA未使用的IO设置为上拉。原创 2022-06-01 17:50:16 · 4310 阅读 · 3 评论 -
[Place 30-58] IO placement is infeasible. Number of unplaced terminals (1) is greate
Vivado 2019编译出现如下错误:解决方法:查找约束文件是否信号和顶层文件中的信号名字是否一致,或者其他约束文件错误,总之肯定是约束文件错误引起的。原创 2022-05-15 10:09:31 · 8107 阅读 · 1 评论 -
Vivado生成的.xsa文件过大问题
今天在生成.xsa文件的时候生成出来的文件大小上百兆,如下图:最后发现.xsa文件包含了sim.bin文件,但是搜索工程没有sim.bin文件,然后删除掉sim文件夹的文件后,发现.xsa文件变小。如下:...原创 2022-05-09 11:42:53 · 1610 阅读 · 0 评论 -
Vivado各个版本综合卡死、死机(PID Not Specified)解决方法
vivado在综合的时候出现卡死的现象,不管是关闭windows安全中心或者杀毒软件都不行,停止综合后会出现PID Not Specified,如下图所示:原因:在安装vivado的时侯,我们没有关闭杀毒软件导致vivado安装不完全,解决的方法是卸载掉vivado并且在杀毒软件关闭的前提下重新安装vivado软件即可。...原创 2022-05-08 23:52:39 · 6716 阅读 · 0 评论 -
Vitis 2021.1 和Vivado 2021.1 Zynq Flash固化Bug解决方法
原创 2022-05-08 12:05:27 · 1708 阅读 · 1 评论 -
Xilinx集中DMA的用法
AXI-DMA:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换AXI-FIFO-MM2S:实现从PS内存到PL通用传输通道AXI-HPM<----->AXI-Stream的转换AXI-Datamover:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换,只不过这次是完全由PL控制的,PS是完全被动的。AXI-VDMA:实现从PS内存到PL高速传输高速通道AXI-HP<----&原创 2022-04-29 23:17:03 · 1578 阅读 · 0 评论 -
Notepad++和Vivado中文乱码问题
我们在Vivado打开Notepad++编辑的Verilog代码往往会出现中文字符乱码的问题。我们在使用Notepad++编写Verilog代码的时候,只需要保证文件在ANSI编码下正常即可,后期用Vivado打开或者编辑文件编码都不会出错的,如下所示。1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除;2.未经原作者允许不得转载本文内容,否则将视为侵权;3.转载或者引用本文内容请注明来源及原作者;4.对于不遵守此声明或者其他违法使用本文内容者..原创 2022-03-24 14:54:48 · 1692 阅读 · 0 评论 -
Notepad++ Verilog智能提示
1.新建verilog.xml文件,把下面的代码拷贝进去保存。<?xml version="1.0" encoding="Windows-1252" ?><NotepadPlus> <AutoComplete> <KeyWord name="always" /> <KeyWord name="and" /> <KeyWord name="assign" /> <KeyWord name="automati原创 2022-03-24 14:47:17 · 2640 阅读 · 1 评论 -
Notepad++编译Verilog代码(精简)
目录1.添加Vivado xvlog.bat 环境变量2.安装NppExec3.添加编译Verilog脚本4.编译1.添加Vivado xvlog.bat 环境变量2.安装NppExec3.添加编译Verilog脚本按键盘F6可以进行添加cmd /k cd "$(CURRENT_DIRECTORY)" &xvlog.bat "$(FULL_CURRENT_PATH)" &ECHO. &EXIT4.编译我们可以按键盘原创 2022-03-24 14:41:04 · 4801 阅读 · 5 评论 -
异步FIFO进出规则
128入,32出,如下图.原创 2022-03-07 00:40:42 · 696 阅读 · 0 评论 -
Xilinx Clock Wizard注意事项
1个时钟,不能连接到2个Clock Wizard IP上,会报错,如下:54962 - Vivado Implementation - ERROR: [Place 30-120] Sub-optimal placement for a BUFG-BUFG cascade pair.原创 2022-03-03 14:50:34 · 1993 阅读 · 0 评论 -
Xilinx Clock使用出错
[DRC PDRC-43] PLL_adv_ClkFrequency_div_no_dclk: The computed value 798.214 MHz (CLKIN1_PERIOD, net clk_out2) for the VCO operating frequency of the PLLE2_ADV site PLLE2_ADV_X1Y5 (cell system_u0/mig_7series_0/u_design_pl_mig_7series_0_0_mig/u_ddr3_infrastru原创 2022-03-03 14:14:16 · 2817 阅读 · 2 评论 -
Xilinx FPGA全局时钟和局部时钟
目录1.时钟资源概述2.外部时钟输入3.全局时钟和局部时钟区别1.时钟资源概述“全局时钟和第二全局时钟资源”是FPGA同步设计的一个重要概念。合理利用该资源可以改善设计的综合和实现效果;如果使用不当,不但会影响设计的工作频率和稳定性等,甚至会导致设计的综合、实现过程出错。Xilinx FPGA7系列分为全局时钟(Global clock)和局部时钟(Regional clock)资源。目前,大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动原创 2022-01-02 20:13:24 · 8711 阅读 · 1 评论 -
PCIe应用实战
PCIe应用实战主要针对xilinx FPGA PCIe接口,由浅入深教会大家使用PCIe进行实际项目应用。课程包括对PCIe协议和各种概念的详细讲析,紧接着根据理解的协议和概念对PIO、XAPP1052、XDMA进行源码生成、分析、下载、调试,深入理解PCIe的工作原理,最后会用一个实战项目完成把FPGA采集的图像数据传输给windows或者linux上位机,并且会教大家封装PCIe DLL...原创 2020-02-16 18:01:08 · 1672 阅读 · 0 评论 -
FPGA浮点运算实战
在开发FPGA时,或多或少会碰到浮点数处理的问题,这里给使用Xilinx FPGA的人推荐一个浮点数运算IP,个人已经在项目里面应用,这个IP就是Floating-point,如下图所示。原创 2021-12-26 21:33:52 · 1608 阅读 · 0 评论 -
Vivado使用技巧:时序异常 Timing Exception
时序异常英文名为Timing Exception,可以认为是时序例外或时序异常,“例外”或“异常”是指这部分时序的分析与大多数常规时序分析不同;下表给出了Vivado支持的时序异常命令及功能:Vivado不支持即时分析有矛盾的时序异常,需要运行report_exceptions进行完整的分析,报告所有时序异常;伪路径 false path某些在拓扑结构上看存在于设计中的路径,但是没有工作或者不需要被计时,便被称作伪路径;伪路径在时序分析过程中应该被忽略 ;也就是说,伪路径并不是不存在,而是指..转载 2021-12-15 14:56:58 · 3173 阅读 · 0 评论 -
Xilinx AXI CAN
目录1.AXI CAN框图2.MicroBlaze扩展CAN接口3.IP获取方式1.AXI CAN框图2.MicroBlaze扩展CAN接口通过AXI接口,可以通过FPGA扩展出多个CAN节点,相当灵活。3.IP获取方式关注【一个早起的程序员】。...原创 2021-03-02 22:59:22 · 6871 阅读 · 1 评论 -
Sublime Text 3.0最强快捷键
目录1.实用2.选择类3.编辑类4.搜索类5.显示类6.通用(General)1.实用1.shift+ F9:添加一个文档头标注2.ctrl+shift+d:复制当前行到下一行3.ctrl+shift+k:删除当前行4.Ctrl + Shift +↑/↓---移动当前行5.Ctrl+L---快速选中整行,继续操作则继续选择下一行,效果和 Shift + ↓ 效果一样6.Ctrl+Shift+L---先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行原创 2021-03-02 22:44:45 · 481 阅读 · 0 评论 -
Vivado设置
1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除;2.未经原作者允许不得转载本文内容,否则将视为侵权;3.转载或者引用本文内容请注明来源及原作者;4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。...原创 2021-03-02 22:37:53 · 7154 阅读 · 1 评论 -
FPGA上电时序加载过程详解
目前,大多数FPGA芯片是基于 SRAM 的结构的, 而 SRAM 单元中的数据掉电就会丢失,因此系统上电后,必须要由配置电路将正确的配置数据加载到 SRAM 中,此后 FPGA 才能够正常的运行。常见的配置芯片有EPCS 芯片 (EPCS4、EPCS8、EPCS16、EPCS64、EPCS128),还有通用的串行 SPI FLASH 芯片如 M25P40、 M25P16、 W25Q16 等。配置(configuration)是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于SRAM工转载 2021-02-24 23:43:30 · 12018 阅读 · 0 评论 -
AXI Timer PWM输出
1.可以查看pg079-axi-timer Page20,如下2.在PWM模式下,通过以上的两个公式可以计算出TLR0、TLR1的值来确定PWM的周期和占空比周期 = (TLR0 + 2)* 时钟频率高电平时间 = (TLR1+ 2)* 时钟频率可以确定一下公式:TLR0 = (周期)/(时钟频率)- 2TLR1= (高电平时间)/(时钟频率)- 2假设我们时钟频率为100M(10ns),需要的PWM周期为10M(100ns),需要的PWM高电平时间为50ns,则计算如下..原创 2020-12-21 20:07:01 · 1103 阅读 · 0 评论 -
VIVADO Unconstrained Logical Port [DRC UCIO-1] 错误
一、Vivado生成比特流报错:[DRC UCIO-1] Unconstrained Logical Port:3 out of 139 logical ports have no user assigned specific location constraint (LOC).二、error信息报错信息如下:[DRC UCIO-1] Unconstrained Logical Port: 3 out of 139 logical ports have no user assigned spec原创 2020-12-16 23:19:22 · 5130 阅读 · 1 评论 -
ZYNQ PS及MicroBlaze访问FPGA端BRAM实战
一、背景Xilinx Zynq和带MicroBlaze的FPGA都存在处理器端和FPGA端的概念,如果处理器的C代码要和FPGA通讯,则有以下几种方式,我们今天来讲怎么让ZYNQ PS及MicroBlaze对FPGA端BRAM进行访问:(1)GPIO(2)AXI(3)DDR3(4)BRAM(5)等等...二、BRAM是什么?(1)Block RAM:Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 3..原创 2020-12-03 21:05:14 · 6341 阅读 · 2 评论 -
FPGA时序分析1-建立时间和保持时间详细解析
目录一、理想的建立时间最大值二、理想的保持时间最大值三、注意建立时间:时钟上升沿到数据起始时间,当建立时间为0时,也就是数据在时钟的上升沿刚好被建立,出现保持时间最大值,优化电路的话需要让数据提前建立,增加建立时间。保持时间:时钟上升沿到数据结束时间,当保持时间为0时,也就是数据在时钟的上升沿刚好被结束,出现建立时间最大值,优化电路的话需要让数据退后建立,减少建立时间。一、理想的建立时间最大值理想的建立时间最大值(目的寄存器时钟上升沿的时候,数据刚结束,被采集到了,也就是数据...原创 2020-12-02 14:47:14 · 2126 阅读 · 0 评论 -
Xilinx中DDS IP的讲解与使用
目录一、DDS概念二、IP的定制及讲解三、Testbench编写四、波形分析一、DDS概念DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器本文主要介绍如何调用Xilinx的DDS IP核生成某一频率的Sin和Cos信号。二、IP的定制及讲解1、我们选择波形与相位同时存在的情况。2、选择DDS IP输入的系统时钟频率,这里我们选择100MHz。3、DDS通道的数目,我们这里选择一个。4、整个IP配置的模式,我们这里选择标准模式即可。5、原创 2020-12-02 00:03:22 · 5552 阅读 · 3 评论 -
xilinx vivado 2019 cordic ip 计算sin cos
一、Cordic IP简介VIVADO中,cordic是一个实现通用坐标旋转计算的IP核,在进行数字信号处理时常常会用到,算法主要是通过迭代来解三角方程,不过这些原理的东西我们做FPGA实现的不需要掌握它的原理,重点是怎么用。cordic核主要功能包括:rotate 旋转 ——复数旋转 translate 变换 ——复数转极坐标 sin/cos arctan sinh/cosh arc tanh square root 平方根我这里介绍sin和cos,其他的学习方法都一样。二、原创 2020-12-01 18:33:29 · 10124 阅读 · 4 评论 -
vivado和sublime中文编码永远兼容的操作规范
目录一、新建一个.v文件,以下两种方法二、修改编码三、测试四、注意一、新建一个.v文件,以下两种方法(1)直接用windows创建(2)用sublime 按Ctrl+Alt+n创建(3)用sublime的常规方法创建二、修改编码按住Ctrl+Shift+P,输入utf回车,选择GB2312,回车。三、测试(1)输入些代码和汉字,保存,其他汉字和代码也行。如下:(2)把代码加入到vivado工程中,如下,可以看到编码完全正常:.原创 2020-12-01 15:07:47 · 2227 阅读 · 2 评论 -
Xilinx FPGA中的基础逻辑单元--CLB/Block Memory/DSP/Transceivers/IO
FPGA中的基础逻辑单元--XilinxXilinx FPGA的组成部分 Configurable Logic Block (CLB)可编程逻辑块 Look-Up Table (LUT)查找表 高速算术逻辑 分布式存储distributed memory或移位寄存器shift register logic (SRL) ability Block Memory存储器 DSP数字信号处理器 Transceivers收发器 I/O pins输入输出端口转载 2020-11-30 22:21:59 · 5841 阅读 · 1 评论 -
Sublime 3.0 Verilog代码块自动生成
目录一、效果二、修改位置三、修改方法四、使用方法一、效果二、修改位置sublime 3.0安装了Verilog Gadget插件之后就可以添加代码块了,代码块文件为snippet文件,在C:\Users\WKJ\AppData\Roaming\Sublime Text 3\Packages找到Sublime-Text-Snippets-for-Verilog-master文件夹即可添加。三、修改方法只需要修改下面三个地方,前三个管理tab用的,最后一个管理调用时用原创 2020-11-30 15:05:51 · 844 阅读 · 0 评论 -
Sublime 3.0 Verilog-Automatic-master 插件AddHeader自定义
Verilog-Automatic-master 插件安装完毕之后,按Shift+F9会添加一个文件信息给文件的头,如下,不管光标在什么位置。一、修改文件头信息可是这个文件信息需要怎么改呢?(1)进入下面目录:C:\Users\...\AppData\Roaming\Sublime Text 3\Packages\Verilog-Automatic-master;(2)打开Verilog Automatic.py文件;(3)找到AddHeaderCommand这个函数;如下:原创 2020-11-30 11:31:27 · 676 阅读 · 0 评论 -
Xilinx 7系列FPGA架构 SelectIO 常见电平标准和阻抗匹配(精华)
7系列FPGA支持非常宽的I/O电压标准,本文介绍以下典型的I/O电压标准及端接匹配电路:(1)LVTTL I/O标准(2)LVCMOS I/O标准(3)TMDS I/O标准(4)LVDS和LVDS_25 I/O标准1 .LVTTL(低压TTL)LVTTL支持的I/O bank类型如图1所示。图1、LVTTL可用的I/O bank类型LVTTL是一般用于3.3V外设接口中,它使用单端COMS输入缓冲器和推挽输出缓冲器。该标准要求3.3V输出源电压(Vcco),但是不要求参转载 2020-11-26 22:50:12 · 16206 阅读 · 1 评论 -
从xilinx FPGA内部学习SelectIO
(1)IO逻辑资源简介FPGA的BANK。在7系列的FPGA中,BANK分为HR(High-range)BANK和HP(High-performance) BANK。HP BANK只能支持小于等于1.8V电平标准的I/O信号,HR BANK则支持小于等于3.3V电平标准的I/O信号。HP BANK专为高速I/O信号设计,支持DCI(数控阻抗),而HR BANK则适合更大众化的所有I/O信号设计。无论是HR或者HP BNANK,每个BANK都包含50个I/O管脚,每个I/O管脚都可配置成输入、输出。每原创 2020-11-26 20:00:59 · 1179 阅读 · 0 评论 -
XILINX 7系列FPGA_SelectIO
FPGA适合数据的并发性处理,但是数据从何而来,这就是本文所要说的SelectIO——数据传输的先锋部队 1.IO接口简介 2.IO逻辑资源简介 3.高级IO逻辑资源简介 4.IO_FIFO篇简介 1.IO接口简介从本篇开始的接下来共三篇,咱们聊一聊xilinx 7系列FPGA的SelectIO。所谓SelectIO,就是I/O接口以及I/O逻辑的总称。SelectIO 篇可以分成3部分:第1部分介绍I/O的电气特性,第2部分介绍I/O逻辑资源,第3部分介绍高级的转载 2020-11-26 17:49:58 · 4691 阅读 · 1 评论 -
IO电平兼容原则
1.概念(1) I/O单元:是芯片与外界电路的接口部分,需要完成不同电气特性下对输入/输出信号的驱动与匹配要求。(2) I/O BANK:FPGA的IO被划分为若干个bank,每个BANK都有VCCO和VREF。(3) IO标准:根据外部器件需求,选择IO标准。IO标准由VCCO或者/和VREF确定,通过软件配置。(4) VCCO:端口电压,电平标准,同一个VCCO下可兼容不同的IO标准。(5)VREF:参考电压,给部分输入标准提供参考电压。2.注意事项(1)故每个BANK只能有原创 2020-11-25 23:29:53 · 1215 阅读 · 0 评论 -
xilinx 7系列FPGA之SelectIO(3)_高级IO逻辑资源简介
上一篇咱们介绍了IO逻辑资源,本篇咱们来聊一聊高级的IO逻辑资源,即ISERDESE2模块和OSERDESE2模块。所谓ISERDESE2模块,即Input serial-to-parallel converters。该模块的作用就是实现高速源同步输入数据的串并转换。所谓OSERDESE2模块,即output parallel-to-serial converters。该模块的作用就是实现高速源同步输出数据的并串转换。先说ISERDESE2。该模块接收外部输入FPGA的高速源同...转载 2020-11-24 23:19:25 · 2598 阅读 · 1 评论 -
xilinx7系列FPGASelectIO篇(2)_IO逻辑资源简介
上篇咱们简单的说了I/O的电气特性,本篇咱们接着介绍I/O逻辑资源,先贴上两张图。图1为HPBANK的I/O模块,图2为HRBANK的I/O模块,两者区别在于后者无ODELAYE模块。 图1:HP BANK I/O模块 ...转载 2020-11-24 23:17:51 · 2632 阅读 · 2 评论