自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 资源 (25)
  • 收藏
  • 关注

原创 Jesd204b中的参数M

目前的高速ADC/DAC器件普遍采用JESD204B协议,204b参数中有个参数M有点令人费解,M的定义如下:M is the JESD204B parameter for converters per link对于某些adc、dac,M基本上就表示几个adc、dac核,对于某些adc、dac,M可能会又各种值,这对我们选择模式造成了一定困扰。之所以对于一款adda器件,M会各种变化,是因为现在的adda器件除了基本的模数数模转换功能,还包括了一部分dsp功能,特别是ddc、duc,即数字下变频

2022-04-28 23:44:08 2920 3

原创 什么是最佳采样

众所周知,对于低通信号,假设其频谱范围为0<f<fh0<f<f_h0<f<fh​,根据奈奎斯特采样定律,必须满足fs≥2fhf_s\geq2f_hfs​≥2fh​,才能保证不会发生混叠。对于带通信号,假设其频谱范围为fl<f<fhf_l<f<f_hfl​<f<fh​,根据香农采样定律,必须满足2fln≤fs≤2fh2n+1\frac{2f_l}{n}\leq f_s\leq \frac{2 f_h }{2n+1}n2fl​​≤f

2022-04-15 22:29:58 1332

原创 复数滤波器转为实数滤波器

在通信雷达等设计中,理论推导中经常用到复数滤波器,比如通道均衡,就需要以一个理想通道为参考,每个通道通过一个复数滤波器,减小通道内幅相随频率的变化,使通道接近理想。通常需要将复数滤波器转为实数滤波器才容易实现。下面推导如何将复数滤波器转为实数滤波器。设输入信号表示输入信号实部即 I 信号,表示输入信号虚部即Q信号滤波器系数表示滤波器系数实部,表示滤波器系数虚部从而原理框图如下图所示。可以看出对于一个N阶的复数滤波器,通常需要用4个N阶的实系数滤波器实现,所以复数滤波器是很

2022-04-14 23:22:54 2932

原创 verilog中的for循环(以FIR分布式算法DA实现为例)

verilog中的for循环(以FIR分布式算法DA实现为例)verilog中有几种循环语句,如for,while,repeat,forever等,for循环是唯一可综合的。在verilog中使用for循环,和在c语言中不一样,只需要记住一点,即verilog中for循环相当于复制展开,记住复制展开这个要点,就能很好理解复杂的代码。先看下面这段代码,一时不好理解,抓住复制这点,重新写一下always@(posedge clk or posedge reset)begin:DA integer k,

2022-04-13 22:39:36 3588

原创 xilinx中FIFO和BRAM实现串并转换的差异

FPGA中经常需要串并转换,比如处理后的数据是16位,而接口(如rapidio)需要64位发送,此时我们就需要串并转换,实现16位入64位出。同样的,有时我们也需要64位入16位出。在进行串并并串转换时,最常使用的就是FIFO和RAM。对于FIFO,假设8位入32位出,那么输出的32位并行数据,先进入FIFO的在高字节,后进入FIFO的在低字节,如下图所示。先后进入FIFO的是8‘h01,8'h00,8'h11,8'h10,当这四字节数据写入FIFO后,读出的32位数据应该是32’h01_00_11_1

2021-07-29 23:41:03 1970

原创 vivado下ECO操作-不重新综合实现修改属性并生成.bit

ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要

2021-07-28 23:06:53 2900 2

原创 vivado 时序例外约束

在不改变代码情况下,时序例外约束可以说是vivado中满足时序要求最有效的方法。因为vivado默认所有时钟路径之间都是同步的,会尝试分析和满足所有的路径。通过设置时序例外约束,告诉vivado软件不需要分析和满足某些时序路径(通常异步),vivado就会尽量去分析和满足真正的同步时序路径。不过一定要注意,在进行时序例外约束时,一定要确保做了亚稳态处理,比如打两拍、异步FIFO、双端口RAM等,或者能确定约束路径发生亚稳态也没关系(比如vio)常用的时序例外约束包括三个命令set_clock_gro

2021-07-27 23:48:01 2976 2

原创 xilinx建议的复位准则

1.尽量少用复位FPGA提供专用的全局复位置位信号GSR,在配置结束后,寄存器状态初始化到设定值或者默认逻辑零状态控制路径可能需要复位,数据路径通常不需要复位使用功能仿真可判断是否需要复位少用复位整体上改善性能,减小面积和功耗2.必须复位时采用同步复位同步复位可直接映射到FPGA架构中的更多功能器件DSP48、块RAM只提供同步复位3.确保使用高电平有效复位因为XILINX内SLICE和内部逻辑等为高电平复位有效,用低电平需要反相器4.避免...

2021-07-25 23:51:41 827

原创 使用FFT实现有理数采样速率转换

为了实现有理数I/D采样率转换,通常的做法是先进行I倍插值,然后低通滤波,滤波器的截止频率为min(pi/I,pi/D),然后进行D倍抽取。不过由于滤波器通常是近似的,恢复出的信号可能不是太好,比如会有振铃等。可以采用基于频域FFF/IFFT方法实现采样率转换,步骤如下(假设采样率转换R=I/D):1.选择一个k*D个采样值块2.在上面选择的块的所有采样值之间插入(I-1)个零点3.计算长度为N=k*I*D的FFT4.在频域使用低通滤波器5.计算长度为N=k*I*D的IFFT6.

2021-07-10 22:50:36 611

原创 matlab对ADC动态性能进行分析

对于ADC采样数据,通常需要进行动态性能分析,测量一些指标如信噪比SNR、信纳比SINAD、无杂散动态范围SFDR等。通常的做法是通过信号源输入一特定频率点频信号,然后对采样数据进行FFT变换,找出主频,各次谐波以及直流并分别求出其信号能量,然后按照定义求各种指标。这一过程在几年前可能需要自己编写代码实现。好在MATLAB后面的版本(大概2014a之后就有了吧,具体没查过)提供了几个函数,使得测量ADC性能指标异常容易。MATLAB提供的函数包括:函数 说明 snr ...

2021-07-04 23:31:59 2914

原创 matlab三维绘图

三维绘图即包含三个变量,通常分为两种:1)一个独立变量t,两外两个变量x,y随t变化。比如曲线的参数方程描述2)两个独立变量x,y,第三个变量z随x,y变化。比如z=x^2+y^2三维绘图函数主要有plot3、mesh、surf、contour,此外还有一些辅助函数meshgrid、alpha等1.plot3plot3主要用于三维线绘图,和plot基本一样,区别就是plot3每个点由x,y,z决定,而plot每个点由x,y决定。t=0:0.1:10;x=cos(2*t);y=.

2021-07-03 18:21:53 6844

原创 matlab 使用fprintf打印度数符号

写程序中碰到一个问题,即想在matlab输出度数符号°和温度符号°C,一时不知道怎么弄。网上查到的都是画图的时候,通过text命令使用'/circ'在matlab的figure做标注。试着直接从网页上一个温度符号到fprintf函数里,竟然能工作,虽然不太好看,勉强能用了。>> str='°C';fprintf('%s\n',str);°C>> size(str)ans = 1 2>> [abs(str(1)) abs(str(2))

2021-06-24 00:23:08 5915

原创 8b10b的理解

8b10编码的作用是为了保持直流平衡。简单说就是发送的串行数据流中,不能出现持续的1或这0,且1和0的个数最好相等。那么在选择编码映射方案时,为什么不选择8b9b了。如果选择8b9b,为了保持直流平衡,只能在9b中选择4个0、5个1,对应的是5个0、4个1,共C94 =126种方案,显然无法满足。那么只能选择8b10b了。在10b中,5个0 5个1共有C105 =252种,比28 =256仅仅少了4个,所以8b不能完全映射到01个数完全相等的10b。如果8b能完全映射到01个数完全相等的10b,那么就不

2021-06-23 00:01:56 1645

原创 matlab去掉for循环方法

最近学习matlab分析和处理几个数据(文件约几百M到一两个G字节),一开始觉得程序很简单,随便写了下,结果matlab处理时间长得让人想哭,边学习边优化,发现主要是for循环占用太长时间,总结下可以去掉for循环的几种情况。1.用克隆运算符(:和end)比如一个长向量,想分别改变奇数位置和偶数位置元素的值,这个很简单a=rand(100);a(1:2:end)=0;a(2:2:end)=1;2.用find或者逻辑索引比如将矩阵中大于等于128的数减去256(8位补码转为有符号...

2021-06-21 23:57:52 2538

原创 ADC、DAC的多芯片同步和确定性延迟

多芯片同步和确定性延迟是高速采集和波形产生中经常碰到的概念,特别是使用最新的基于JESD204B协议的ADC、DAC。这两个概念在JESD204B协议产生前就有了,不过采用204B协议后,实现多芯片同步和确定性延时变得简单了。在204B协议中,我们都知道:**subclass 0不支持确定性延时,subclass 1支持确定性延时,使用sysref信号subclass 2支持确定性延时,使用sync信号按照字面理解,多芯片同步就是多个器件延时一致。例如,同一触发控制多片ADC采集同一个点频信号

2020-08-11 23:47:00 6346

原创 FPGA中复位同步模块

FPGA中复位同步模块在FPGA项目中,通常有一个外部复位或者根据锁相环锁定计数后产生一个内部复位。由于大部分FPGA中有多个时钟,为避免亚稳态,需要将复位同步到另一个时钟域。为此,我们可以将这种最常用的打拍同步操作作为一个常用的module;同时,使用标准异步复位同步释放的方式。下面代码是vivado例子工程wave_gen中的做法,供参考。module reset_bridge ( input clk_dst, // Destination clock inp

2020-07-29 23:49:52 444

原创 verilog向量位的选择

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-07-27 23:23:53 9639

高速串行接口的简介

xilinx官方的高速串行接口文档,非常经典,强烈推荐。对于初次接触高速串行接口的人,很多概念不清楚,该文档解释的非常好,看后豁然开朗。

2019-03-30

数字信号处理基础

信号处理的基础教程,对信号处理中的各种基础知识做了很好的讲解,虽然是英文的,但还是很好懂得。

2019-03-30

vivado 教程

xilinx最新的开发工具vivado的简明教程,适合从ise转vivado的开发者,代理商提供的,简单明了,中文的,是快速上手vivado的非常好的资料。

2019-03-30

合成孔径SAR BAQ压缩方法

合成孔径雷达SAR中最典型的数据压缩算法,即BAQ算法,很有用

2018-12-17

ps2 verilog代码

ps2接口的verilog实现,有仿真文件和源代码,已经仿真过。

2018-12-17

数字信号处理

信号处理课程,使用matlab进行讲解,对学习信号处理和matlab很有帮助

2018-12-16

GPAGPA计算器

一个GPA的计算工具,使用的是mfc,在VC6.0下通过。

2012-02-27

Root简单文档

高能物理中的Root的说明文档,root是CERN写的。

2011-11-19

高能物理中Root的手册

ROOT是在高能物理中使用很广泛的一个Application Framwork,本文是其网站上下的一个手册

2011-03-21

关于保险丝的知识简介

关于保险丝的简介,原理和分类以及注意事项等都有介绍

2011-03-21

搞科研不得不看的绘图软件介绍

各种绘图统计软件,包括常用的Origin,SigmaPlot等,虽然每种不是很详细,但还是可以帮助了解下这些软件的优势和特点。

2011-03-05

pspice library list

Orcad软件是一个很好的仿真软件,但是其我们不能直接从仿真库中知道其中有哪些元件,这样用起来很不方便,有这个表单,查起来就很好了。

2010-11-30

Ortec网站上的前置放大器的简介

这是Ortec网站上的一篇关于前置放大器的介绍,对前放的作用结构以及三种前放都做了很好的讲述

2010-10-10

Ortec上谱仪放大器的简介

这是Ortec网站上的一篇关于谱仪放大器的简介,内容很全面,很权威。

2010-10-10

核电子学中主放大器介绍

本资源是从Ortec网站上下载的一篇关于核电子学中主放大器的简介,内容相当全面,把主放需要实现的功能及实现方法做了很好的介绍。

2010-10-05

QuartusII的破解文件

安装QuartusII7.2后,可用此文件破解,我自己就是用的这个,好用

2010-03-19

vc++实效编程280例(网络部分)

本资源是<vc++实效编程280例>一书的网络部分的源码,由于所有源码超过上限,所以只上传了这一部分

2009-09-16

fortran课件 科大

本资源是科大某老师的fortran课件,讲得还比较清楚,

2009-07-19

火车订票系统用c语言实现

火车订票系统是一个经典问题,本例用c语言实现这一经典问题

2009-07-19

计算机扫盲知识pdf

这是一个关于计算机初级知识的pdf格式文件,最大的特点就是讲得很有趣,一看就是网友中的电脑高手写的,很好

2009-07-19

二叉树算法集用c语言实现

本代码主要是实现二叉树相关的算法,包括建立二叉树,二叉树的前序、中序和后序遍历、统计节点数等

2009-07-18

<C函数速查手册>实例代码

《c函数速查手册》是一本介绍c语言函数的书,该书几乎涵盖了所以的c语言常用函数,并且对于每个函数都用一个很典型而且很简单的小程序加以演示,通过本书,你可以轻松地掌握常用c函数

2009-07-18

mathematical教程

这是一个关于mathematical软件的教程,讲解得非常简单明了,挺有用的

2009-07-17

《C 语言105例》源码

本资源是<c语言实战105>,中国邮电出版社的源码,很有用的,里面有很多有趣的程序,如俄罗斯方块,迷宫探路、计算器、24点游戏、贪吃蛇、火车订票系统、机器人大战、各种排序方法等

2009-07-17

空空如也

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

TA关注的人

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