自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 时钟芯片LMK04828调试记录

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

2024-07-22 18:02:13 379

原创 编辑工具GVIM功能展示

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

2024-07-22 16:45:53 84

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

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

2024-07-22 15:34:22 166

原创 验证Vivado布局布线不变

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

2024-07-22 14:39:21 485

原创 关于普通接口转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 854

原创 调频信号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 577

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

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

2024-06-25 23:18:21 475

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

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

2024-06-03 23:38:27 570

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

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

2024-05-29 21:02:48 423

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

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

2024-05-29 20:06:29 911

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

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

2024-05-24 10:32:36 637

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

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

2024-04-17 14:14:52 1290

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

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

2024-04-15 17:46:19 307

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

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

2024-04-15 16:59:21 521

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

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

2024-04-10 11:59:54 752

原创 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 1573 2

原创 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 946

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

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

2024-03-19 11:36:35 1272 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 594

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

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

2024-02-29 10:19:04 1448

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

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

2024-02-27 20:43:41 816

原创 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 1397

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

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

2024-01-26 15:39:00 357

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

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

2024-01-10 15:13:11 794

原创 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 2039

原创 Xilinx DDR4 MIG 的调试

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

2023-10-19 18:05:31 3337

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

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

2023-05-15 17:23:46 3297 1

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

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

2023-04-24 11:19:56 4628 4

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

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

2023-04-12 15:58:38 5021

原创 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 1782

原创 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 4950 1

原创 XILINX关于DDR2的IP的读写控制仿真

最近没事。看了一下ddr2的读写访问。平台:ISE芯片:V4,XC4VLX25,ff668,-10语言:VerilogHDL参考文件:ug086.

2023-03-24 17:21:10 1270

原创 XILINX关于DDR3的IP学习

一次从存储单元预取8-bit的数据,在I/O端口处上下沿触发传输,预取8bit也就需要4个时钟周期,所以DDR3的I/O时钟频率是内部核心频率的四倍,由于是上下沿都在传输数据,所以实际有效的数据传输频率达到了核心频率的八倍。所以,对于200mhz核心频率的ddr3-1600其IO时钟频率为800MHZ左右,有效的数据传输频率为1600mhz。DDR3的时钟频率是核心频率的4倍。因为DDR是利用时钟的上升沿与下降沿均传输数据,所以DDR芯片的工作频率(时钟引脚的频率)为等效频率(传输频率)的一半。

2023-03-13 11:43:17 1211

原创 VIVADO常见的TCL命令总结-持续更新

总结一下vivado在使用过程中常见的tcl命令。

2023-03-09 15:53:28 1866

原创 Xilinx关于Aurora IP核仿真和使用

平台:vivado2017.4芯片:xc7k325tfbg676-2 (active)关于Aurora的开发学习。使用xilinx官方提供的IP核。官方资料,pg046-aurora-8b10b.pdf和pg074-aurora-64b66b-en-us-12.0.pdf。

2023-01-17 14:52:42 6140 1

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

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

2022-12-30 17:13:00 12801 6

原创 问题记录:关于WinDriver和CVI驱动PCI读写执行速度对比

平台:ise14.7,Win driver10.21,Visual Studio 2015,LabWindows CVI 2013操作系统:Windows7硬件设备:PCI板卡最近在开发过程中,作为一个逻辑开发人员。需要在PCI总线上映射其他接口时序。在写入周期期间将PCI总线上的写入接入其他接口上,在读取期间将PCI总线上的读取时序接入其他接口上并添加初始化延迟16个周期。在使用Windriver驱动开发,和CVI驱动开发测试硬件的读写时发现了一个现象。在CVI中插入读写BAR1空间代码。下面说明一

2022-12-05 14:39:48 601

原创 Windriver驱动开发工具使用快速入门

平台:ise14.7,Win driver10.21,Visual Studio 2015操作系统:Windows7硬件设备:PCI板卡最近在开发过程中,作为一个逻辑开发人员,在有的的情况下需要自己快速验证逻辑正确性。我使用WinDriver来作为驱动开发软件进行简单调试硬件设备。适合我们这种初学者使用,我们不需要设计复杂的驱动程序,就可以验真硬件的正确性。今天我们使用WinDriver来进行PCI的简单访问,在使用WinDriver生成简单的驱动代码,来对硬件进行连续读写访问。这里省略FPGA关于PCI开

2022-12-03 11:50:28 3274 1

原创 XILINXPCIE关于xapp1052的仿真和使用

平台:vivado2017.4芯片:xc7k325tfbg676-2 (active)关于PCIE的开发学习。使用xilinx官方提供的IP核。第一种方式是基于PCIE_PIO的分析,可以实现简单的读写功能。使用7 Series PCI Express v3.3 IP core 的设计,使用方法我已经放在上一个博客之中。(294条消息) PCIE实现PIO模式寄存器读写调试记录_hy_520520的博客-CSDN博客_pcie接口调试第二种方式是使用XAPP1052,其作为最古老的一种开发方式,可以让使用者

2022-11-18 20:10:54 4218 2

原创 XAPP1171和AXI-CDMA使用仿真

平台:vivado2017.4芯片:xc7k325tfbg676-2 (active)关于xilinx的AXI Central DMA Controller。简称CDMA,关于CDMA,在xilinx官方网站上是这样对其介绍的。Xilinx LogiCORE™ IP AXI Central Direct Memory Access (CDMA) 内核是与 Vivado® Design Suite 一起使用的 Xilinx 软 IP 内核。AXI CDMA 使用 AXI4 协议在内存映射的源地址和目标地址之间

2022-11-11 11:55:35 1597

关于riffa的PCIE驱动

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

2023-08-30

ddr-test.zip

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

2023-03-09

空空如也

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

TA关注的人

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