自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (7)
  • 收藏
  • 关注

原创 短时相关+FFT捕获方法的MATLAB仿真

对于算法类的工程,FPGA设计,仿真先行,再没搞清楚整个信号处理原理和流程之前,切莫盲目开始FPGA RTL。对于导航接收机而言,接收机的第一步就在于能够捕获到信号,才能进行后面的跟踪、解算等等。笔者所做的《从零开始研发GPS接收机》的工作中,使用的方法就是这种短时相关+FFT的捕获方法。从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

2024-09-04 20:30:48 994

原创 GPS跟踪环路MATLAB之——完整跟踪环(锁频环+锁相环+码环)

从事卫星导航基带处理的童鞋都知道,跟踪环路属于整个卫星导航信号处理中的精华之中的精华。接收机通过跟踪环在本地能够准确的复现接收到的信号的载波和伪码,是后续能够正确定位解算的关键步骤。整个跟踪环路将分成三小节,数字锁频环、数字锁相环和码环。其中数字锁频环和锁相环属于载波跟踪环。笔者所做的《从零开始研发GPS接收机》的工作中所使用的跟踪环路也将会在这里提到从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

2024-09-03 23:20:59 665

原创 GPS跟踪环路MATLAB之——码环(码元同步)

从事卫星导航基带处理的童鞋都知道,跟踪环路属于整个卫星导航信号处理中的精华之中的精华。接收机通过跟踪环在本地能够准确的复现接收到的信号的载波和伪码,是后续能够正确定位解算的关键步骤。整个跟踪环路将分成三小节,数字锁频环、数字锁相环和码环。其中数字锁频环和锁相环属于载波跟踪环。笔者所做的《从零开始研发GPS接收机》的工作中所使用的跟踪环路也将会在这里提到从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

2024-09-03 23:15:15 954

原创 GPS跟踪环路MATLAB之——数字锁相环

从事卫星导航基带处理的童鞋都知道,跟踪环路属于整个卫星导航信号处理中的精华之中的精华。接收机通过跟踪环在本地能够准确的复现接收到的信号的载波和伪码,是后续能够正确定位解算的关键步骤。整个跟踪环路将分成三小节,数字锁频环、数字锁相环和码环。其中数字锁频环和锁相环属于载波跟踪环。笔者所做的《从零开始研发GPS接收机》的工作中所使用的跟踪环路也将会在这里提到《从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

2024-08-11 11:04:09 879

原创 GPS跟踪环路MATLAB之——数字锁频环

从事卫星导航基带处理的童鞋都知道,跟踪环路属于整个卫星导航信号处理中的精华之中的精华。接收机通过跟踪环在本地能够准确的复现接收到的信号的载波和伪码,是后续能够正确定位解算的关键步骤。整个跟踪环路将分成三小节,数字锁频环、数字锁相环和码环。其中数字锁频环和锁相环属于载波跟踪环。笔者所做的《从零开始研发GPS接收机》的工作中所使用的跟踪环路也将会在这里提到《从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

2024-08-11 10:40:12 1007

原创 GPS L1信号捕获以及载噪比估计matlab

对于算法类的工程,FPGA设计,仿真先行,再没搞清楚整个信号处理原理和流程之前,切莫盲目开始FPGA RTL。对于导航接收机而言,接收机的第一步就在于能够捕获到信号,才能进行后面的跟踪、解算等等。笔者所做的《从零开始研发GPS接收机》的工作中,需要首先确认射频ADC是否正常工作,检测的手段就是通过FPGA采集ILA数据首先在MATLAB上进行捕获。因此我们需要一个MATLAB程序,首先能够对自己生成的信号能够捕获,然后就可用于采集实际信号来判断ADC中是否包含了卫星信号。

2024-08-05 12:47:27 653

原创 CPRI协议的理解——CPRI中的扰码

CPRI中有两种情况会需要用到扰码,一种是在8B10B线路编码的速率上数据添加了扰码。一种是64B66B编码。

2024-06-17 14:49:18 854

原创 CPRI协议理解——控制字内容

接下来开始捋一下控制字的内容。汇总就是这个表格了。看起来似乎很多内容,但有些实际上是一些厂商特定的控制信息,这些是不需要太关注的。需要关注的只要有如下:同步相关:Ns = 0这一行慢速C&M:Ns = 1这一行版本、控制信号、P指针:Ns = 2这一行。FastC&M就是 Ns=P指针到63了这一行。其他的内容并不是通用的,或者保留的那就不需要关注。同时还要关注下Z表示法与XsNs标志的对应关系。

2024-06-17 11:20:04 850

原创 CPRI协议理解——帧格式中的计数标识

CPRI协议是一个流式协议,数据不间断的传输,在我们要了解CPRI到底要传输种类繁多的内容之前。我们可以先了解CPRI的一个传输框架,我们暂且不管到底传输了些什么实际内容,我们先从最简单的计数器开始讲起。CPRI的数据就是通过这些计数器来控制将不同数据放在指定的的计数下面流式传播。而接收端也是解出计数器,根据计数器的特定位置解出对应的数据,看起来不难是不是。

2024-04-20 18:48:18 740

原创 Aurora 协议学习理解与应用——Aurora 64B66B协议学习

Aurora 协议描述了通过 Aurora channel传输用户数据,该通道由一个或多个 Aurora lane组成。每个 Aurora lane都是串行数据连接,可以是全双工,也可以是单工。通过channel进行通信的设备称为channel partners。Aurora 接口允许用户应用程序通过 Aurora 通道传输数据。每个 Aurora 接口上的用户接口未在本规范中定义。Aurora通道包含下面这些属性:1、数据通过 Aurora 通道以帧的形式传输。

2024-04-17 13:26:11 3639

原创 Aurora 协议学习理解与应用——Aurora 8B10B协议学习

Aurora 8B/10B 协议描述了通过 Aurora 8B/10B Channel传输用户数据。一个 Aurora 8B/10B Channel由一个或多个 Aurora 8B/10B lanes组成。每个 Aurora 8B/10B lane都是全双工串行数据连接。通信的双方称为Partners。与其他例如SRIO称为Master和Slave不同,这里Partners说明双方是对等的关系。Aurora 8B/10B 协议接口通过用户接口与用户应用程序传输数据和控制。

2024-04-16 21:01:54 2582

原创 VB语言回忆录——到了是该放弃VB语言的时候了么

4年前(2020年),微软 NET 团队在开发者博客中宣布,他们虽然还会继续在 .NET 5.0 上支持 Visual Basic ,但不再将 VB 作为一门独立的语言发展。VB这个语言我从接触到现在也将近十七八年了,虽然一直都是停留在初级的阶段,但作为一个自己的纯爱好,虽然技术上一直没有太大的进步,但也一直没有生疏,它一直在我的工作发挥着作用,甚至是锦上添花。

2024-03-10 14:27:17 1117 1

原创 vivado如何生成一个模块的带原语的网表

有时候我们想生成一个网表文件,但vivado默认是会生成一个dcp的文件,加密性时非常好的,但又过于黑盒子了,而通过原理图按钮只能看到原理图图形,如果将原理图生成全部是原语的文本呢。

2024-02-29 08:30:07 698

原创 vivado的一个报错记录(找到指定的cell)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-01-31 11:54:32 563

原创 Gowin FPGA的使用——GW2A系列rPLL

使用GUI来配置rpll还是很明了的,这个不需要太多说明就能直接使用了,我主要是要搞清楚原语的使用以及rPLL的内部结构。

2024-01-17 16:06:38 1089

原创 LTPI协议的理解——4、LTPI链路初始化以及运行

整个LTPI协议实现过程中,我认为最复杂的也就是LTPI的链路建立的过程 以及异步信号(特别是IIC)的传输事务的控制和响应以及对IIC接口线的操作。我们前面已经大致提到了各个阶段的帧定义,那么接下来我们继续来理解整个LPTI协议的初始化到运行的流程是怎样的LPTI协议的实现,主要是要注意各种状态的跳转,各种异常的检测,以及一些调试分支都要考虑到,所以协议都要细细的研读,否则很慢把所有细节都把握清楚。

2023-12-29 11:41:52 1908

原创 LTPI协议的理解——2、LTPI实现的底层架构

前面讲了LTPI的定义和大概结构,接下来继续理解LTPI硬件实现的底层架构1、类似于高速收发器中需要字节对齐,K码检测,这个协议也涉及到这些2、用到了8B/10B编码,那么帧内容应该都是以字节为单位进行组帧,同时在帧的头部设置为K comma用于判断是什么类型的帧,尾巴加上CRC校验,CRC校验的内容是不包含K Comma的其他内容2、GPIO UART这些因为是直通的,因此可以直接进行采样3、而I2C和DATA BUS这些是需要交互的,不能像GPIO UART那么简单的操作。

2023-12-29 09:19:32 2021

原创 LTPI协议的理解——3、LTPI协议的帧定义

前言各种帧格式速率协商阶段能力确认阶段运行阶段总结手册中各种帧写的位置有点乱,不好查询,这里进行一下汇总LTPI协议就是通过上述帧来传输数据的,一开始是使用检测帧来互相交换速度信息,通过速度帧来协商确认,选定一个各自都存在的最高速度来运行LVDS信号,速度协商完成之后。开始发送能力广告帧,交换两端的能力信息,然后SCM发送配置帧,如果HPM的能力满足配置帧的话则发送有效接受帧,这样两端就进入了运行状态。

2023-12-28 15:33:37 1255

原创 LTPI协议的理解——1、LTPI协议的定义和结构

定义DC-SCM 2.0 LTPI 结构GPIO通道I2C/SMBus通道Uart通道OEM通道数据通道总结LTPI (LVDS Tunneling Protocol & Interface,LVDS 隧道协议和接口)是一种协议和接口,设计用于在 HPM 和 SCM 之间传输各种低速信号。它不仅支持 GPIO 的隧道传输,还支持 SMBus、I2C、UART 等低速串行接口的隧道传输。它还可以通过额外的专有 OEM 接口进行扩展,并为 HPM CPLD 和 SCM CPLD 之间的原始数据隧道提供支持。

2023-12-28 14:50:07 3307

原创 Gowin FPGA工程modelsim功能仿真和时序仿真

下面记录一下modelsim功能仿真和时序仿真的操作步骤,学习新器件的第一步,当然是要知道怎么进行IP核的仿真了。

2023-08-23 13:05:51 2196 1

原创 Xilinx DDR3学习总结——4、添加读写功能

前言APP端口读写测试前面modelsim已经仿真成功了了DDR3的初始化,但其他端口都设置成了0,现在就需要对其读写端口进行操作了。

2023-08-12 20:53:03 897

原创 Xilinx DDR3学习总结——3、MIG exmaple仿真

前言仿真前面我们直接把exmaple例程稍加修改就进行了抢先上板测试,证明了MIG模块工作时正常的,但后续如果需要添加读写功能的话,还是需要先进行仿真,因此我们还是先要把modelsim仿真弄起来。

2023-08-12 20:08:42 960

原创 Xilinx DDR3学习总结——2、MIG exmaple直接上板

前言修改内容上板上一篇,我们生成了一个example,example的测试激励看起来都比较复杂,仿真先不看,实际上,这个example稍加改动就可以直接上板了。这里我们就是查看MIG IP输出的init_calib_complete信号。

2023-08-12 19:34:35 1336

原创 Xilinx DDR3学习总结——1、MIG核设置

前言开发板 DDR信息MIG 设置话说之前从来没有使用过DDR,工作中的项目都是流式处理的,没有一个大存储的需求,应该图像处理中DDR用的会比较多一些,但是一个这么常用的东西不预先学习一下也不像话,在这里,也就记录一下学习的过程。参考其他优秀的博主的文章,现学现会。

2023-08-12 16:52:55 1437

原创 Gowin FPGA学习记录——前言

现在用国产FPGA的厂家是越来越多了,和以前的同事聊天,很多公司都陆陆续续有了一些使用国产FPGA的项目,用的人多了,自然而然整个生态就建立起来了。工作一两年中,也有国产FPGA厂家过来推销,虽然说的怎么怎么好,但我们都知道国产的东西,那肯定是不怎么稳定的,还是让别人先去当小白鼠吧,因此国产FPGA基本上不怎么受待见。现在FPGA的这种发展势头在十年前那是不敢想象的,记得我刚毕业的时候,还有个叫京微雅格的国产FPGA公司,那应该是我最早听到的国产FPGA的名字了。4、IP核的使用学习。

2023-07-13 23:07:38 774

原创 xilinx srio ip学习笔记之axistream接口

srio 的IQ接口都是基于axistream的,以前没怎么用过axistream的接口,或者说没怎么用过复杂条件下的axistream的接口,今天就来总结和改造一下包括以下信号axistream 一边是发送端,一边是接收端。接收端的时序还比较好判断,只要判断tvalid准备好了,只要发送一个tready,那么tvalid和tready同时为高的时候,ireq_tdata就可以采集下来。

2023-02-15 10:28:39 1420 3

原创 LMK04828时钟芯片配置——配置理解

主要理解了下SYSREF的生成,因为这个比较重要。

2023-02-05 22:25:42 8938 6

原创 LMK04828时钟芯片配置历程——SPI接口

虽然这么个简单的SPI的接口折腾了一两天才调通,但确实对于一个新器件来说,还是需要去关注它的数据手册,了解清楚一点在进行调试比较好。

2023-02-02 17:44:50 4055 3

原创 ADI demo PS工程的编译-以adrv9371x_zc706为例子

接《ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin》这篇。导出XSA文件,接下来使用vitis软件建立工程,话说vitis软件我也是第一次使用,自从2019版本之前好像还都是SDK,那个还用过一些,不过看网上说VITIS好像也差不多但毕竟我手头上并没有官方的开发板,只能说编译成功了,功能对不对也不知道。但毕竟编译成功了也是成功了一小步,后续计划将这套程序挪到我的ZYNQ7030中,而且只保留SPI部分,还是需要对程序进行慢慢理解的。

2023-01-15 21:57:00 1628

原创 ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin

之前一篇ADI demo工程的编译是ADI不推荐的方法,而且确实在后面NO-OS的软件部分的造成了麻烦,手动添加源代码文件总会发现不是缺了这个就是缺了那个。显然不是很方便而ADI官方是说然后分为Linux环境和Windows环境Linux的暂时不研究,先看看Windows下面的既然官方推荐用Cygwin,那我们也还是先试试这个吧,后面有时间看看 gnuwin 这个行不行所以说官方推荐的实际上还是最方便的,只是需要一个Cygwin工具而已。

2023-01-15 15:43:05 909

原创 学习理解10G Ethernet Subsystem之IEEE1588

1588大多是走在报文中,主要通过一些报文交互来完成同步过程,对于设备的要求分类和状态机的运用,让整个系统可以知道自己处在什么状态,也可以手动设置自己的同步优先级顺序。1588简单来说是在用端到端的报文交互来确认彼此状态,计算环路时延然后进行同步,在这个过程中有两个假设:1.在时钟源设备和受时钟设备之间,网络报文传输时间是对称的。也就是说一个报文从时钟源设备到受时钟设备的传输时间等于报文从受时钟设备到时钟源设备的传输时间相同。2.在 PTP 报文交换过程当中,本地时钟的漂移可以忽略不计。

2023-01-12 23:14:55 1450

原创 xilinx srio ip学习笔记之srio example

前面对SRIO的理论有了初步的理解,现在急需要通过理解例程并且修改例程来建立自信心了。学东西确实是需要有一种任务驱动才能学的快,以前也想通过自学学习SRIO,但就是没有动力,但有了任务驱动之后,确实学习的效率高多了。

2023-01-12 18:05:35 2709

原创 xilinx srio ip学习笔记之再识srio

这段时间,随着对SRIO的学习,又有了更深的一点认识,不像一开始这么慌张了SRIO的协议有一千来页,一个初学者是不可能一开始就去读协议的,那得学到猴年马月呀,为了避免从入门到放弃,得快速的学习才行,不仅要看明白官方的例程,同时还要自己动手改改才行,这样才能建立信心。1、https://www.cnblogs.com/liujinggang/p/ 这位大佬对SRIO估计已经玩转的非常深刻了,他的系列文章实在是太详细了spm=1001.2014.3001.5502 这位大哥的系列文章也还不错。

2023-01-12 11:17:48 3038 5

原创 xilinx srio ip学习笔记之初识srio

因为工作原因,需要对rapidio 的协议进行了解,在xilinx的IP核中,是对应着Serial RapidIO Gen2 这个IP核。因为之前从来没有接触过这个IP核,因此希望像之前学习JESD IP那样,一开始从xilinx的example开始入手以上就是对srio ip example的一个直观的认识,希望后面慢慢能够加深其理解。

2022-12-29 10:56:10 2654

原创 ADI demo PL工程的编译-以adrv9371x_zc706为例子

最近在研究AD9371,ADI官网上是提供了很多示例工程的,但苦于只有一些tcl脚本,一直都不清楚要怎么搭建工程,经过一天的摸索。终于搞清楚要如何搭建一个AD9371的工程的步骤主要是要参考这篇文章:Xilinx auto Tcl build 这个章节,尽管官方不推荐用这种方法,但实际上这种方法最方便了首先vivado的版本最好还是跟例程一致找到adi_env.tcl文件,这里说了vivado2021.2版本。可能改以下版本用其他版本也可以,不过我没去试了}具体于我这里,我输入以下指令。

2022-11-29 17:20:47 893

原创 Xilinx selectIO 资源的使用——input方向

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2022-10-13 17:05:06 2164 1

原创 FPGA开发技巧备忘录——Vivado 自动日期版本号

我们在编译FPGA工程的时候一般需要对版本号的更新,一般来说都会有一个日期或者时间的版本标识,在上板调试的时候用于表征当前版本确实已经更新成功,或者作为FPGA发布版本的标识等等。但有时候我们有时候会忘记更新版本号,从而导致时间的浪费。下面我们就是要解决这个痛点,利用vivado的tcl功能自动进行日期版本号的更新这个小技巧解决了每次编译需要手动更新编译日期的问题。

2022-10-07 21:33:24 3165 3

原创 Intel Cyclone 10 GX 收发器的时钟网络

前面我们提到了实际在代码设计中,CMU PLL、ATXPLL和FPLL是作为IP核需要我们自己去添加和连线的下面以Advanced Transmit (ATX) PLL为例。

2022-09-07 22:57:50 999

原创 Intel Cyclone 10 GX 收发器的初步认识

目标芯片: 10CX220YF672I5GIntel Cyclone 10 GX 器件提供 6, 10 或 12 个收发器通道。每个收发器 bank 有高达六个收发器通道。收发器 bank 是一个基础单元,包含与器件的高速串行收发器相关的所有功能模块。每个收发器 bank 均包含四个或六个收发器通道10CX220YF672I5G这个芯片包含了10个收发器通道,那应该就是如下图所示。...

2022-08-27 09:01:09 938

原创 Intel FPGA的JESD204B例程的搭建

尽管JESD204B不分Xilinx还是Intel,但两家的IP还是有一些差别的,不提前研究的话也不太可能能直接上手,这里,我希望和当年研究Xilinx公司JESD204B一样,能够细致的掌握那么首先就从搭建JESD204B的例程开始吧。

2022-08-24 23:35:45 1731

《FPGA信号处理系列文章——多相滤波器解决Xilinx工程问题》中的COE文件

https://myfpga.blog.csdn.net/article/details/122265963 中的COE文件

2022-01-01

P码相关处理文档.rar

GPS基带P码处理总结——几个关键的说明和重要的参考文献 https://blog.csdn.net/gzy0506/article/details/120921786 中的附件

2021-10-24

serdes_12g.rar

https://blog.csdn.net/gzy0506/article/details/120805043 Serdes系列总结——Xilinx serdes IP使用(三)——12G serdes 的附件

2021-10-17

SERDES_10G.rar

https://blog.csdn.net/gzy0506/article/details/120804423 Serdes系列总结——Xilinx serdes IP使用(二)——10G serdes 的附件

2021-10-16

SERDES_3G.rar

https://blog.csdn.net/gzy0506/article/details/120803797 Serdes系列总结——Xilinx serdes IP使用(一)——3G serdes的附件

2021-10-16

AD9364下变频链路仿真.rar

https://blog.csdn.net/gzy0506/article/details/120730465 所描述的matlab代码

2021-10-13

ise14.5 和vivado2013.3 通用LICENSE

本人已经使用1-2年了,一直在使用,请放心

2015-08-02

空空如也

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

TA关注的人

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