- 博客(131)
- 资源 (3)
- 收藏
- 关注
原创 RTL血的教训
1.开发时首先考虑同步异步的问题,异步输入需要打拍处理;2.模块输出尽量用reg,保证流水,避免后期timing的问题;3.多写几个复位信号,同步复位异步复位都需要。
2020-05-26 18:03:09 508
原创 用安捷伦信号发生器vector signal generator将数据发出
有时希望根据之前抓到的数据或者根据仿真的数据反复验证性能,此时可以利用信号发生器来实现。1.首先在信号发生器的界面Utility->I/O config->LAN Setup查看IP地址(需要网线插好才会显示);2.将笔记本和信号发生器配置到一个网段中;3.用Toolkit,在WaveformSetup里加载.mat文件,选择IQ,选择速率(如16M);4.在Toolkit里,System->Run system Configuration wizard里配置IP然后下一.
2020-05-18 19:55:21 1428 2
原创 二进制文件的处理
有时,机器打印的log可能是二进制文件,例如后缀是ddc的文件,nodepad等软件打开是乱码,可以通过WinHex.exe这个小程序打开。但是会发现这些16进制的文件是没有任何含义的,如果需要抽取或者排列成需要的信息并打印出来,可以通过eclipse的C程序实现,代码如下:#include <iostream>using namespace std;int main() { FILE *fp; FILE *fs; int n; unsigned char buf[2
2020-05-14 11:40:00 707
原创 频点、带宽、FFT点数、采样率的关系
带宽很好理解,一般带宽越高子载波越多,即对应的频点或信道越多。这样系统中频域变换到时域,则对应的FFT点数越多。FFT点数不补零的情况下等于采样点数,补零一般会补成2的次幂。比如:20M、15M、10M、5M、3M、1.4M的子载波数量分别为(不计中心子载波)1200、900、600、300、180、72。FFT/IFFT的采样次数必须是2的指数,在频域一个频点对应时域的一次采样,所以F...
2020-04-22 10:14:16 19969
原创 利用频谱仪抓取射频数据
调试时,往往需要将射频的数据抓取出来,这时可以利用频谱仪进行。可以通过网口进行通信,配置网络时,可以用keysight的connection expert,配置网络。有时无法自动配置,就手动将频谱仪的ip配置到笔记本的网关中,笔记本的ip就和频谱仪一个网段(比如x.x.x.1,掩码默认)。然后在input里的tracking设置采集的时长,设置中心频点和span。这里span如果希望16...
2020-04-21 17:55:11 2722 3
原创 通过颜色属性,提取html报告中的数据
测试中,会生成一系列的html文件,其中可能很多都是pass的,偶尔是fail的,如何筛选出这样的数值呢?用eclipse的C实现了以上功能。#include <stdio.h>#include <stdlib.h>#define INDEX 7#define LINE 1024char *ReadData(FILE *fp, char *buf){ ...
2020-04-17 15:46:43 168
原创 IQ mismatch的解决办法
对于无线通信系统,往往需要在基带信号调制到中频甚至高频发送,然后在接收端解调。但是在调制时,可能会带来IQmismatch。如果不做处理,发端发一个单tone,收端可能会收到两个频谱峰值。mismatch分为amplitude mismatch和phaseamplitude,用matlab来描述这一过程,如下所示:如何解决呢,其实很简单,运用中学的三角和差化积即可。然后在...
2020-04-03 18:14:50 1869
原创 fpga综合脚本tcl分析
1.首先需要设置工艺库setsearch_path *********set link_library *******set target_library *******2.将需要综合的文件依次罗列下来,格式analyze -formatverilog路径.vanalyze -formatverilog路径.vanalyze -formatverilog路...
2020-03-11 18:23:58 599 1
原创 matlab的fir1截止频率的设置
matlab的fir1函数,除了滤波器阶数外,还需要配置截止频率,怎么设置呢?比如低通滤波器,根据采用频率fs,希望通过和截止的频率f1、f2,那么该系数就应该在(f1/(fs/2),f2/(fs/2))中间。...
2020-03-10 12:36:04 4791
原创 Linux vim如何实现文件中多行或者所有行相同列插入相同的字符串
vi 下,如何在每行中插入?(类似UltraEdit的列编辑)1: 定位光标2: CTRL+v #进入Visual Mode。3: j #选择要在哪些行加入?!4: I #一定是大写!5: 输入要插入的文本6: ESC 注:如果vi不行可以使用vim 第三步:如果要是选择...
2020-02-20 14:09:29 1808
原创 怎么搜索百度网盘的资源
百度网盘算是目前使用最多的网盘,很多专业软件都会在上面能找到。但目前版权问题,很多链接都找不到了。怎么搜索呢,只能依靠第三方网站,小白盘,matlab2014a就可以在上面找到。...
2020-02-12 20:20:37 1363
原创 Windows CMD中 findstr命令
一、作用findstr是Window系统自带的命令,用于查找某路径下指定的一个或多个文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。其用途和用法类似Linux下的grep命令。findstr命令在MS-DOS下使用。二、命令语法findstr[/b][/e][/l][/r][/s][/i][/x][/v][/n][/m][/o][/...
2019-11-14 10:40:41 1230
原创 excel关于VLOOKUP的使用
在excel中使用VLOOKUP时,一般不使用拖拉复制单元格,而采用,选中范围统一输入公式,例如,如下,选中需要产生查找的输出单元格,输入公式,例如,=VLOOKUP(K6:K10,D6:F10,2,FALSE)最后数组公式,要三键结束Ctrl+Shift+Enter。OK!...
2019-11-13 09:55:08 126
原创 HTML中邮件链接字符串中的空格为什么要用百分之20表示?
RFC1738规定url只能由字母,数字,以及一些特殊字符组成其他的字符都要进行编码,空格编码之后的结果就是%20
2019-11-08 15:41:49 624
原创 verdi中关于real型变量,显示需要注意的
有时,systemverilog的port口上,拉到verdi里看波形,会发现奇怪的现象。原来,real型变量并不是真实显示的每个clk下的变量值,而是把能够其中捕获到的值,直线的形式连起来,所以连线端中的值就是假的...
2019-10-28 15:13:46 3267 1
转载 nlint使用心得
最近在用nlint检查verilog语法,仔细看了一下nlint的batch model 的使用方法,在shell中试用了一下,竟然可以使用,于是编写了一个pl文件,把所有的模块都用同样的规则检查了一遍,自动产生了相应的报告!方便!先看看 nlint的命令,通过cmd 到shell 中,敲击nlint -f tmp -out $1.nlint -verilog -2001 -sort s ...
2019-10-16 10:01:21 9075 2
原创 文本tab对齐的问题
有时候习惯在windows的nodepad里coding,但是上传到linux服务器上,用verdi打开,发现windows里对齐的好好的代码,居然参差不齐。原因是不同系统,对于tab键的解析不一样,如果中间用到了tab键,就要好好看看了。一般window默认一个tab=4个空格,而linux里一个tab=8个空格,所以当一行通过tab,一行通过敲空格,window里能对齐的,linux里就没...
2019-09-27 20:10:40 1801 1
转载 多时钟域数据同步
对于不同的时钟域要传递数据的话,需要采用一定的手段,来防止数据传递时产生亚稳态等问题1、慢时钟域向快时钟域传递数据<span style="color:#000000">module low2fast(clk,reset,asyn_in,syn_out,);input clk,reset;input asyn_in;output syn_out;reg q1,q2;...
2019-08-28 12:02:59 1155
原创 远程与文件互传
如果两台电脑都可以访问公网,希望一台控制另外一台,可以安装 向日葵远程,用手机号注册免费即可。如果两台电脑都可以访问公网,并希望可以传输数据。利用奶牛快传,用来在不同计算机相互传数据,比较方便。...
2019-08-21 17:11:33 161
原创 利用Teledyne LeCroy来测量频偏
利用Teledyne LeCroy进行tx时,软件界面可以直接显示f0~fn的最大最小频偏,用于对rf进行寄存器配置,从而控制晶振,使得频偏最小。
2019-08-19 18:22:37 396
原创 gVim 按列操作
GVIM 删除列具体讲,光标先移动到要删除的首行,首列,然后按ctrl + q,然后把光标移动(必须用h(左)j(下)k(上)l(右)键盘移动)到首行,最后一列,看到第一行已经选好了。然后输入(行数)j(例如1000000j)选定要删除多少行(多于最大行数则选定到最后一行)。再按d键,就可以删除。输入:http://yuqix.blog.51cto.com/979066/389...
2019-05-14 14:09:45 2731
转载 Verilog有符号数与无符号数的数值运算
转载from:https://blog.csdn.net/u014485485/article/details/79962316
2019-05-07 10:03:10 861
原创 MATLAB修改某一行txt的内容
for j=1:200 cd(['CASE_',num2str(j)]; fileID = fopen('mdm_reg.txt','r+'); i=0; while ~feof(fileID) tline=fgetl(fileID); i=i+1; newline{i} = tline; if i=...
2019-03-29 14:09:06 10940 2
转载 Verilog基础知识(亚稳态和跨时钟域的同步电路)
https://blog.csdn.net/maxwell2ic/article/details/81051545
2019-03-13 19:55:55 462
转载 VCS仿真器加密代码方法
代码加密对于IP而言非常重要,起到保护知识产权的作用。VCS提供了代码加密功能,当然,使用VCS加密的代码只能在VCS中使用。方法1:代码中加入编译器代码保护指令,指令之间的代码将被加密,VCS加密使用的是AES128算法。对于Verilog代码而言,编译器指令为:`protect128/`endprotect128;VHDL则为--protect128/--endprotect128。方法1...
2019-02-23 20:59:14 2889
原创 verilog &一个变量的意义
一个“&”放在两个数据之间时,表示按位与,用于两个多位宽数据操作。例如:reg [31:0] a;reg [31:0] b;wire c;assign c = a | b;以上代码表示“a”与“b”先按位分别与,再把结果交给“c”。如果一个“&”放在一个操作数前面,则表示缩位与。例如:assign c = &a;如果是“&&”放在两个数之间,...
2019-02-23 16:53:07 7282 1
原创 quartus新建工程时,top_level entity需要和顶层模块名保持一致
quartus新建工程时,top_level entity需要和顶层模块名保持一致。不然会报错。可以在下图中单项双击选中进行分析,比如切换到RTL Viewer中,可以看到在RTL Viewer中选中可以在location node中选择chip planner中看到fpga中的具体连线。(需要先进行再布局布线(Fitter))...
2019-02-22 20:11:50 9018
转载 linux cp 出现 cannot stat 路径后面出现 $'\r'
一般由于在window下编辑的文档换行符是\r\n,而unix下换行符为\n。导致的问题。 sudo apt-get install dos2unix 使用命令转换: dos2unix 文件名
2019-02-21 19:32:30 1723
转载 组合逻辑always块中敏感向量表要全
1.对于如下代码块:always @(nstate /*or master_din or master_dout_reg*/) begin //initial; master_din_reg = 0; master_dout = 0; cs = 1'b0; wr_done = 1'b0; rd_done = 1'b0; sck_en =...
2019-02-18 10:26:56 2012
转载 [转帖]通过文件读写方式实现Matlab和Modelsim的联合仿真
虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足。而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处理的函数,而且图形显示功能也很强大,所以在做数字信号处理算法的FPGA验证的时候借助Matlab会大大加快算法验证的速度。 关于Matlab和Modelsim联合仿真,我从网上看到两种方法,...
2019-02-14 09:56:29 181
转载 IC验证简单介绍
验证流程管理 下图既是一副比较完整的芯片端到端验证流程图,大多数公司的验证流程是大同小异的,差异点在于各个流程中具体做的事情。 规格熟悉这是属于项目刚立项后验证人员要做的事情,主要是学习各种相关的文档材料,包括但不限于协议、需求、规格、功能说明、历史芯片文档、重用环境评估与恢复。我有一个习惯,就是会将学习内容整理到一个PPT中,主要是为了提炼、归纳、整理下所学知识,弄...
2019-01-31 13:55:00 14490 1
原创 verilog中连续赋值需要注意delay要小于波形值的变化
右端值变化在能够传播到左端前必须至少保持时延间隔;如果在时延间隔内右端值变化,则前面的值不能传输到输出。a s s i g n #4 Cab = Drm;
2019-01-31 11:18:03 520
原创 利用VCS对RTL进行编译和调试
VCS现在一般都安装在linux服务器上,打开terminal,两种方法:1.命令行敲入"vcs -debug_all 若干源文件.v " ./simv -gui -tbug2.直接敲入dve,在simulator->setup中,配置路径、对应的exec文件、vpd文件即可。在view下设置timescale,在simulator里面有add force ,s...
2019-01-31 10:50:51 2434
原创 verilog 加法器
module add(input [3:0] a,input [3:0] b,input cin,output [3:0] c,output cout);assign {cout,c} = a+b+cin;endmodule对应的testbench是`timescale 1ns/1nsmodule add_tb ; reg [3:0] a ;...
2019-01-30 18:29:03 2971
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人