自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 sv中##n的使用

并且使用的时候,必须在clocking 时钟域里,即一般是应用cb驱动dut中信号时所用。##n (n表示数字) ##是用于指定特定数目时钟周期的延迟。经过9个时钟周期,然后延迟2s将2‘b11的值驱动了给了dut。后面没有时间触发,程序是会报错的。这里要注意:驱动dut时要用非阻塞赋值。

2023-05-04 10:01:42 661

原创 sv中interface的学习心得以及modport

还有强调一下调用方式,如果是调用sig,在模块中是通过A.B.C.sig去调用信号,而使用interface(不能包含层次化设计)调用是直接从根出发($root.top_tb)一层一层引用。被调用的模块名称 实例名字 (实例端口名,……注意:要跟被调用的模块的端口信号连接保持一致顺序,没有引用的端口就用空格表示,比如“clk, ,sum”)。可以看到在顶层模块里,模块例化跟接口例化方式一样,但是减少了模块例化时端口信号一个一个匹配的复杂程度(这也是之前我第一次学习概念模糊的地方,不知道是怎么例化的)

2023-04-29 10:43:33 671

原创 sv利用function实现一串字符去掉所有字符0的功能(2)

在计算过程中,其实我一开始对function没有声明动态函数,但是在测试时候输入全是0的字符串,会造成s2输出上一个124134的结果,可能是由于function是寄存器类型,而且如果全是字符串0的话,S_0在function函数中没有改变,会返回之前s1输出的结果,因此为避免这个问题,我把function声明成了动态函数。还是回到上次说的,我的思路是,通过去除首位字符0,中间部分0采用递增扫描截取的方式,碰到一个0,截取拼接字符后,然后重新扫描(如果字符串数量大,中间位0多,可能计算机耗时会较长)。

2023-04-27 21:35:38 108

原创 sv利用function实现一串字符去掉所有字符0的功能(1)

我想做一些改进,然后首先是扫描字符串首尾0字符,然后中间部分去拼接——继续直到字符串扫描不到0。(其实这里可以举一反三出来很多其他的功能,比如,扫描出字符0改成字符1,就是把扫描拼接,变成了扫描换字符1,然后再扫描——直到扫描到没有0)继之前的题目,这是老师新出的一个题目,虽然给我看过了一遍老师的思路,但是我还是想挑战自己。老师的代码思路是先去掉字符串开头的0字符,然后后面一段就考虑递归扫描处字符串0,然后拼接。下一章上代码以及测试结果!

2023-04-26 23:23:37 69

原创 SV实现去掉字符串前面有0的操作(2)

还是纠正一下之前的错误,字符串识别转换成数值再去识别(之前(1)说只能转换再去识别,在这里我强调不严谨),多此一举,甚至还会产生一些其他的问题,在这里还是推荐大家不需要这样做。以及纠正之前(1)的一个问题,因为考虑到识别字符串的数字,我考虑到转换成数值才能识别,其实sv包含了很多c的功能,让我想到“0”是不是能够代表字符0呢?但是之前的字符串转换成数值应该也是可以完成的,我还是不知道哪里出现了问题,希望能有懂得人讲解一下,之后我搞懂了,也会分享出来的。吃了个饭,结合一点c的知识,想出来了怎么操作。

2023-04-25 19:55:18 194

原创 SV实现去掉字符串前面有0的操作(1)

这个字符串程序没有执行(考虑到可能是定义的位宽不够的原因,但是我重新声明成longint,也没有解决)。这是一个老师提出的问题,老师考虑的是让我们花十到二十分钟去解决,我想了一个下午,处处碰壁。其次字符串转换成数组好像只能用定宽的,我想声明动态数组或者队列,这样数据处理起来更方便,但是上述都没有成功,可能是字符串转换成数据的问题。最后处理定宽数组,考虑到没有动态数组或者队列的功能,只能在字符串上实现其功能,用的是截取字符串这个函数。

2023-04-25 18:03:31 111 1

原创 SV中$display有关数值的显示格式

实际中IEEE1800中,约定阈值宽度只能为正数,所以赋值域宽可能在不同的仿真工具下处理情况不一致。这个问题来自群里的小伙伴,我觉得还不错,就自己操作了一下(通过linux操作系统下的vcs来查看结果)刚好老师也讲过一次。可以看出,由于没有声明阈宽,显示的结果是默认阈宽。十进制是补空格左对齐,其他进制是补0左对齐。用十六进制表示是两位,十进制表示是2的8次方减1位。可以看出,设置了6位的域宽(大于实际位宽),即十进制左边对齐补空格,其他进制左对齐补0.1.首先是不考虑域宽的情况,即一般情况。

2023-04-25 00:25:07 956 1

原创 delta-cycle难点- 学自路科

一个时间片(time-slot)中可以发生很多事情。一个time-slot又包含无数个delta-cycle。用questa可以通过输入run 0 来实现一个delta-cycle的时间。光标在45ns 显示的是它所有delta-cycle跑完以后最终显示的数据结果。delta-cycle检查最小延迟,而该时间单位没办法用绝对时间单位衡量,它要比最小精度单位还小。在刚进入45ns时(clk1上),d1显示1。经过一个delta-cycle,d1显示2。在45ns处,窗口还是可以正常显示的。

2023-04-23 22:40:20 387 1

原创 入住CSDN咯!

从今天起,开始分享有关数字ic验证方向我的一些见解,希望能帮助有需要的人,嘿嘿,大家一起学习,加油!闲来无事,记录一下码农心得。

2023-04-23 20:52:39 55 1

空空如也

空空如也

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

TA关注的人

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