自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile

makefile的基本用法

2022-09-21 19:06:22 396 1

原创 SystemVerilog Schedule

Simulation Advancement仿真器不是按照真实时间推进而进行仿真的, 仿真器是基于event仿真推进,分成以下两个层次:time slotsevent仿真需要处理的最小单位是event, 每个event 都带有自己的timeslot信息,每个timeslots的具体实现就是一个event queue,这个queue里放着这个slots里所有需要处理的events。仿真是从timeslot 0开始的,首先执行timeslots 0 queue里的events,执行完成以后,执行下

2022-03-25 14:50:59 905

原创 DPI-C

What is DPI-C?DPI-C 是systemverilog为了与其他语言(c/c++)进行交互而设计的机制,通过DPI-C可以完成:SV call C functionC call SV functionExampletestbench.sv :module dpi_test; export "DPI-C" function sv_print; import "DPI-C" context function void c_print(); initial begi

2022-03-14 23:03:24 2782

原创 $cast一般用在哪里?

前言Systemverilog 是一种OOP的语言,经常在一些testbench中会看到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast呢,为什么会需要这个?由此我们会引出很多有意思的问题。问题1父类handle是否可以指向子类实例?如果可以,通过这个父类handle,是否可以访问子类的成员?子类handle是否可以指向父类实例?如果可以,通过这个子类handle,是否可以访问父类的成员?我们通过一组仿真来解释上面的问题class

2022-01-21 15:57:19 680 1

原创 Static and Automatic

Static Variable当class中声明了静态变量,我们从两个角度来说明:内存空间这个静态变量将会只有一份内存空间,即使这个class拥有多个instance,这个变量也只有一份,所有instance都共用这个变量。相反,动态变量是每个instance都有自己的一份变量,有各自的内存空间,有几个instance就有几个此变量,互相之间不会相互影响。静态变量可以通过class_type::variable去访问,即使class没有instance。需要注意的是,verilog中默认的变量是

2021-12-30 10:37:19 377

原创 compilation/elaboration/simulation

仿真器一般都会有如下三个阶段,这三个阶段所做的事情如下:compilation主要是读取源文件,处理语言的语法语义,报错也是报在语法和语义的检查上,并且转换成二进制的形式。elaboration主要处理hierarchy的结构,算parameter的值(override),处理hierarchical references,连线,处理bind等。准备好所有simulation需要的信息。simulation仿真DUT定义的行为。...

2021-12-29 17:48:22 821

原创 算法复杂度

经常在看算法的时候,会提到算法复杂度,那算法复杂度到底是什么,是怎么样来衡量算法的?通常衡量一个算法,是从两个维度进行考量的:运行时间占用内存空间这两个都是有限资源,第一个直接影响到算法的性能,关乎用户体验,第二个则直接与硬件内存相关,直接影响成本。所以整个算法的复杂度也是使用这两个维度作为标尺去考量一个算法。时间复杂度时间复杂度简单的理解就是一个算法的执行时间,由于硬件资源的不同,绝对时间没有意义。回到算法本身,每行代码都是要执行的,那执行的行数越多,所耗费的时间也越多,那么时间复杂度就

2021-12-29 12:57:25 244

原创 内存地址与内存空间

经常听人说,32位的电脑有效的内存最多是4GB,内存再多也没用,这是怎么回事?这里面隐藏了一些对于芯片基础的概念。32位这个实际指的是硬件和软件两个方面:CPU :地址位宽和数据位宽(通用寄存器)操作系统 : 提供相应的位宽的指令集需要此两方面配合才能做到更好的性能,比如32位的操作系统运行在64位的CPU上,只会提供CPU 32bit的指令,无法发挥64bit指令的优势。而反过来更是无法工作的。内存地址32位CPU的地址位宽,即CPU访问memory地址信号有32bit,那么其可以

2021-12-29 10:54:16 1630

原创 Force and Deposit in simulation

Force and DepositItemDepositForceStrengthit will put a value to a signal, but it will hold until it is overwrittenit will put a value to a signal, and this value will remain as such throughout the simulaiton. It cannot be overwritten by simul

2021-12-14 13:34:26 818

原创 VCS总结

verdi dumpdump 二维数组$fsdbDumpMDA(<level>,<path>);$fsdbDumpMDA的第一个参数是dump的层级,第二个参数为需要dump层级的Hierarchy,上面的例子,第一个参数取值不同,需要dump的内容也不同。0: 当前级及其下面所有层级,如top.A, top.A.a,所有在top下面的多维数组均会被dump1: 仅仅dump当前组,也就是说,只dump top这一层的多维数组。VCS compile options-

2021-08-26 13:55:00 4176

原创 timescale

`timescale 1ns/1psmodule A; initial begin $printtimescale(); endendmodule `timescale 1ns/1nsmodule B; initial begin $printtimescale(); endendmodule module C; initial begin $printtimescale(); endendmodulemodule D; t

2021-05-12 10:49:32 2287

原创 自然对数e是干啥的?

自然对数e是用来干嘛的?e与投资复利有什么关系吗?

2021-03-10 10:52:24 1488

原创 Linux常用命令

查询当前目录下各个子目录的大小 du -h --max-depth=1 .查询当前盘的大小 df -h .

2021-03-08 11:31:52 75

原创 SVA:并发断言的$rose, $fell, $past

Examplesproperty check (@ posedge clk) $rose(a) -> ##1 b[*3] ##1 cendproperty checker : assert property(check)在上式中,需要关注的两点:并发断言的采样时钟边沿的跳变,是否和时序逻辑采样值一样?$rose和posedge是否一样?并发断言的采样并发断言是根据每个时钟边沿的采样值,进行逻辑判断后,确认断言的成功和失败。和正常的时序逻辑采样相同,在时钟沿跳变的变量,在当

2021-03-02 11:35:19 7891

原创 动态规划(1)

动态规划解决什么问题?提供一种解决复杂问题的思路。将复杂问题拆分成多个简单的子问题。通过解决多个子问题,来解决原问题。提供一种优化方式在很多重复子问题时, 只计算一次后记忆化保存。下次遇到同样问题时候,直接查表,避免重复计算。什么是记忆化存储?将计算过程中,大计算量的函数返回值保存在数据结构中,以便再次需要时直接从数据结构中取出,避免大量复杂的重复计算。提高运算速度。这其实是一种空间换时间的思路,通过扩大空间来减少时间,具体用多大的空间是个trade off。应用场

2021-01-05 13:37:41 93

空空如也

空空如也

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

TA关注的人

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