
FPGA
文章平均质量分 72
开发工具的使用,驱动设计,FPGA硬件使用等。
leixj025
停下匆忙的脚步,抬头仰望星空。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(五)调试注意的问题
1Bank的52Pins分4 Byte Group,每Byte Group 13Pins=Nibble_up 7Pins + Nibble_low 6Pins。每个nibble一个bitslice_control管理自己的6~7个pins。每个pin对应一个bitslice,它内部又包含多个component,如IOSerdes,IODelay等。可以单独使用调用Component Primitives;也可整体使用调bitslice原语称为native mode;原创 2025-04-20 16:01:11 · 1069 阅读 · 0 评论 -
JESD204B及解扰模块
关于初始值手册中为'h7f80,实际使用时Xilinx IP中用的是之前ILAS中的最后2字节0x7e7c,完整的最后4字节是0x7c7e7d7c,左边的0x7c应该是多帧结束字符/A/。ILAS虽然不参与加扰,但其最后2字节留在了加扰器中。原创 2025-02-12 17:38:28 · 1003 阅读 · 0 评论 -
Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(四)MAC IP自带的约束说明
说明Tri_mode_ethernet_mac IP中需要改动的源文件文件内容。在vivado中选中IP后右击选disable Core container 即可在工程目录下找到源文件并修改(.src/xx/ip/目录下为.xci文件仅包含IP配置,源文件在.gen/xx/ip/目录下)。需要修改IP源文件时,IP生成文件时用global模式,改动部分可以随工程一起编译。原创 2025-01-12 16:34:51 · 1641 阅读 · 0 评论 -
Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(三)基于PHY 88E15的约束设置
采用Marvell Alaska 88E15xx ,RGMII to Copper。input/output 约束:头大max尾小min"原创 2025-01-12 14:28:11 · 250 阅读 · 0 评论 -
Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(二)MMCM Phase Shift Mode -waveform的时序分析变化
在FPGA中用MMCM对输入emcclk时钟做180°翻转后得clk_out1采样,默认在发送emcclk后的第一个采样clk的rise采样。分析Required Time的时间起点不再从0开始,而是直接从偏移后的相位5ns开始,但是整个输入路径的延时都在。-waveform 后时钟的相位突变,时序分析有其独立的起点。-latency时分析的起点仍然是0或T,仅在MMCM中增加了延时。原创 2025-01-06 22:21:26 · 520 阅读 · 0 评论 -
Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(一)时序约束的基本概念
input delay:外部时钟发送沿到数据头的最大/最小延时。output delay:数据头到达采样沿的最大最小时间(这是下游器件对FPGA管脚处的时序要求)。input,output中的-max用于分析setup,-min用于分析hold。原创 2025-01-06 21:41:07 · 1389 阅读 · 0 评论 -
基于Xilinx bitslice原语实现delay可调整的MIPI DPHY
Xilinx自带的DPHY在1.5G时无法调整data line的delay值,在需要调整数据线延时的场景可使用文中方案,且有较少的资源占用。使用IBUFDS_DPHY,BITSLICE,BITSLICE_CONTROL实现MIPI DPHY。包含1条clock lane,4条 data lane。参考《UG571 ultralscale selectio》。原创 2023-12-12 17:59:04 · 2201 阅读 · 3 评论 -
Unexpandable Clocks不可扩展时钟 UG903
同源时钟可能同步,可能异步?原创 2022-03-14 13:52:07 · 1865 阅读 · 0 评论 -
FPGA原语IODELAY、ODDR、BUFGMUX和VIVADO BRAM的使用
1 IODELAY微调时钟相位#To Adjust GMII Tx Input Setup/Hold Timing#set_property IDELAY_VALUE 16 [get_cells *_i/gmii_to_rgmii_0/U0/i_gmii_to_rgmii_block/*_gmii_to_rgmii_0_0_core/i_gmii_to_rgmii/i_gmii_to_rgmii/gen_rgmii_rx_zq.delay_rgmii_rx_ctl]#set_pr.原创 2022-01-24 14:45:40 · 6801 阅读 · 0 评论 -
FPGA设计中的复位
遵循 Xilinx 建议的复位准则:a) 尽量少使用复位;b) 必须复位时采用同步复位;c) 确保使用高电平有效的复位;d) 避免异步复位(RAMB 和 DSP48 模块中不支持异步复位)。1、尽量共用复位、使能等控制信号,以便在综合实现时,寄存器能放在同一个Slice中,充分利用资源。2、少用复位信号,可使设计在实现时更加灵活,不会被限定在一种实现方法,充分利用资源。3、FPGA器件寄存器默认值为0,若复位仅用于初始化寄存器,可不使用复位。关于复位更详细的设计可参考《wp272-G原创 2022-01-24 13:28:16 · 1031 阅读 · 0 评论 -
ATGM332D GPSBD模块使用注意事项
目录1、模块默认波特率为9600,所有报文全开,不能直接使用2、RMC报文3、模块配置3.1 切换GPS、BD、GPS+BD模式3.2关闭其它报文格式3.3 保存配置信息1、模块默认波特率为9600,所有报文全开,不能直接使用9600且所有报文全开,会造成数据堵塞,发生时间整秒延迟,大约在1,2,3,4秒整秒跳动。必须调高波特率到115200;或关闭多余报文,仅留RMC。2、RMC报文RMC报文包含了常用的时间,坐标等信息。时间为UTC时间,需要+...原创 2021-11-09 20:03:31 · 3031 阅读 · 1 评论 -
RX8025T RTC读写与秒中断
一、精度二、读写时序接口为IIC,读写时序如下图。注意:1、写操作,写从机地址、寄存器地址0,紧接可以连续写入秒、分、时、周、日、月、年共7个数据;2、读操作,写从机地址、寄存器地址0、restart、读从机地址,紧接可以连续读出入秒、分、时、周、日、月、年共7个数据;三、写RTC对其内部ms计数的影响RTC的秒脉冲低有效,每次输出时读取RTC中的时间。读出秒的时刻清零FPGA维护的ms,ns计数;对RTC的写入有GPS校正(pps上升沿开始写RTC)、CPU主站校正。.原创 2021-11-09 19:36:47 · 3314 阅读 · 0 评论 -
vivado中自定义AXI4 IP核报错 :ASSOCIATED_BUSIF bus parameter is missing.
vivado版本2016.4,该警告不影响使用,后续版本中应该会修复。在vivado中自定义AXI4 IP核时出现如下的警告:[IP_Flow 19-3153] Bus Interface 's00_axi_aclk': ASSOCIATED_BUSIF bus parameter is missing.双击图中黄色区域,弹出下图对话框,点击“+”,添加如下图的参数即可...原创 2020-06-17 08:37:09 · 3742 阅读 · 0 评论 -
I2C总线时序(应用于PCA9555)
1、基本的时序SCL由主机发,SDA为双向:主机先发数据,后改接收从机应答。1)总线的启动,结束;时钟高电平数据必须保持稳定,时钟低电平数据才可以变化。2)应答。从机在第9bit发ACK=0。主机要结束操作时发NACK=1.2、9555操作时序1)器件地址与寄存器地址器件地址高4bit固定,A2A1A0由硬件上下拉确定,最后1bit根据读写操作不同变化。寄存器地址,用于配置,读写端口。每一位可单独配置为INPUT,output。2)写数据。支持突发写,..原创 2021-07-21 11:32:17 · 3866 阅读 · 0 评论 -
HDLC(High-Level Data Link Control)(对比以太网)
1、HDLC是什么高级数据链路控制HDLC(High-Level Data Link Control),数据链路层是OSI参考模型的第二层,相当于以太网MAC层。对物理层没有详细的规定,对数据速率、编码方式、传输介质等没有规定,可以采用光纤CMI、NRZI等编码。 2、HDLC的分类主要分为两大类,一般使用时只使用某一特定的子集。以太网不同协议在datalink 层也不同,常见的以太网帧结构由ETHERNET II 和 IEEE802.3,详见帧结构一章的图片。面向字符型 ...原创 2020-12-31 14:33:47 · 8629 阅读 · 0 评论 -
串行数据异步动态相位采样处理iodelay-iserdes应用+CDR数据恢复方案
一、用iserdes的LVDS视频接口《Zynq高速串行CMOS接口设计与实现》作者:hello,pandahttps://blog.youkuaiyun.com/haoxingheng/article/details/50320145二、4倍过采样《LVDS 4x Asynchronous Oversampling Using 7 Series FPGAs and Zynq-7000 AP SoCs》https://china.xilinx.com/support/documentation/a.原创 2020-11-19 15:26:24 · 4000 阅读 · 4 评论 -
OSERDES和OBUFDS在LVDS视频传输中的应用
Select IO 资源 分三类:基元、逻辑资源、高级逻辑资源。A、基元B、逻辑资源C、高级逻辑资源1、OSERDES与ODDR区别:OSERDES数据入口为1个并行口,2个clk,通过高倍时钟串行化,低位先发LSB;ODDR 数据入口为2个单bit口,1个clk,clk双沿分别发两个口数据。接收端用双沿采样。2、通过原语调用MMCM或PLL,也可用GUI方式。3、OSERDES2模块实现把并行数据转化为串行数据,串行时钟的速率与并行数据宽度有关,可参..原创 2020-10-30 10:39:14 · 2446 阅读 · 0 评论 -
循环冗余校验(CRC)之verilog实现
有一个网站在这一方面做的特别好,直接生成代码。链接:http://www.easics.com/webtools/crctool 循环冗余校验,也称为CRC检验,这是一个很常见的,很成熟的算法。该算法的理解很简单,随便用百度百科一搜,然后花半个小时估计就能完全理解了。这篇博文描述:怎么实现硬件并行的CRC计算。主要的参数为:1.生成多项式,在不同的协议中有不同的生成多项式,一般这些多项式都是确定的。2.模2除法如果已经了解CR...转载 2020-07-23 14:44:00 · 2410 阅读 · 4 评论 -
FPGA按钮输入消抖
下图 1 说明了一个有效的消抖逻辑电路。 此电路持续将按钮的逻辑电平记录到 FF1 然后记录到 FF2,使得 FF1 和 FF2 始终存储此按钮的最后两个逻辑电平。 当这两个值在指定的时间内保持相等时,启用 FF3,并通过它将稳定值记录到结果输出。 XOR 门和 N 位计数器完成定时。 如果按钮的电平发生变化,则 FF1 和 FF2 的值在一个时钟周期内不同,从而通过 XOR 门清零 N 位计数器。 如果按钮的电平不变(即,如果 FF1 和 FF2 处于相同的逻辑电平),...转载 2020-06-17 08:29:27 · 796 阅读 · 0 评论 -
FPGA中用verilog直接读写操作SDRAM
1 简介SDRAM 型号为MT48LC32M16A2。SDRAM,英文名是: Synchronous Dynamic Random Access Memory,相较于 SRAM(静态存储器), SDRAM 具有:容量大和价格便宜的特点,但是需要动态刷新,保持存储单元内的数据不丢失。1.1 存储单元组织结构有4个BANK,每个BANK有8192行,每一行有1024列,每个地址存储位宽16bits,整个芯片的容量为: 8192*1024*4*16=64M 字节。1.2 参数1.3信.原创 2020-06-16 16:22:57 · 4982 阅读 · 0 评论 -
Alreta DDR2 IP 核上板测试
目录1工程设置修改1.1 增加复位控制1.2工程设置1.3 设置管脚电平、驱动能力。1.4 按照原理图配置具体管脚1.5添加约束2 波形抓取3 信号补充说明4 其他使用1工程设置修改本文中工程仍然使用<<Alreta DDR2 IP 核仿真测试https://blog.youkuaiyun.com/leixj025/article/details/106646782 >>的工程,在此基础上修改。1.1 增加复位控制在_example_t...原创 2020-06-10 18:30:08 · 409 阅读 · 0 评论 -
Alreta DDR2 IP 核仿真测试
开发环境Quartus II 13.1 ,仿真工具 ModelSim SE-64 10.4,直接使用altera官方testbench仿真测试。1 IP核配置生成用verilog语言注意:在生成过程中会卡住两次,每次等待一会后,在任务管理器中关闭quartus_map.exe,即可顺利生成。2 搭建仿真工程2.1 工程层次生成的IP文件夹内包含了例程文件,在quartus中搭建例程工程,编译,以此工程为基础进行仿真。2.2_example_top.v文件更正.原创 2020-06-09 18:17:32 · 927 阅读 · 0 评论 -
altera modelsim库编译
原文网址 https://www.cnblogs.com/chengqi521/p/6112926.html估计很多人买了CB哥的书来看吧,他们在学习modelsim仿真的过程中可能遇到过明明是按照书上的步骤添加器件库的了,但还是出现如下的错误:首先,我想说的是CB哥书上的modelsim-altera10.1d是随QuartusII一起安装的,它已经编译了altera的器件库。它是一个免费版的仿真工具,不需要破解,当然它的功能不是最强大的,仿真速度也不是最快的,但已经可...转载 2020-06-05 14:47:53 · 1450 阅读 · 0 评论 -
string is an unknown type
AR# 59606MIG 7 Series DDR3 - Simulation fails in Vivado Simulator with ERROR: [VRFC 10-51] string is an unknown type描述 解决方案 链接问答记录描述Version Found:MIG 7 Series v2.0 Rev 2Version Resolved:See(Xilinx Answer 54025)The DDR3 memory model f...转载 2020-05-22 15:29:44 · 2055 阅读 · 0 评论 -
基于FPGA的CORDIC算法实现
目前,学习与开发FPGA的程序员们大多使用的是Verilog HDL语言(以下简称为Verilog),关于Verilog的诸多优点一休哥就不多介绍了,在此,我们将...转载 2020-05-09 15:48:06 · 2052 阅读 · 0 评论 -
两种逐次逼近的开平方算法sqrt
此处两种算法优势:通过移位、或运算 完成平方值的比较,无需乘法器。1、方法一根据被开方数位宽,从结果的最到位[ (asize/2)-1]到最低位[0]逐次逼近。核心代码理解:tt = (v << (i + 1)) | (1 << (i + i))=2*v*2^i + 2^(2*i) = (v+2^i)^2 - v^2;// | 相当于加法。v+2^i表示结果v的第[i]bit 新变为1,则tt代表v[i]=1后,v^2的增量。每次变位完,需要从被开方总数r-...原创 2020-05-09 15:01:36 · 1800 阅读 · 0 评论 -
开平方_复数有效值+角度的verilog代码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...原创 2019-10-25 14:01:36 · 6051 阅读 · 2 评论 -
modelsim 常用快捷键
1、鼠标操作:Ctrl+鼠标左键从左上向右下拖拉:放大(选中区域)Ctrl+鼠标左键从左下向右上拖拉:缩小2、键盘操作:c :当前光标居中并放大i,I,+ :(Zoom in)放大o,O,-:(Zoom out)缩小f,F :(Zoom full)缩放至满屏...原创 2019-10-22 15:42:12 · 4067 阅读 · 0 评论 -
FMC/FSMC/EXMC总线NORFlash/PSRAM接口(异步-复用-不突发/同步-复用-突发)
目录1 简介1.1 框图1.2 接口定义1.3 读写时序图、时序配置参数1.4 PSRAM控制器异步工作模式分类1.5 PSRAM寄存器配置1.5.1 控制寄存器BCR1.5.2 片选时序寄存器BTR1.5.3 写入时序寄存器BWTR2 FPGA接口设计2.1 实际配置的时序2.2 接口信号处理3 参考文献1 简介 使...原创 2019-10-21 09:25:26 · 19112 阅读 · 8 评论