自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用UART 对ZYNQ 进行远程(在线)升级

本文介绍了如何使用ZYNQ的串口实现BOOT.BIN程序的在线升级。在Vivado工程中启用相关支持后,通过vitis裸机实现UART 升级。

2024-08-12 23:41:21 1637 12

原创 FPGA实现多路并行dds

多路并行dds,传统DDS的局限性在于输出频率有限。根据奈奎斯特采样定理,单路DDS的输出频率应小于系统时钟频率的一半。但是在很多地方,要使采样率保持一致,所以,为了提高采样率,可以采样多路并行dds技术,然后并转串输出,提高采样率。假如fs是100MHz,调用4个并行的dds,然后按照顺序将4路并行的dds拼接成一路(并转串),这样就相当于采样率是4*fs,即400MHz采样率下的数据。可以从上式中看出,4路dds的pinc(频率控制字)是一样,差别是在其相位差(poff)DDS0的poff是0;

2024-05-22 21:58:07 1823 8

原创 从零在FPGA 上实现OFDM(四)

数据加扰器的实现,OFDM,verilog代码实现

2022-07-25 20:14:37 1067 1

原创 FPGA 驱动HDC1080温湿度模块

FPGA 驱动HDC1080,HDC1080基本介绍与配置过程,以及FPGA 驱动过程

2022-07-21 22:02:20 1096 5

原创 从零在FPGA上实现OFDM(三)

OFDM 调制 PLCP 子层数据字段的生成

2022-07-14 22:27:23 1428

原创 从零在FPGA上实现OFDM(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结目的产生测试数据,并产生CRC32循环冗余校验,由于在 802.11a 协议中规定了使用 CRC32 作为循环冗余校验。一、数据模块产生通过在一定时间周期内,产生一定包长度的的递加数据给后续的模块提供测试数据1.数据模块说明:首先数据产生模块通过输入接口收到的数据包的循环周期,宝开头的位置,以及包的.

2022-04-28 21:17:54 992

原创 从零在FPG上实现OFDM(一)

目录前言一、OFDM介绍二、ODFM时域与频域变化1.时域变化:1.频域变化:总结前言最近有空学习了一些关于OFDM的类容,并且想准备在FPGA实现,所以准备记录下这一过程,准备从零在FPGA上实现其OFDM,为后续的一个小项目用OFDM无线传输视频做铺垫。一、OFDM介绍OFDM:正交频分复用(Orthogonal Frequency Division Multiplexing),是一种多载波系统,可以在多个正交的在载波上进行调制发射,通过扩展多个子载波实现大.

2022-04-28 19:41:50 1211

原创 HLS ap_fixed<W,I>赋值打印全为0解决办法

今天项目需要用HLS写一个神经网络,很久没用HLS了,先写了一个矩阵乘法,觉得思路那些都没得问题,但是就是打印出来的结果全为0 ,但是用int,数据就是正确的。所以就改数据的位宽,但是也没溢出,但是打印出来依旧全是0,而且直接给赋的值打印出来就是0,所以才确定是打印的错误。效果下...

2022-04-17 21:12:59 659 1

原创 基于AD9361的ASK调制与解调

ASK调制解调。数学原理:首先ASK调制解调原理很简单:用我们的发的数据去控制载波,我们这里是用的2ask,y = data *sin(w*t +pha) 或者 y = data*cos(w*t+pha)(一个乘法器)所以当我们的data是1时,我们发出的数据就是载波,当我们的data为0时,我们发出的数据就是0.所以ask的调制解调是非常简单的,重点是在其解调。解调方式:因为一般ask的调制方式有相干解调与非相干解调,我们这里就是用非相干解调(不再需要载波)。实现硬件:zedboar

2022-04-15 20:53:42 2463 1

原创 北斗信号捕获

信号捕获:所有的CDMA系统都会存在信号捕获问题,原因:1由于多个信号发射在共同的频率,只能通过不同的伪随机码(测距码)来区分。2:卫星与接收机之间存在多普勒平移,会导致载波频率发生变化。3:由于我们的数据都要与我们的伪随机码相乘,所以会导致信号的频谱展宽,功率下降,并且卫星与接收机的距离很远,接收到的信号往往是在噪声之中,所以我们都会进行信号的捕获,将信号从噪声中提取出来。捕获过程:1是三维捕获PRN码方向,通过不同卫星发射的不同PRN码;2是载波频率方向,3是伪码相位的方向PRN码搜索:穷举法,一

2022-04-01 17:04:26 3369 26

原创 北斗B1I测距码的产生以及matlab程序,FPGA程序

北斗介绍首先关于北斗卫星 B1I卫星的信号组成,通过matlab产生测距码。并且进行BPSK调制测距码编码器:首先解释测距码的产生:G1,G2都是11bit,并且有初始相位,01010101010,测距码的是由G2的不同抽头进行异或,然后再与G1序列的最低位进行异或,然后每次复位信号到来都要恢复到初始相位,并且G1,G2还要进行移位,G1移位:G1的第1,7,8,9,10,11进行异或,然后移到G1的最高位,G2移位:G2的第1,2,3,4,5,8,9,11进行异或,然后移到G,2的最高

2022-03-16 10:56:40 3568 2

原创 DDS原理以及MATLAB实现

DDS:Direct Digital Synthesis,是指信号发生器。DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。DDS原理:我这里介绍的是相位截断DDS。我们从图中可以看出其原理主要由4部分构成,相位增量,相位累加器,相位量化.

2021-12-30 16:03:38 5741 4

原创 FM调制解调以及MATLAB实现

首先FM调制时属于非线性调制中的一种,常见的非线性调制时FM(频率调制),PM(相位)调制FM调制:就是利用调制信号的变化去改变载波的频率,幅度保持不变,即载波信号的频率随我们调制信号的幅度变化而变化。首先我们先介绍一些通信原理上的基本得概念:现在FM调制就是我们将我们的基带信号替换位其φt,但是我们会在其基带信号的前面乘以一个调频系数,也叫调频灵敏度。这就通过我们基带信号的振幅,改变其载波的频率,这样就是实现了频率调制。下面我们假设基带信号为一个余弦波:上述就是其.

2021-12-29 22:34:25 14584 7

原创 基于ask 的调制解调 抽样判决与同步设计

这里写一个ask 的调制解调,首先是主要关于ASK在抽样判决的逻辑的撰写,:首先在没有接收到数据的时候,我们的收到的信号肯定的是比较小的值(因为噪声应该是比较的值)。所以我们这里要先设计一个开始逻辑,就是什么时候才是接收到数据,而不是空的噪声。思路:这里是对接收到的值进行一个累加,然后取平均值,再设一个门限值,如果这个平均值大于前一个门限值,就是代表有数据进来的,而不是全是噪音了,接下来就可以进行符号判别了。当检测到有数据输入后,我们就要开始取样判决了。这是一些自己画的波形:下..

2021-12-13 16:38:52 3195 5

原创 FPGA配置AD936X(一)

AD9361介绍:AD9361 是一款面向 3G 和 4G 基站应用的高性能、高集成度的射频(RF)AgileTransceiver™捷变收发器。该器件的可编程性和宽带能力使其成为多种收发器应用的理想选择。该器件集 RF 前端与灵活的混合信号基带部分为一体,集成频率合成器,为处理器提供可配置数字接口,从而简化设计导入。目的:通过搭建 AD936X 系列的基带接口框架,完成模拟数字的交换数据桥梁,也是真正做通信调制解调的算法根基,只有正确的数据交互才可以完成无线通信的调制解调(一):从如图所示的开始

2021-11-18 21:23:36 2209 7

原创 HLS FIR低通滤波器的实现

低通滤波器的实现: 1:滤波器的基本原理:简单的来说就是我们输入一个信号,里面有些我们不想要的频率,所以我们设置一个滤波器来滤除掉我们不想要的频率成分,然后再输出。数学表达式:y(n) = x(n) *h(n) [符号表示卷积] 。其频域则是Y(Z) = X(Z) x h(z) 。但是我们想要实现其卷积,我们不会用其频域的表达式,频域的表达式只是方便我们计算,但是实现还是要用其时域的卷积。我们将时域的表达式打开就是下面的公式。其中 x(n)为输入信号, h(n)为 FIR ...

2021-11-14 22:16:45 3813 1

原创 hls ask 调制

平滑滤波器的设计与实现(FIR)h(n):相当于平滑系数,采样率:相当于采样时钟,就是驱动查找其幅值的时钟载波频率:正弦波的周期是多少,每个采样周期采样点: 采样率 / 载波频率数据速率定义:已载波为载体的数据bit变化率,比如10个载波的周期是1个数据bit,那么bit率是载波频率的1/12.5这次我们用C++编写了一个模拟ask调制。本次设计中采样时钟使用 40MHz,数据频率 100KHz,载波频率 1.25MHz。既在 40MHz 的时钟下,每个载波周期内有 40MHz/1.25MHz

2021-11-11 23:28:32 1679

原创 HLS 任意精度ap_[u]fixed<W,I,Q,O,N>

头:ap_int.hap_[u]fixed<W,I,Q,O,N> u :unsignedW:总位宽,I:整数位可选参数Q:量化模式o:overflowN:N 在溢出模式为 WRAP 时有效Q:AP_RND:向正无穷舍入,其实就是舍去最低位,但是如果最低位是一个1,我们就要舍去最低位的值,并给高一位进位1AP_RND_MIN_INF:向负无穷(减小的值小值)舍入 ,舍去值要让值变得更小AP_RND_ZERO:往0 舍入,正数舍入后变小,负数舍入后变大,AP_RND_.

2021-11-10 22:47:39 2435 4

原创 FPGA中有符号数的计算

一:定点数定点数:小数的位宽是不变的数我们称之为定点数。定点数的构成{符号位,整数位,小数位}比如我们用10位表示小数,则相当于将1分成2^10次方,1024,每一份即就是1/1024 = 0.0009765625。又因为2的10次方有符号能够表示的数是(-1024 ~1023) 所以小数部分能够表示的数的范围是(-1~0.9990234375) -1024 x 0.0009765625 = -1 1023 x 0.0009765625 = 0.9990234375;这里强调我们...

2021-11-07 23:01:04 2676 2

原创 FPGA实现DDS

关于DDS的基本原理与ip核的使用首先DDS:即(Direct Digital Synthesis)我们一般可以使用xlinx的ip核,或者是先用matlab ,生成对应的波形与频率值,然后取点,将点导出来,存入block ram ,我们只需要到时只需要读点就可以生成对应的波形。另外更直接的办法就是直接用xlinx 的ip核,下面是我自己配置其ip核的步骤1、(1)、首先我们选择“iP catalog”,搜索栏中加入输入dds,,找到"dds complier" 。 (2)、双击其iP...

2021-11-07 20:53:51 2340

原创 解决在封装自定义IP时加入ila,或者其他ip核时出错的情况

在查阅很多资料后,明白了这个应该是软件bug,但是最终还是解决了问题我们只需要删除

2021-11-04 14:45:35 2526 4

原创 解决vivado2018.3 分析综合都没问题,但是生成比特流出错的问题

今天在听小梅哥的课时,代码写完,综合分析都没问题,但是就是最后生成比特流时出错了,就很疑惑,所以自己查看错误信息,发现只要加入一个.tcl文件就可以了只要在先建一个.tcl文件,然后加上这三句代码就可以了。set_property SEVERITY {Warning} [get_drc_checks NSTD-1]set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]set_property SEVERITY {Warning}

2021-04-29 14:44:53 5100 2

原创 3-8 译码器,与4-16译码器

学习了2选一多路选择器之后,记下来又跟着小梅哥学习了3_8 译码器,学习了一些语法知识,然后自己仿照3_8译码器写出了4_16译码器,以此提高自己的写代码能力。首先3_8译码器。就是很简单的3个输入,8个输出,因为3个输入,有8种排列组合。每一种输入的配列组合,对应着一种输出,这就是3_8译码器。相对应的4_16译码器,就是4个输入,其输入的排列组合方式有16种,每一种对应一个输出。其中3_8译码器的Verilog代码如下。其中因为out_put是在always块里面,所以一定要将其定义为reg类型

2021-04-22 21:11:36 7322 1

原创 跟着小梅哥初学FPGA ,vivdao开发平台,二选一多路选择器。

今天正式开始自己的FPGA自学之路,由于导师项目需要,xilinx ZYNQ 7系列的板子,vivado软件平台进行开发,所以自己也直接学习vivado软件开发的板子,我自己学习所用的开发板是xilinx ZYNQ 7010。我是一边看小梅哥的视频,一边看自己的开发板的教程来一步步学习,通过博客来记录学习,过程,也是自我的一种监督,初次接触FPGA,所写博客过程中肯定有很多不足,或者错误的地方,若有同行发现错误,忘指出,相互学习,共同进步。第一次是看了小梅哥视频后,自己重新编写二选一多路选择器。记录过程

2021-04-20 19:00:07 2551

原创 初学驱动之LED驱动

首先搭建环境5.2.1.1、驱动开发的准备工作(1)正常运行linux系统的开发板要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。编译成(2)内核源码树,其实就是一个经过了配置编译之后的内核源码。(3)nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器。...

2021-01-17 12:53:24 120

原创 Ubuntu16.04安装交叉编译工具链出现No such file or directory

Ubuntu16.04安装交叉编译工具链出现No such file or directory**考完研,休息了一段时间,一边准备复试,一边准备将学习过的嵌入式知识,今天重新安装交叉编译工具链,步骤都没问题,但是就是打印不出版本号,说明出问题了,百度了半天,发现自己的ubuntu 是64位的,编译工具链是32位的,所以要安装ia32-libs。然后百度安装32位的库,也一直报错,查了很久,发现需要换源这是我的一些步骤首先换源备份原来的源1 将以前的源备份一下,以防以后可以用的。sudo cp

2021-01-16 16:43:03 1206

原创 Linux操作系统的一些命令

首先是绝对路径:路径是用来标识一个文件在操作系统的文件系统中的储存位置。pathname路径:path名字:name常用命令:( 1 )ls    (list,,列表)作用:用列表的方式把当前文件夹下的文件显示出来ls -a:显示所有文件包括隐藏文件ls-l:显示文件详细信息ls -a -l   ls -l -a  ls -la  ls-sl        这4个都...

2018-08-21 22:39:59 141

Multiboot实现程序程序跳转

实现multiboot基本原理 ,实现程序程序跳转已经实现,即使用JATG工具,实现地址偏移,并让两个程序实现跳转,,程序可到资源中心下载。

2024-08-13

北斗卫星信号捕获,包括卫星信号如何产生,包括PRN码搜索,频率搜索,码片搜索

模拟了北斗卫星发送的数据,用来检测代码,通过搜索到卫星。北斗卫星信号捕获,包括卫星信号如何产生,包括PRN码搜索,频率搜索,码片搜索

2022-04-28

B1Iverilog实现

用纯verilog实现测距码的产生,PN码

2022-03-16

北斗B1I测距码matab程序

北斗B1I测距码的产生,简单明了,方便一直

2022-03-16

空空如也

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

TA关注的人

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