自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 Xilinx关于GTX的IP核serdes仿真和使用

【代码】Xilinx关于GTX的IP核serdes仿真和使用。

2022-12-30 17:13:00 16402 15

原创 手把手教你搭建PCIe DMA系统

本文介绍了使用Xilinx IP核搭建PCIe DMA系统的设计思路和实现过程。系统核心采用AXI Bridge for PCIe Gen3 Subsystem IP核,负责PCIe与AXI协议之间的转换,并通过AXI Central Memory Access (CDMA) IP核实现数据搬移。设计重点在于理解PCIe与AXI总线之间的地址转换和配置,特别是AXI基地址转换配置寄存器的设置。系统通过AXI接口将数据从FPGA缓存搬移到上位机内存,或反之。

2025-05-22 16:45:49 1061 1

原创 一种大位宽加减法器的时序优化

平台:vivado2018.3在FPGA中实现超高位宽加减法器(如256)时,时序收敛常成为瓶颈。由于进位链(Carry Chain)跨越多级逻辑单元,关键路径延迟会随位宽指数增长,导致时钟频率急剧下降。针对这一问题,现在使用如下方式优化大位宽加减法器的时序。这里使用进位选择加减法器,通过并行计算和进位预测技术,优化加减法器的路径延时,提高整体的运算速度。

2025-04-17 11:18:19 394

原创 IEEE754浮点数的表示

在学习浮点数的表示之前,先看一下二进制和十进制之间的转换。再来学习IEEE754标准的浮点数。

2024-10-09 18:10:03 1346

原创 VCS和Verdi联合仿真使用学习记录

环境:linux工具:vcs,verdi最近学习如何在linux环境下使用vcs编译仿真,使用verdi查看波形。是 Synopsys 开发的一款高性能的 Verilog 和 SystemVerilog 编译仿真工具。它广泛用于数字电路设计和验证,特别是在 ASIC 和 FPGA 设计中。是 Synopsys 提供的一款高级调试和可视化工具,主要用于硬件设计的调试和分析。它通常与 VCS 一起使用,以便在仿真过程中提供更好的可视化和调试体验。

2024-09-18 17:29:52 1271 1

原创 MIPI联盟D-PHYv1.2规范阅读笔记

MIPI 联盟成立至今制定了多种用于不同终端设备的接口标准,其中包括用于摄像头的 CSI-2。用于显示器的 DSI。用于射频的 DigRF。用于麦克风的SLIMbus等接口协议。MIPI CSI-2 协议简介两个模块之间使用差分信号传输,一对差分时钟信号,最多四对数据传输差分线。CCI兼容I2C,用于协议内物理层的参数配置。不同的厂商不同。CSI-2数据包传输准则,传输短包用于发送控制信息,长包用于发送负载数据。

2024-08-26 16:41:50 1202

原创 关于xilinx的FFTIP的使用和仿真

工具:vivado2018.3,modelsim10.6d场景:在进行数据进行频谱分析的时候,使用FPGA来完成FFT的计算可以加快数据的计算速度。下面使用仿真完成DDS产生的数据的FFT以及IFFT。原始数据使用DDSIP产生,通过IP产生的波形数据直接输入到FFT进行傅里叶正变换。然后再使用FFT对数据进行IFFT傅里叶逆变换还原波形数据。过程中完成了fftshift(将零频分量搬移到频谱中心),以及使用cordic计算平方根的过程。

2024-08-15 10:05:03 1862 5

原创 AD9164配置学习

芯片:AD9164场景:在调试高速DAC的过程中,在接口调试的初期往往会遇到接链不成功,同步信号忽高忽低的过程。这种情况往往是DAC芯片的寄存器配置不正确。今天就来仔细学习一下AD9164的配置。

2024-07-26 16:34:11 1967 2

原创 JESD204B学习与仿真

LogiCORE™ IP JESD204 内核实现了一个 JESD204B 接口,在使用 GTX、GTH、GTP 或 GTY(仅限 UltraScale 和 UltraScale +)收发器的 1 至 8 条通道上支持 1 至 12.5 Gb/s(1)的线路速率。有关每个器件和系列所支持的最大线路速率,请参阅器件数据表。JESD204 内核可以配置为发送或接收,并且可以使用多个内核来实现需要超过 8 条通道的链路。发射机(对应DAC)

2024-07-23 18:32:00 2414 7

原创 时钟芯片LMK04828调试记录

应用场景:在一些高速ADC和DAC的芯片中,需要时钟芯片对其提供专用的高速时钟,并且往往伴随这jesd204b的时钟产生。所以使用时钟芯片来产生同源时钟。

2024-07-22 18:02:13 2990 1

原创 编辑工具GVIM功能展示

平台:Gvim8.2在编辑verilog代码的过程中,为了代码的规范性,往往需要手动对齐。为了提升效率,这里使用GVIM编辑器自动完成上述功能。下载地址功能展示。

2024-07-22 16:45:53 680 1

原创 Vivado生成网表文件并创建自定义IP

平台:vivado2018.3应用场景,在设计的过程中,我们一些特定的模块需要交付给别人,但是又不想让他们看到其中的源码。就可以将源码封装成网表和IP文件。

2024-07-22 15:34:22 2556

原创 验证Vivado布局布线不变

平台:vivado2018.3应用场景,在设计的过程中,一些特定的引脚,我们想在原有的基础上不改变其布局布线方式。

2024-07-22 14:39:21 2464

原创 关于普通接口转AXI接口AMM Master Bridge仿真和使用

应用场景,在设计的过程中,在xilinx内部的IP采用AXI接口协议。而我们外部的FIFO,BRAM等接口有时候使用的Native接口。在avs_read_s0为1和avs_waitrequest_s0为0时读使能握手成功。从上面可以看出来,官方给出的指示在时钟为200MHz时,在理论带宽为6.4Gb/s时,不同的BL位宽的吞吐量。IP可以将Avalon接口读写在内部仲裁转换为AXI接口读写。可以看到在avs_write_s0为1和avs_waitrequest_s0为0的情况下写入有效。

2024-07-16 10:23:08 1835

原创 调频信号FM的原理与matlab与FPGA实现

其中cordic的角度范围表示为(-pi,pi)。在逻辑中有几种产生正余弦波形的方式,基于DDS的波形发生器,基于cordic的波形发生器。余弦波时,积分量在0,pi和2pi时最小,对应着在0时频偏最小,在pi/2时频率与载波相同,在pi时。逻辑实现现在假定调制波为1mhz,载波为8mhz,最大频偏为2mhz,采样率为512mhz。载波也是一个余弦波,调制波的频率随着调制波形的积。其中p为频率控制字,pi为载波的频率控制字,po为频偏控制字。Fm频率调制,载波的幅度随着调制波形的幅度变化而变化。

2024-06-26 22:58:25 2302

原创 调幅信号AM的原理与matlab实现

上式说明,由正弦波调制的调幅信号由三种频率成分组成:载波、载波和调制频率的差频(下边带)、载波和调制频率的和频(上边带)。调幅波所占的频谱宽度等于调制信号最高频率的两倍。>1,已调波的包络会出现严重的失真,而不能恢复原来的调制信号波形,也就是产生过量调幅。调幅就是使载波的振幅随调制信号的变化规律而变化。为调制指数,它的范围在(0,1)之间,如果。当调制波为正弦波时的时域波形。当调制波为三角波时的时域波形。当调制波为锯齿波时的时域波形。当调制波为正弦波时的频域波形。当调制波为方波时的时域波形。

2024-06-25 23:18:21 2303

原创 软件无线电学习-数字上变频DUC数字下变频DDC

如第3章中软件无线电接收机数学模型所述,在软件无线电接收机中,首先对射频模拟信号或者是宽带中频模拟信号通过模数转换器进行数字化,然后,采用数字下变频(DigtalDownConverter,DDC)技术和多速率数字信号处理技术,对信号进行频率变换、滤波、抽取等处理,将感兴趣信号分离和提取出来,并将采样速率降低到较低速率,送到基带信号处理单元对感兴趣信号进行后续处理。三种数字上变频技术的原理、适用场合在第3章中已进行了详细的论述,所以,这里仅对数字正交混频上变频的实现进行简单介绍。变成两路I和Q信号。

2024-06-03 23:38:27 1029

原创 软件无线电学习-发射机体系结构

软件无线电发射机的主要功能是把需发射或传输的用户信息(话音、数据或图像)经基带处理(完成诸如FM、AM、FSK、PSK、MSK、QAM 等调制)和上变频,调制到规定的载频(中心频率)上,再通过功率放大后送至天线,把电信号转换为空间传播的无线电信号,发向空中或经传输介质(如电缆、光缆)送到接收方的接收机前端,由其进行接收解调。设置采样率为5ghz,基带信号为50mhz,nco本振为100mhz,第一步先求出基带信号的IQ信号,在求出正交本振cos和sin。分别表示该信号的幅度调制信息和相位调制信息,

2024-05-29 21:02:48 670

原创 matlab工具使用记录-编辑器和命令行窗口分开还原

场景:在使用软件的过程中,我们误操作将matlab的编辑器单独出来了。这时候对软件进行各种操作都还原不回去。这时候只需要使用快捷键在编辑器窗口按Ctrl+shift+D,这时编辑器和主窗口就合并在一个界面里了。matlab中编辑器和命令行窗口分开了如下图所示。工具:matlab2021b。

2024-05-29 20:06:29 3816

原创 软件无线电学习-第二代移动通信系统过程理解

第二代移动通信系统的最大不同是采用了数字调制,这也就为采用新的TDMA、CDMA 多址方式奠定了基础:另外信道带宽也从模拟体制的30/25kHz提高到了 200kHz和1.25MHZ(D-AMPS除外)。由此可见,移动通信经历了从模拟无线电到数字无线电,再从数字无线电到软件无线电的。下面我们模拟该过程。它主要特点是通过二次变频的射频前端把射频信号变为中频信号(图中的一中频频率为71mhz,二中频频率为6mhz)后,首先进行A/D采样数字化,把模拟信号变为数字信号,再由信号处理器(DSP)完成解调任务。

2024-05-24 10:32:36 828

原创 学习笔记------时序约束之时钟周期约束

用于axi处理的时钟是125mhz,这里就将该时钟命名为clk_125mhz,其他模式为了统一,也就使用了该名字去写代码,但是在于实际过程中,发现gen2的速度不够,改为gen3,这时候axi时钟就来到了250mhz,往往在调试的过程中,这个时钟的名字大家都不愿意时刻修改,造成了实际使用的250mhz时钟而时钟名字又叫clk_125mhz这样的误解。第二种就是用户使用逻辑生成的时钟。对于上述的这些时钟,工具会自动的根据其与输入时钟的关系自动推断出时钟周期、占空比,以及该时钟与输入时钟的相位关系。

2024-04-17 14:14:52 2035

原创 学习笔记------时序约束之步骤

这些时钟包括从全局时钟引脚进入的时钟,MMCM/PLL生成的时钟,高速收发器提供的时钟,以及用户逻辑生成的时钟。此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。使用他约束上述2-4步骤后,每一步都可以通过专用的tcl命令来查看约束是否生效,用以验证约束正确性和有效性。在学习时序约束之前,先学习一下时序约束的步骤,方便后续查看一个整体的FPGA工程是否完成了所有的时序约束。第二步,针对输入/输出延迟约束,可能会涉及虚拟时钟。本文摘自《VIVADO从此开始》高亚军。

2024-04-15 17:46:19 399

原创 学习笔记------约束的管理

这类路径起点模块和终点模块均为同一时钟驱动的时序逻辑(通常为寄存器,寄存器可以是SLICE中的,也可以是BRAM或者DSP48内部)。所以一个完整的工程往往会包含时序约束,物理约束,调试约束。此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。从图中可以看出,一个完整的时序路径由源时钟路径,数据路径和目的时钟路径三部分构成。简单来说,就是需要在FPGA芯片中的电路,从输入到输出的时间,要系统的时钟周期内完成。这四类路径中,最为核心的标记是2同步时序路径。

2024-04-15 16:59:21 590

原创 matlab关于COE文件之读取操作

场景:在使用fir滤波器后,我们使用matlab生成coe文件后。在xilinx新建IP的后,数据流经过FIR的IP核后数据位宽变宽。这时候我们需要对数据进行截位。这时候需要读取coe文件求和后,计算我们需要截位的位宽。下面时使用matlab读取coe文件的函数。

2024-04-10 11:59:54 1976 1

原创 UltraScale 架构 SelectIO 资源之IODELAY与IOSERDES仿真与使用

在调试超高速信号的时候,需要使用iodelay+iserdes来调试校准输入信号。例如外部某ADC采样率为5GHZ,外部ADC使用2.5GHZ的时钟去采集输入信号。为了实现采集,adc芯片使用了4个1.25ghz采样率的小ADC来采集。但是由于FPGA的工艺,在FPGA内部无法处理高达1.25ghz的信号。外部信号采用并行数据输入,在双边沿采集信号。输入随路时钟为625mhz的双边沿数据。但是对于一般的工程,内部时钟跑到625mhz对于FPGA的时序要求太高。

2024-04-07 10:39:57 3073 9

原创 Xilinx IDDR及ODDR使用和仿真

外部的数据在时钟的上下沿同时传输数据,我们可以使用IDDR原语将输入的单bit数据转化为2bit的数据输出。同时数据速率变为原来的二分之一。数据呈现到相同时钟边沿的FPGA逻辑中。与SAME_EDGE模式不同的是,数据在第二个时钟周期输出一对数据。与IDDR相反的是,ODDR将内部的2bit数据,转换为单bit数据输出。数据呈现到同一时钟边沿上的FPGA逻辑中。时钟的两个边沿 (CLK) 都用于以两倍的吞吐量从 FPGA 逻辑捕获数据。输出adc_dq_p,adc_dq_n。平台:Vivado2018。

2024-03-27 14:31:53 1923

原创 [Labtools 27-1429] XML parser encountered a problem in file

最近在使用vivado的debug过程中发现,编译好工程后打开open hardware manager出现如下错误。在备份工程中相同路径下找到该文件,替换到已经损害的这个。平台:Vivado2108.3。按照路径,找到该文件。

2024-03-19 11:36:35 3477 2

原创 ERROR: [Labtools 27-1832] create_wave_config not a supported tcl command in labtools hardware mode.

在调试vivado在线debug过程中,发现无法显示波形。平台:Vivado2018.3。

2024-03-19 10:54:02 1900

原创 PID闭环控制算法的学习与简单使用

PID控制算法是一种闭环控制算法。在工业中被广泛应用。在PID系统框图中,整个系统包括比较器、PID控制器和控制对象,其中PID控制器包括三个模块,比例(P),积分(I)和微分(D)。

2024-02-29 10:19:04 1743

原创 卡尔曼滤波器算法的学习与简单使用

在实际的应用中,模拟信号在经过adc采集后转换为数字信号,但是这个转换的值往往会有很大噪声,这里我们使用卡尔曼滤波器对采集的数据进行滤波处理。例如,我们使用信号源输出一个1v的直流电,经过adc转换后测试得到一组数据,t0时刻0.995v,0.999v,1.005v。因为我们输出信号为1v始终没有改变,所以我们预测现在的电压依旧是1v。但是真实的电压是多少呢,是我们相信信号源输出的1v,还是相信我们adc采集的电压0.995v呢?这时候就可以使用卡尔曼滤波器来对采集的数据进行滤波处理。

2024-02-27 20:43:41 999

原创 xilinx除法器的使用

被除数位宽2-17,除数位宽2-17(被除数和除数位宽之和限制在23位以内)支持无符号或二进制补码有符号数。-1+(-2),及255+254=509,(111111101),低八位就是-3的补码11111101。1+(-1),即1+255=256,(100000000),低8位就是0的补码00000000。例如8位无符号数就代表的十进制数的范围为[0,2^n-1]。-1,二进制补码为11111111.(代表无符号数为255)-2,二进制补码为11111110.(代表无符号数为254)

2024-02-19 09:51:00 1894

原创 问题记录:关于xilinx不同模式的fifo计数器

平台:Vivado2018.3.芯片:xcku115-flva1517-2-i (active)最近在学习的过程中总结了关于xilinx的不同fifo的计数器。关于不同fifo的计数器表现的特征不一致。特此记录一下。

2024-01-26 15:39:00 585

原创 问题记录:关于vivado报错解决

ERROR: [Project 1-510] Parsing generated run data failed问题解决

2024-01-10 15:13:11 1432

原创 Xilinx的FIR滤波器IP的设计与仿真

Number of Coefficient Sets多个系数集,对于多系数过滤器,单个.coe文件用于指定系数集。采样率为50mhz,通带起始频率为100KHz,阻带起始频率为1MHz。在经过一段时间的仿真后,我们看到通过模拟产生的正弦波数据的高频分量在FIR滤波器的作用下只保留了低频部分。采样率为50mhz,通带起始频率为100KHz,阻带起始频率为1MHz。这里我们选择coe文件,我们直接从matlab中生成的coe文件。CONFIG通道用于选择活动的滤波器系数集。同样的,选择输入数类型,数据位宽。

2023-10-24 08:00:00 3081

原创 Xilinx DDR4 MIG 的调试

​DDR4介绍DDR4,即第四代双倍数据率同步动态随机存储器SDRAM。前面我们学习过DDR3,DDR2。那么DDR4相比他们又提升在哪里呢?新建BD工程:此部分为搭建PCIE控制DDR4的工程。

2023-10-19 18:05:31 6049

原创 matlabR2021b启动很慢和初始化时间很长解决

问题记录,在网上下载安装包后,按破解流程破解,发现软件启动时间很长。选择到你的licence目录下。我将破解文件的license粘贴到matlab安装目录下,新建了一个文件夹。选择到你的licence目录下。我将破解文件的license粘贴到matlab安装目录下,新建了一个文件夹。首先在安装文件夹中启动Activate MATLAB R2021b。查询原因为软件需要在启动是查询licence。启动软件发现会有很长一段时间的初始化流程。这里在matlab快捷方式下选择属性。打开软件,几乎秒就绪。

2023-05-15 17:23:46 3829

原创 关于xilinx使用PCIE实现FPGA的部分重配置实现(MCAP)

至此,部分重配置的工程就生成完毕,在生成出来的文件里面,在工程目录下会有两个imp的文件夹,里面会分别有静态逻辑和各自的重配置逻辑,我们将静态逻辑先烧写进去FPGA,之后就可以通过PCIE配置动态逻辑,关于MCAP的驱动的上位机,在Xilinx_Answer_64761__UltraScale_Devices这份文档中有详细的说明。另外,PCIE规范规定,系统上电后,复位信号必须在100毫秒内取消断言,并且PCIE端口必须在复位信号取消断言后不超过20毫秒准备好进行链路训练。设置完成后安装驱动文件。

2023-04-24 11:19:56 7378 6

原创 XILINX关于Adder/Subtracter加法器减法器 IP核的使用与仿真

Adder/Subtracter 模块可实现加法器 (A+B)、减法器 (A–B),以及可通过签名或未签名数据运行的动态可配置加法器/减法器。该功能能够以单个DSP48 slice方式实现,也能够以LUT方式实现。设置两个输入数据的数据位宽,设置计算方式为加法或者减法,设置数据输出位宽。仿真tb,可以看到,在设置为延迟4个时钟周期后,计算结果保存在输出端口上。第二页的配置主要是选型添加一些信号,这里值选泽勒时钟使能。控制通过添加器/减法器执行的操作(高=加法,低=减法)支持256位数据位宽输入。

2023-04-12 15:58:38 8213 2

原创 XILINX关于Multiplier乘法器 IP核的使用与仿真

速度优化使用乘法器原语来提高性能,面积优化使用mixture of slice和原语混合降低对DSP slice的使用。当两个输入操作数据都为无符号,且两个输入操作数都小于16位时,区域优化最有效。IP介绍乘法器,支持1到64位宽的输入和1到128位宽的输出。可以输入有符号和无符号数据。仿真tb,可以看到,在设置为延迟5个时钟周期后,计算结果保存在上。并行乘法器,用户自己输入A,B两个数据,乘法器输出计算结果。常系数乘法器,用户输入一个数据,乘以用户定义的一个常数值。平台:vivado21018.3,

2023-04-12 14:56:19 2449

原创 Vivado2018.3关于[Common 17-162] Invalid option value specified for ‘-runs‘.问题的解决

最近使用Vivado在2018.3上移植工程,在更新了IP后发现使用Run Synthesis命令后软件报出如下错误。点进IP核重新配置后发现还是报如下错误,[Common 17-162] Invalid option value specified for '-runs'.这里先将该IP重新重置(Reset Output Products),在重新生产IP(Generata Output Products)。芯片:xc7k325tffg900-2 (active)错误的原因是顶层例化的IP核找不到。

2023-04-12 10:47:28 8035 1

关于riffa的PCIE驱动

大家都在要这个资源,我放在这里供大家下载。

2023-08-30

ddr-test.zip

关于xilinx的ddr3的IP学习与仿真,添加了两个FIFO控制读写。

2023-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除