在cshell使用history的问题 history是build-in-shell的命令,无法通过which来找到。所以,在脚本里(py\perl\shell)都无法调用history获取结果。但是cshell怎么解决呢?
uvm callback和factory重载的区别 重载,最开始的来源是c++ , sv面向对象的特性:集成,多态,重载。sv除了支持对方法的重载,还支持对约束constraint的重载。重载(sv)最大的优势是:子类句柄在用父类类型进行传递时,其行为仍然是子类的行为。举例,trans很多时候,都是用uvm_sequence_item的形式在sqr,drv之间传递,然后$cast(tr, uvm_sequence_item) 获取的。
verilog仿真技巧与bug集合 文章目录想1.初学者不建议在设计文件中加入仿真语句;2.初学者也不会在tb里使用类似always一样的设计。对于1.因为把仿真通过的HDL修改为可以综合下板的HDL是很难的一件事,但是适当的使用预编译ifdef来控制何时使用仿真语句,这样可以在设计文件需要综合时忽略仿真语句。在设计文件中使用仿真语句虽有风险,但是可以提现一个人的HDL能力(设计文件里加上initial真的很爽,很方便)对于2.,使用的always设计通常是为了模拟某种时序而进行的描述,一般初学者只是使用initial,task来产生
关于fork +@(posedge xxx)触发的问题 此处做一些记录罢了。在fork中不能break,但是可以用disable fork来关掉fork。 从而在fork外做break。函数1:函数2:打印结果结论,即使是自己写的极小的delay延时(脉冲信号/毛刺),只要在timescale的精度能识别,就能被另一个线程的@采样到。过程中的问题:1.while(1)中如果没有阻塞,那么会永远循环,不会仿真结束;如果因为wait/@而阻塞,会在另外的线程完成后仿真结束(默认有个跳出?现象是这样,但是不清楚原理)2.while里可以有fork
版本管理工具:github+wiki 这里commit是更新到本地库,然后pull是从服务器更新到本地,push是从本地更新到服务器。创建ssh 密钥,这里不输入密码,后续在pull和push时可以省点心。github wiki需要pro版本才能使用(48/年)本次使用的是ssh,在terminal操作如下。
RTL例化时的奇怪现象 抓端口PSEL和连线的PSEL。结果不一致,即连线PSEL是正常的,端口却为z态。这个信号为input信号。原因是这个模块的IO处没有声明PSEL,但是上层的模块例化这个模块时,有output PSEL的端口,并且连到上层模块的IO上了。这可真的是。...
万物皆有频率 文章目录傅里叶级数傅里叶级数的意义信号与系统吉布斯现象声音频率图像频率光电信号光的波粒二象性0和1傅里叶级数傅里叶级数的意义第一次知道傅里叶是高中的课本里,傅里叶级数是指任何一个函数都可以表示为常数+正/余弦函数的形式。那么再具体一点:一个函数分解为若干个谐波(不同频率的分量),对应的频谱。时域周期,则频域离散(下图中sine wave);时域不周期,则频率连续(下图damped transient)时域离散,则频域周期。信号与系统吉布斯现象吉布斯效应:将具有不连续点的周期函数(如
makefile使用心得 cd命令在Makefile中只在当前行生效!shell命令在target内,每行是一个作用域,if-else也必须写到一行内(用\跨行,实际还是一行);不在target内,多行都是一个作用域;.PHONY = run ,goto.DEFAULT_GOAL :=run PROJ_PATH = $(shell pwd)goto: @echo $(PROJ_PATH) @if [ -e $(PROJ_PATH)/base_run ]; then echo "exist base_run";\
tcl学习心得 传参puts "$argv0" puts "$argv" set fsdb_name [lindex $argv 0] set case_name [lindex $argv 1] puts ${fsdb_name}puts ${case_name}结果:
关于RTL、TB的filelist吃不到的问题 文件树:proj/simproj/dut/dut.fproj/tb/tb.fproj/makefile(或者在sim目录下)执行make的时候,vcs是在sim目录下跑起来的,所以-f 去吃平级目录下的tb.f是吃不到的,需要用-F。makefile:tb.f
virtex6 DDR3使用 文章目录简介其实还行,做的比较熟了之后用啥都差不多,毕竟产品是给客户用的,因此必然有ug用户手册,即便是英文的也能读懂。以前做的课设实验或者自己做的比赛,虽然有物资(模块)但是没有对应的说明书或者使用案例,因此做起来非常头疼。一个是看怎么实例化ip核,一个是看ip核的使用(UI,user interface).虽然手里有demo代码,但是代码根本就读不下去,要弄明白原委还得看ug。(有图有真香)简介MIG 7 系列和 Virtex-6 FPGA DDR2/DDR3 - 如何驱动用户接口SoDI
centos7修改网卡后无法上网问题 ping www.baidu.com未知的域名修改主机ip地址右键属性选属性这个选项原来是自动获取的,可能会在后续发生改变,因此选固定的ip。这个ip在win10主机的cmd窗口输入ipconfig获取:网上说虚拟机内的ip要和物理主机一致的,我这里确实没有一致。虚拟机网络配置打开虚拟网络编辑器。第一处填的ip 地址,要和上面win10主机配置的一致。第四个字段填0,否则和掩码冲突。 子网网关(DNS)的第四个字段填1,2都行。选择DHCP。最后确定。配置ifcfg-ens
关于拉普拉斯金字塔算法硬件实现的一些想法 文章目录从算法的角度,拉普拉斯的计算需要两张相邻分辨率的高斯图像(3840x2160,1920x1080),拉普拉斯对低分辨率的图像做上采样、填充之后卷积,然后和高分辨率的图像相减,得到残差(边缘纹理)。上采样的过程,是行列偶数倍插值“0”的过程,因为低分辨率的图像中灰度值为高分辨率图像的1/4,因此对上采样后的值要x4。(很重要)填充的圈数和卷积核有关,卷积核3x3,填充1圈0。5x5就填充2圈0。卷积核是高斯核,权重为1,4,…36,…4,1。高斯的权重本来是0.01左右的小数,将其放大256倍
maltab批量对图像反色 为啥要批量,因为仿真波形图都是黑底的。打印出来啥也看不到。另外一个教训就是,截图的时候如果要加文字,一定要加浅色的,这样反色之后是深色,能看清。先将word中图片批量导出,(word另存为htm格式)然后matlab处理即可。%matlab 从一个文件夹中批量读取、处理并保存图片文件到另外一个文件夹clear;clc;srcFace = './files'; %源文件夹fileSavePath='./file_out';%保存的文件夹src=srcFace;srcsuffix='.jpg'
使用python快速实例化verilog模块信号 在verilog设计过程中,调用实例化模块时是非常头疼的一件事,因为位置绑定不安全,必须使用名称绑定,手动一个个码就很烦于是用python写了一段代码。缺点是没有用正则表达式来除去[],也没有用特定的方式来终止键入。out=''for i in range(1,50): temp=input() temp = temp.replace("input", '') temp = temp.replace("output", '') len_temp = len(temp)
ML605:virtex6 DDR3调试 phy_init_done无法拉高问题 文章目录其他一些问题关于选错了器件型号如何看仿真图直接说结论吧。vivado不支持6系列FPGA,以及ise生成IP的RTL文件。仿真也不行!在使用IP生成MIG后,我将MIG对应的RTL、sim文件放到vivado里仿真了。我以为都是仿真器没啥区别,ise和vivado都是用的Isim仿真器(如果可以我或许会用modelsim)。而且我用ise跑demo代码的仿真泡一会儿就不停弹窗卡死,实在没法用,无奈才用的vivado。个人估计是原语的问题,vivado代表的是7系的FPGA,自然原语和前代不同,
verilog两个变量取反相乘出现bug 文章目录起因做简单验证试验解决与小结起因最开始我希望做一个16位小数乘16位小数的运算,考虑到整数部分(16位)为零,于是我直接取低16位作为变量来进行计算(以节约电路面积)。这相当于我把一个小数左移了16bit然后取高16位。a,b为16bit的小数<<<16得到的值,例如a=0.1<<<16=16’b0001100110011001我需要做如下的计算:a x b,(1-a) x b,a x (1-b),(1-a) x (1-b)对应的rtl如下:te
matlab 的一个bug:for循环给矩阵赋值失败 文章目录现象1(单个例子)现象2(整体)代码进一步探究(简化代码,4*4矩阵作为图像)希望各位大佬能给予解释!谢谢版本:matlab 2019a现象:嵌套两层for循环,对图像的行列依次点对点赋值给另一个矩阵,只有w个数据成功赋值,其余全为0。这里并不是无聊而是确实有场景需要用到点对点的赋值+运算。现象1(单个例子)我是严重怀疑我用了一个假的matlab.出现了很多根本不该打印的东西。(打印的时候不要用G(i:j)而是temp)用for循环跑出来的结果:(赋值失败,很多0)在for循环外面