
FPGA
FPGA_Linuxer
这个作者很懒,什么都没留下…
展开
-
FPGA 纯逻辑NVME raid0 IP核 双盘测试(基于三星9100 pro ssd)
和三星980类似,只是9100掉速的时间会晚一点,当然也可能是容量决定的,过了大概1T之后,写速度基本要减半。目前为止最稳定的还是三星的970 pro,基本可以做到全盘不掉速,这也是MLC颗粒比较贵的原因。产生测试数到两个盘里面,测试发现前1T数据写入,双盘速度可以达到6.7GB/s。本次测试采用XCZU19EG+三星4T的9100盘。原创 2025-05-21 07:07:52 · 189 阅读 · 0 评论 -
arinc818 fpga单色图像传输ip
随着图像分辨率的提高,单lane的速率无法满足特定需求,一种方式是通过多个LANE交叉的去传输图像,另外一种是通过降低图像的带宽,即通过只传单色图像达到对应的效果。验证方式为本地产生一个彩条,通过光口回环到接收端,进而完成解码,通过HDMI接口送图像显示。arinc818协议支持的常用线速率如下图。原创 2025-03-30 13:07:56 · 356 阅读 · 0 评论 -
MPSOC 裸机测试USB3.0接口
测试USB接口,通常采用操作系统进行测试,但是xilinx同样提供了裸机测试程序。该工程是将DDR虚拟成U盘,BIT运行起来需要对其进行格式化处理。首先是根据硬件设计BD文件,主要是根据IO口已经GTR接口配置。综合编译产生BIT,创建VITIS工程。原创 2025-01-19 21:03:46 · 275 阅读 · 0 评论 -
vivado bd文件复制
不同工程是无法进行BD文件复制的,可以通过将被复制的BD文件添加到需要复制的BD文件的工程中,然后再工程内进行复制。原创 2024-12-09 21:15:43 · 627 阅读 · 0 评论 -
Bus Interface property CLK_DOMAIN does not match between /usp_rf
直接在对应的clock port修改为正确的时钟域。原创 2024-12-03 21:58:31 · 193 阅读 · 0 评论 -
vivado sdk 烧写到SD卡
烧写流程和烧写FLASH一样,产生boot.bin文件,只需要将BOOT.bin文件复制到SD卡里,将SD卡插入板卡,然后设置SD卡启动即可。需要注意的是:SD卡文件系统必须格式化为FAT32,否则可能导致不能正常启动。首先在bd文件中使能SD卡。实际根据实际原理图设置。原创 2024-09-24 22:38:19 · 510 阅读 · 0 评论 -
10g subsystem以太网IP上电默认无GTX参考时钟
有时硬件方案设计万兆网IP 10G subsystem ip默认无gtx参考时钟,而是通过上电完成后通过配置时钟芯片输出参考时钟,实际测试发现即使配置时钟芯片提供了参考时钟之后,万兆网IP依旧无法正常工作。解决方法:由于QPLL再时钟稳定后没有对common进行复位操作,只需时钟稳定之后给QPLL common一个复位信号即可。原创 2024-09-14 22:56:09 · 314 阅读 · 0 评论 -
VIVADO VITIS移动工程目录,编译报错
如果已经丢失了硬件平台文件,可考虑重新创建一个新的工程,把C代码拷贝到新工程即可。以上方法只试用依赖的文件名是一致的情况。原创 2024-09-01 11:22:00 · 334 阅读 · 0 评论 -
[BD 41-237] Bus Interface property ID_WIDTH does not match between /axi_crossbar_4/S00_AXI(1) and /a
将AXI CONNECT 的特性 修改为下图特性。原创 2024-08-31 23:20:03 · 538 阅读 · 0 评论 -
[Place 30-823] Failed to process clock nets that should have matching clock routes. Reason: Found in
将BD文件产生方式改为GLOBAL。原创 2024-08-24 10:50:06 · 319 阅读 · 0 评论 -
SDK无法创建LWIP工程
检查一下所选的处理器是否正确。原创 2024-06-10 10:40:05 · 203 阅读 · 0 评论 -
ARINC818协议----FC-AV协议
容器系统提供了一种使用对象类和索引分类系统定义对象内容的机制(参见表5)。对象分类在容器头中由每个对象的对象类词的Type和Index字段表示。Type字节是Object的粗略分类。Index字节提供了Object的精细分类。该分类系统使用Type和Index字段,为FC-AV实现提供或确定Object内容和格式提供了一种快速、快捷的方法,而不需要传输复杂的描述或协商。Null -未使用的对象条目,大小始终为零;指定-在本标准中定义;预留-用于将来的标准分配;转载 2024-05-22 20:12:21 · 1379 阅读 · 0 评论 -
FPGA 纯逻辑arinc818 ip core
5、可动态配置光纤端口速率,支持1.0625Gbps、2.125Gbps、3.1875Gbps、4.25Gbps可配置;1、 符合FC-FS、FC-AV、FC-ADVB协议规范;3、支持光纤通信Class1、Class3服务;6、DDR控制接口简洁,方便快速集成;2、符合ARINC818协议规范;可以根据客户定制开发。原创 2024-05-22 12:53:41 · 1445 阅读 · 0 评论 -
xilinx cpri ip 开发记录
如果是2457.5Mbps的CPRI应用,带宽更大,Y就可以为0,1,2,3,按照下图所展示的发送顺序发数,一个基本帧里有Z.X.0,Z.X.1,Z.X.2,Z.X.3,四个控制字,和60个bytes的IQ数据。那么,CPRI的基本帧的结构就如下图所示,如果是614.4Mbps的CPRI应用,那Y就只会等于0,数据为Z.X.0打头,有16个bytes数组成,第1个byte一般做控制用,后15个bytes就是IQ数据。用户不用在IQ数据接口(iq_tx,iq_rx)管这几个数,后面则是正常的IQ数据收发。原创 2024-04-20 22:32:57 · 2917 阅读 · 16 评论 -
xilinx SATA GTY PHY适配
xilinx sata phy主要是通过transceiver IP 进行移植,xilinx的底层目前主要有gtp gtx gth gty,不同的底层,PHY都需要重新适配。设置完成,再根据端口上的信号去适配原有的sata ip核即可。以下开始针对ZCU器件的GTH4底层进行配置。2,设置数据位宽,我这里设置为32位宽。首先可以选择对应的类型。原创 2024-04-08 22:27:58 · 805 阅读 · 0 评论 -
SI5383时钟芯片驱动
虽然接口也是IIC,但是由于5383的地址扩宽了,不再是一字节,而是采用两字节配置,芯片支持直接模式和间接模式。和5338类似,配置接口同样采用IIC接口,配置过程同样使用Clockbuilder软件,配置对应的频率。Si5383和以前同系列的Si5338类似,相比5338时钟输出路数增加,同时增加一路PPS输入。IIC采用IO模拟,将其挂载在BD总线上。芯片的配置流程如下图。原创 2024-04-06 19:47:25 · 638 阅读 · 0 评论 -
xilinx AXI CAN驱动开发
CAN收发方案有很多,常见的解决方案通过是采用CAN收发芯片,例如最常用的SJA1000,xilinx直接将CAN协议栈用纯逻辑实现,AXI CAN是其中一种;因为xilinx提供了C驱动代码,这样用户直接通过AXI lite接口即可配置CAN芯片。配置好对应的通信速率即可完成CAN通信,相比SJA1000芯片,配置门槛降低很多。软件设计方面,推荐直接将AXI CAN IP核绑定在BD文件上。通过这种方式硬件上只需外接一个PHY芯片即可。上图加了一个电平转换芯片。原创 2024-04-05 11:22:41 · 3444 阅读 · 5 评论 -
Vivado sdk 20:41:22 ERROR : Error occurred while creating hardware platform错误
java.io.FileNotFoundException: D:\workspace\project2024\project\adrvxxxx (拒绝访问。检查工程目录文件名,是否存在非法的字符。文件名中间存在空格符等问题。原创 2024-04-03 20:49:01 · 722 阅读 · 0 评论 -
[Synth 8-4169] error in use clause: package ‘altera_mf_components‘ not found in library ‘altera_mf‘
原创 2024-01-20 23:31:35 · 652 阅读 · 0 评论 -
fpga xvc 调试实现,支持多端口同时调试多颗FPGA芯片
本方案考虑到XVC协议本身是非常简单的协议,V1.0加一起就3条指令,可以将XVC服务器运行在PC机上,QT直接运行即可,同时QT上位机完成XVC协议栈的数据payload的分发即可,分发协议为了平台移植性强,可以换成UDP协议,将数据分发给一个普通的FPGA,比如A7,A7上只需要实现UDP传输协议,这里设计了一个多端口UDP,设计种设计了10个端口,10个端口占用一个网口,可以做到一个A7同时调试10颗芯片,此外A7需要实现JTAG时序即可;原创 2023-12-27 20:48:33 · 2330 阅读 · 1 评论 -
ERROR: [BD 41-237] Bus Interface property FREQ_HZ does not match between
在自定义IP出现以上错误时可以通过双击模块clk属性。如果是灰色的封装IP时,选择以下菜单。原创 2023-12-11 20:18:58 · 1507 阅读 · 0 评论 -
VIVADO SDK 调试petalinux使用pthread 设置
原创 2023-09-02 08:28:39 · 267 阅读 · 0 评论 -
ICM42686驱动笔记
正确的读取方式只需要给一个起始地址,保持片选拉低的情况下只给时钟将接下来的结果一并读取。读取结果时注意不要采用一个寄存器读一字节的方式,实际测试发现会有异常值出现。原创 2023-08-27 21:12:54 · 574 阅读 · 0 评论 -
VIVADO封装自定义IP 保留工程 方便二次封装
去掉蓝线处的选项,下次直接在此基础上进行二次修改。原创 2023-08-20 09:47:20 · 174 阅读 · 0 评论 -
UltraScale hd bank电平约束
注意1.8V不支持LVDS电平形式。原创 2023-06-27 18:50:33 · 415 阅读 · 0 评论 -
多周期路径约束
一、什么时候需要用到多周期约束? Vivado、TimeQuest等时序引擎默认是按照单周期关系分析数据关系的,即数据在发起沿发送,在捕获被捕获,发起沿和捕获沿相差一个周期。但是很多情况是,数据路径逻辑较为复杂,导致延时较大,使得数据无法在一个时钟周期内稳定下来, 或者数据可以在一个时钟周期内稳定下来,但是在数据发送几个周期之后才使用;在这些情况中,设计者的意图都是使数据的有效期从发起沿为起始直至数个周期之后的捕获沿,这样的意图无法被时序分析工具猜度出来,必须由设计者在时序约束中指明;否则时序分析工具会按转载 2023-06-17 19:13:08 · 718 阅读 · 0 评论 -
DRC23-20 PDRC #1 Critical Warning The port <<name>> is assigned to a PACKAGE_PIN that uses BITSLICE_
tx1_strobe_out_p为对应的管脚。VIVADO报错解决办法。直接在XDC里进行约束。原创 2023-06-15 20:55:01 · 652 阅读 · 0 评论 -
VC709测试NVME协议读写SSD速度过低问题排查
正常FPGA V7690T器件跑的是pcie3.0 ,但是实测下来发现三星970 1TB 读写速度竟然低到800MB/s,通过更换另外一块开发板测试速度相当,排除硬件问题。,通过更换PCIE硬核的BANK ,因为VC709 FMC支持8x的Serdes ,更换到另外一组测试发现速度正常,偶然配合客户通过VC709读写NVME SSD硬盘发现速度过低,结论:硬件设计过程中,尽量使用官方推荐的BANK跑PCIE协议。问题定位到PCIE硬核上,具体可以参考另外一篇博客。原创 2023-05-16 20:16:15 · 713 阅读 · 0 评论 -
XC7VX690T PCIE 硬件设计注意事项
首先参考PG023找到对应封装支持的位置。然后参考UG476找到对应的实际物理位置。XILINX 也有给出对应的推荐位置。原创 2023-05-10 20:00:37 · 1165 阅读 · 0 评论 -
FPGA 二阶矩阵求逆简便快速实现方式
原创 2023-05-09 22:42:34 · 643 阅读 · 0 评论 -
Xilinx 7系列FPGA读取器件ID(DNA)
Xilinx的FPGA,每个器件都有一个专门的ID,,每个都不一样,Xilinx也形象的把这个ID叫做DNA。7系列以及之前FPGA的DNA有57bit。一种方式是通过JTAG,这种方式实用价值不高,就不做展示了,另外一种方式就是通过源语进行读取。有时为了将程序绑定器件,防止程序被复制,如果获取器件的DNA。原创 2023-05-07 09:03:22 · 2398 阅读 · 0 评论 -
Xilinx 7系列FPGA DDR3硬件设计规则
本文我们介绍7系列FPGA DDR3硬件设计规则及约束,包括Bank选择、管脚位置约束、管脚分配、端接、I/O标准和走线长度。转载 2023-05-01 21:19:57 · 4871 阅读 · 2 评论 -
MRCC和SRCC的理解
看下面这个图,首先MRCC和SRCC都是可以连接到全局时钟的,但是全局时钟的资源有限。SRCC可用于本区域时钟这个比较好了解,MRCC用于相邻的区域该这么理解,MRCC通过不同于全局时钟的渠道可以到达相邻的区域。在手册上有描述,SRCC可用于本时钟区域,MRCC用于本时钟区域和相邻时钟区域。如下图BANK1和BANK3可以使用BANK2的MRCC分上来的时钟,没必要先将BANK2的MRCC连接到全局时钟再连接到BANK1和BANK3,这样不但节省了全局时钟资源,而且路径更短。转载 2023-05-01 21:16:35 · 2208 阅读 · 0 评论 -
ad7606+w5100s+EMMC+FPGA采集存储小板
硬件框图如上图所示,主要是功能是实时存储两个多通道低速AD ad7606采集的数据,通过网络芯片w5100s进行数据回放,该板卡也可以用来验证EMMC存储速度。原创 2023-04-11 22:27:47 · 1128 阅读 · 2 评论 -
FPGA 网络PHY 芯片KSZ9031寄存器配置
以太网配置原创 2023-01-08 09:50:02 · 1686 阅读 · 0 评论 -
TCP协议讲解
tcp/ip转载 2022-12-11 21:21:50 · 1170 阅读 · 0 评论 -
vitis Error while launching program: Timeout Reached. Mask poll failed at ADDRESS: 0XFD40E3E4 MASK:
vivado原创 2022-11-17 21:04:38 · 1389 阅读 · 0 评论 -
XILINX vivado fft IP延时值
fft ip core原创 2022-11-13 13:02:16 · 962 阅读 · 1 评论 -
[Labtools 27-3428] Ila core [hw_ila_2] clock has stopped. Unable to arm ILA core.
fpga vivado原创 2022-10-07 14:54:54 · 8862 阅读 · 6 评论 -
Vivado使用宏定义`define 调用头文件
fpga原创 2022-10-07 14:19:37 · 3398 阅读 · 0 评论