
硬件相关
joris30
这个作者很懒,什么都没留下…
展开
-
用虚拟机安装gnu radio
依次安装libiio、libad9361-iio、gnuradio的3.8版本,以及对应的gr-iio。首先在虚拟机上安装的ubuntu18.04。对于ubuntu18.04同样适用。前面的依赖关系很重要。原创 2024-04-06 15:53:34 · 505 阅读 · 0 评论 -
vitis的开发设计
在vitis的file中创建工程(有application,library,platform),然后选择xsa的路径导入,此时他会自动识别当时生成xsa时的系统,默认勾选boot文件,用于后续方便烧写flash,确定即可。移植工程,可以将芯片自带的驱动复制到application的工程中,然后修改部分参数,编译,然后debug。...原创 2021-12-22 16:21:42 · 320 阅读 · 0 评论 -
RTL的testbench书写技巧
1.有时测试激励可能有很多case,分别有不同的文件夹内。我们希望一个tb能方便灵活测试所有case,可以通过宏定义的方式,后面通过用宏来使用`define TC "/FileFolder/CASE1/"fp = $fopen({`TC,input.txt},'r');2.使用wait函数,来实现等待某个条件的触发,initial begin wait(enable); ......end3.使用repeat来实现等待多少个cycleinitial原创 2021-11-23 17:30:26 · 380 阅读 · 0 评论 -
vivado的操作流程
1.新建工程,add 设计文件.v和需要的ip(.xci),vivado的ip可以利用IP cateloge生成,有的时加密的,则只能在vivado下仿真使用;2.仿真(语法检查功能比较弱,可以用其他工具如verdi先查一下),如果想看的信号不在默认的wave里,可以在scope的模块中add,reset后,再仿真若干时间,就可以看到加入的信号;3.生成bitfile,会自动重新综合布线,也可以手动重新综合布线,reset;...原创 2020-08-18 19:33:47 · 1052 阅读 · 0 评论 -
RTL血的教训
1.开发时首先考虑同步异步的问题,异步输入需要打拍处理;2.模块输出尽量用reg,保证流水,避免后期timing的问题;3.多写几个复位信号,同步复位异步复位都需要。原创 2020-05-26 18:03:09 · 537 阅读 · 0 评论 -
用安捷伦信号发生器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 · 1577 阅读 · 2 评论 -
利用频谱仪抓取射频数据
调试时,往往需要将射频的数据抓取出来,这时可以利用频谱仪进行。可以通过网口进行通信,配置网络时,可以用keysight的connection expert,配置网络。有时无法自动配置,就手动将频谱仪的ip配置到笔记本的网关中,笔记本的ip就和频谱仪一个网段(比如x.x.x.1,掩码默认)。然后在input里的tracking设置采集的时长,设置中心频点和span。这里span如果希望16...原创 2020-04-21 17:55:11 · 3040 阅读 · 3 评论 -
fpga综合脚本tcl分析
1.首先需要设置工艺库setsearch_path *********set link_library *******set target_library *******2.将需要综合的文件依次罗列下来,格式analyze -formatverilog路径.vanalyze -formatverilog路径.vanalyze -formatverilog路...原创 2020-03-11 18:23:58 · 641 阅读 · 1 评论 -
频谱仪和信号发生器的使用
其实很简单,只是对于不常使用的人,有点生疏。频谱仪,一般就是设置频点(freq)和带宽(swap),数字键输入后,在屏幕右方有对应的选择键,选择单位。默认是rf输入,有的频谱仪可以接收IQ输入,在input中选择I路或者Q路,或者两路均输入。然后就是选择是否difference(差分)、设置频点和带宽(和上面一样)。信号发生器就更简单了,主要就是频点和功率,然后按右下角的RFon/...原创 2018-12-21 18:47:06 · 3196 阅读 · 0 评论 -
modelsim找不到Language Templates
在windows10上安装了modelsim10.4,怎么也找不到Language Templates,论坛也有人反映这样的情况,但均没有解决。果断换成modelsim6.4,果然有了。这么方便的功能,应该也不会丢弃啊,个人认为是破解的问题。...原创 2019-01-26 14:04:46 · 1026 阅读 · 0 评论 -
sysgen 对带parameter的verilog封装blackbox的问题
例如这样一个小模块module mul#(parameter MUL_A_WIDTH = 10,parameter MUL_B_WIDTH = 10,parameter MUL_C_WIDTH = MUL_A_WIDTH+MUL_B_WIDTH-1)(input [MUL_A_WIDTH-1:0] a,input [MUL_B_WIDTH-1:0] b,output [MU...原创 2019-01-29 11:14:29 · 821 阅读 · 0 评论 -
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 · 3042 阅读 · 0 评论 -
利用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 · 2625 阅读 · 0 评论 -
verilog中连续赋值需要注意delay要小于波形值的变化
右端值变化在能够传播到左端前必须至少保持时延间隔;如果在时延间隔内右端值变化,则前面的值不能传输到输出。a s s i g n #4 Cab = Drm;原创 2019-01-31 11:18:03 · 557 阅读 · 0 评论 -
quartus新建工程时,top_level entity需要和顶层模块名保持一致
quartus新建工程时,top_level entity需要和顶层模块名保持一致。不然会报错。可以在下图中单项双击选中进行分析,比如切换到RTL Viewer中,可以看到在RTL Viewer中选中可以在location node中选择chip planner中看到fpga中的具体连线。(需要先进行再布局布线(Fitter))...原创 2019-02-22 20:11:50 · 9220 阅读 · 0 评论 -
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 · 7439 阅读 · 1 评论 -
testbench产生不同频同相位的时钟信号
原创 2019-05-10 18:35:56 · 1901 阅读 · 0 评论 -
利用Teledyne LeCroy来测量频偏
利用Teledyne LeCroy进行tx时,软件界面可以直接显示f0~fn的最大最小频偏,用于对rf进行寄存器配置,从而控制晶振,使得频偏最小。原创 2019-08-19 18:22:37 · 461 阅读 · 0 评论 -
verdi中关于real型变量,显示需要注意的
有时,systemverilog的port口上,拉到verdi里看波形,会发现奇怪的现象。原来,real型变量并不是真实显示的每个clk下的变量值,而是把能够其中捕获到的值,直线的形式连起来,所以连线端中的值就是假的...原创 2019-10-28 15:13:46 · 3543 阅读 · 1 评论