- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 【FPGA调整时序】调整时序过程中遇到的问题与解决方式
毕设的时候FPGA逻辑部分已经做完了,虽然毕业了,但是老师还是希望我把整个流程做完。现在在调整时序,由于之前没有怎么接触过,也没有师兄师姐帮助,调的我是心烦意乱有人说没有调过时序就不算做过FPGA,因此我准备记录一下调整时序的流程,日后做个纪念最开始检查时序,基本就是一片红,200m的时钟根本满足不了,我看最多支持到120m的时钟,感觉自己之前写的代码质量太差了,将来写代码一定不能偷懒,一定要按照规矩来。day1:初探时序翻阅了一些博客,大部分人说这里报错主要看form to这两部分,代表出问题的
2020-08-14 22:19:10 3195 2
原创 FPGA开发中遇到的问题与解决办法
问题1:ILA核资源消耗VIVADO中ILA核是消耗BRAM的因此当BRAM不足可以降低ILA抓取长度问题2:$readmem语句是否可综合?如果用来初始化一个二维数组,则可以综合,如:reg [COEFF_WIDTH-1:0] coeff_array [0:TAP_NUM_ALL-1];initial begin $readmemh("lte_int_hb2.coe", coeff_array , 0, TAP_NUM_ALL-1);endalways@(posedge clk)
2020-06-18 16:45:34 1979 4
原创 【vivado IP核学习】DDS complier v6.0使用“SIN/COS LUT only”
DDS complier v6.0使用根据使用需求,设置dds格式为 “sin cos lut only”,赛灵思官方dds IP的说明文档对该模式的描述如下:When configured as a SIN/COS LUT only, the Phase Generator is not implemented and the PHASE_IN signal is input using the input PHASE channel and transformed into sine and cos
2021-09-06 16:12:12 2315
翻译 【技能】MATLAB文件树 & 如何调用其他文件夹下的函数
Matlab有一个毛病,就是默认只能调用同一文件夹下的函数,或者已经添加到工具箱的函数。但是平常在写代码时,有一些自己写的函数是负责处理一类问题的,能不能像其它语言一样,用文件夹装起来,然后需要时,调用这个文件夹下的函数呢?当然可以!你只需要在文件的第一行加入这句话:addpath(genpath('.\lib'));此时我的文件夹结构是这样的main.mlibfunc1.mfunc2.m这样我们就可以在 main.m 中调用 func1 和 func2 了。当然,这样做了以后
2021-08-23 19:03:01 8108
转载 matlab脚本终止、暂停的几个函数(pause、error、break、quit、exit、return)
在写脚本的时候用到这些功能并不多,但是偶尔还是需要用到,每次都得重新查……这次整理一下记录几个常见的控制程序走停的函数pause、input、error、warning、break、quit、exit、return。1、pause在执行脚本文件过程中可以让脚本暂停;用法:①pause:暂停,等待用户按下任意键继续;②pause(n):暂停n秒,然后继续。2、inputinput()也可以让脚本暂停,等待用户输入后继续执行脚本;用法:① y = input(‘请输入:’); 只能输入数
2021-08-18 11:35:31 10452
原创 【附代码片解释】MSK正交调制&正交解调&mskmod函数
最近在做MSK的正交调制解调仿真,有一些心得体会,也踩了一些坑,再次记录一下。我的目标是,自己写一个正交调制解调,其性能和matlab自带的mskmod和mskdemod函数性能相近,功能相同,输出相同。一、 mskmod函数初探发现了一些mskmod函数的一些秘密,在此记录一下mskmod - Minimum shift keying modulationThis MATLAB function outputs the complex envelope y of the modulation
2021-08-11 19:18:55 6751 20
原创 【详解+示例】verilog阻塞非阻塞分析——层次化事件队列
1. 层次化事件队列简介详细地了解Verilog的层次化事件队列有助于我们理解Verilog的阻塞和非阻塞赋值的功能。所谓层次化事件队列指的是用于调度仿真事件的不同的Verilog事件队列。在IEEE Verilog标准中,层次化事件队列被看作是一个概念模型。设计仿真工具的厂商如何来实现事件队列,由于关系到仿真器的效率,被视为技术诀窍,不能公开发表。本节也不作详细介绍。在IEEE 1364-1995 Verilog标准的5.3节中定义了: 层次化事件队列在逻辑上分为用于当前仿真时间的4个不同的队列, 和
2021-08-07 11:41:38 1717
原创 【详解】modelsim使用技巧-波形白底黑线
在发表期刊或者论文时,我们需要夹带modelsim的仿真波形在我们的论文里,在modelsim默认模式下的波形一般是黑底绿线白字,打印出来几乎无法看清楚波形变化。本篇教大家如何设置modelsim仿真出来的波形改成白底黑线。设置过程如下:当仿真跑起来后,选择菜单栏的Tools>Edit PrefrencesPreferences窗口选着By Window>Wave Windows。Wave Windows Color Scheme窗口内的变量设置如下:(1)background 设置为
2021-07-19 16:03:12 1897
原创 线性最优离散滤波器——维纳滤波器及LCMV MVDR GSC (自适应滤波)
随便写写:我发现我越来越懒了,之前还能保证一周一篇博文,现在不仅懒得写东西,也懒得写博文,每天在王者荣耀里和傻屌队友怄气,我觉得这样不好,所以这里定个小目标,至少每两周更一次,希望能够坚持到下学期开学。言归正传:这次介绍维纳滤波器,之前我一直在做FPGA相关的内容,但是这学期导师给我安排任务,说组里有个项目需要在阵列上做波束成形,安排我来做DOA估计和波束成形,在摸索了两个月后,我终于也是慢慢了解了方向,现在就先从滤波器讲起,计划今年九月前能够吧波束成形和doa估计的内容也写出来。以下内容参考第四版的《自
2021-05-16 11:39:06 3626 7
原创 【阅读笔记】《精力管理》吉姆洛尔 托尼施瓦兹
近期在学校图书馆借了一本书,名字叫做《精力管理》个人觉得这本书提供了,区别于时间管理的另一种自控能力,他专注于精力上的管理,认为管理好精力才是高效的基础。作者举了一个例子:精力就是做事情的能力。包括体能、情感、思维、意志四个方面。例如你今天参加了一场长达4小时的会议,虽然会议从头到尾没有一句废话,但是刚到下半场你的注意力就急剧下降,连理解语句都变得非常困难。如果精力运用不恰当,一切事情的效果都会大打折扣。作者以自己工作的经历为中心展开,讲述了几个典型的案例,来分析我们应该如何管理精力第一章 什么是精
2021-05-15 17:03:45 1784
原创 DOA估计中的概念区分:信号相关、信号相干
最近转换了研究方向,导师让我去做DOA估计,里面涉及到了一些术语,百度了很多资料,在这里进行汇总:1相干是信号处理中,衡量确定性信号相似度的术语。 相关是概率与统计领域衡量随机变量相似度的术语————————————————2相关性(Correlation):显示两相关变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。相关性多用于普通的数组计算和时域信号。相干性(Coherence):与相关性计算得到的信息非常相似,都是衡量两个变量之间的相关程度。
2021-03-26 20:29:57 5685 3
原创 【附图详解】MathType6.9如何关联word2016 && mathtype部分按钮为灰色
文章分为两部分:第一部分,如何关联word和mathtype,第二部分解决安装后部分按钮是灰色的我用的是导师给的激活码激活的,是正版的mathtype。第一步:关联方法一:1.点击文件–选项2.点击加载项——word加载项——点击转到3. 点击添加,在弹出的窗口里找到mathtype的安装目录,在里面找到office support,根据自己是64还是32位的选择点进相应文件夹,我...
2020-04-07 13:08:17 18412 6
原创 VIVADO仿真数据保存
在进行FPGA编程设计的时候,经常会将VIVADO仿真结果与MATLAB仿真结果对比的情况,这时就需要将VIVADO仿真数据保存下来,方法如下:保存unsigned型无符号数据integer dout_file;initial begin dout_file=$fopen("路径/test.txt"); //打开所创建的文件 if(dout_file == 0)be...
2020-03-16 17:33:37 16699 9
原创 Xilinx VIVADO 仿真时无法调用 ModelSim 失败的解决办法
自从学习FPGA以来,按照惯例,都是使用VIVADO调用ModelSim来仿真,这样可以在仿真的同时继续修改代码,并且根据同组的人说,ModelSim仿真貌似还快一点(虽然用ModelSim+ i9-9900k,有时候仿真跑一天也跑不完(๑′ᴗ‵๑)❤)但是有调用,就有调用失败的时候,有的时候会报错,那就很简单了,根据报错进去看看log文件,按照log文件修改就好了,但是有的时候一直卡在下面这里...
2020-03-13 12:06:27 5967 6
原创 verilog reg型二维数组
verilog中二维数组使用有些限制,比如不能作为module的输入输出port另外二维数据初始化可以使用for循环来实现初始化------------------------------------------------------------------------------------------------1. 二维数组作为输入输出port报错下面举一个例子:model in...
2020-03-10 17:46:59 10281 1
原创 VIVADO cordic IP核
VIVADO中,cordic是一个实现通用坐标旋转计算的IP核,在进行数字信号处理时常常会用到,算法主要是通过迭代来解三角方程,不过这些原理的东西我们做FPGA实现的不需要掌握它的历史,重点是怎么用,正好最近刚刚做完一个bp神经网络的实现,很多地方都用到了cordic核,网上的讲解很散乱,所以决定自己写一个。cordic核主要功能包括:rotate 旋转 ——复数旋转translate 变...
2020-02-27 16:41:43 16429 12
原创 有符号无符号乘法---------------verilog中 “ * ” 号的探索
有符号数的计算在 Verilog 中是一个很重要的问题(也很容易会被忽视),有时为了简单方便,我常常会使用“*”来偷懒,这样就不用去调用乘法器了,但是结果常常不同,下面实际试验一下 Verilog 的乘法问题;编写程序测试无符号数和有符号数的乘法编写程序如下,其中,乘法的两个乘数分别是无符号、有符号的四种组合,输出的积也是分为无符号和有符号,共计 8 种可能;module signed_te...
2020-02-27 12:46:51 4426 1
原创 【超详细】VIVADO FFT IP v9.0 进阶
我对正常使用的定义我目前使用fft核都很简单,就是求固定长度时域数据的频谱,以4096点为例,我使用FFT核就是为了代替MATLAB中data_fft = fft(data,4096);这个功能。第一次用FFT IP的时候,被吓到了,用过三四次以后基本摸清了使用方法,但是也只是简单的使用,这里写个指南,希望指导小白。FFT界面这里以4096为例,图中红圈内可以改点数,一般我下面都是...
2020-02-27 12:27:58 3631 5
转载 概念 : 门控时钟以及使能时钟
在编写FPGA的时候我们常常会遇到这样的问题:全局时钟的频率太高了,某些模块需要频率更低的时钟来驱动,总是调用pll太浪费资源了。现在说说这种时候该怎么办1. 门控时钟分频门控时钟就是通过计数的方式来实现对全局时钟的分频,满足你对低频时钟的需求。基于计数器的分频器不说了太基础了,现在说说非整数分频怎么实现。非整数分频有两种方法,分别为交错法和累加法。a. 交错法交错法其实就是用两种...
2019-08-08 19:07:09 2420
转载 CORDIC算法理论
引自https://zhuanlan.zhihu.com/p/27187917,感谢大佬的理解为什么会出现CORDIC算法呢?对于三角函数计算,理论接触较多的应该就是级数展开的方法 ,通过逼近的方式进行计算,比如泰勒级数。但是因为这种多项式函数在计算的过程中需要大量使用到浮点数计算,而对于缺乏硬件乘法器的器件而言这种计算方式的实现是很困难的。有了问题,自然就会有人出来解决,1959年J. ...
2019-08-07 16:56:04 1187
原创 FPGA实战演练逻辑篇——FPGA板级设计五要素
第一次写博客,排版也不太会,见谅!一、 电源电路电源电路分为三部分包括: 核心电压、I/O电压、辅助电压 1.核心电压 一般为固定值 2.IO电压 IO引脚工作所需参考电压 FPGA的IO分为多个bank,每一个板块的IO引脚电压相同,不同bank电压可以不同 3.辅助...
2019-08-01 10:45:10 966
Verilog-2001语法精讲
2020-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人