上完课写个review 之一
-
reference
这个还没用过,只是围观过。reference 主要就是一个handle,可以直接拿到数。但也有危险,修改的时候不小心把不该改的给改了,这个时候可以选择加一个const,就怎么也改不掉这个数了。最好不要在很多不同的地方改同一个东西,感觉最后会弄的跟蜘蛛网一样,反正以我的智商是搞不定这种的。
通过这个reference还可以引出一个automatic和static的概念。reference只能用在automatic的task或者function里。至于automatic代表这个task或者function是独立的,每次调用的本地值都是各不相同的。而static表示多次调用会引用同一个本地值,也就是一次调用,变化全部可见。一般用的比较多的是automatic,大部分情况下这个就是默认值。但在module里是static。暂时还没用过static,了解一下,说不定就能用上。
-
process
这个也没用过,在需要产生不同random seed的时候会用到。是一个内建的类。
-
local 和 protected
都是不知道的。local 只能在class里面可见;protected 在class 和subclass里面可见。暂时好像也没地方用到。
-
参数类
不仅可以传个值,传个类型也是可以的! -
rand class
俄罗斯套娃一样的class,里面的是rand不出东西的。写了个套在一起的struct,好像也没rand出来,但这个还得再试下。 -
covergroup
感觉发现了新大陆,还可以cross这样做,但看到这样都是给两组,然后做cross,不知道两组以上可不可以,应该会有方法。还可以把covergroup放到class里面。 -
!和 ~ 的区别
!:logic negation, 经常用在if里,只有0才会出1,不然全是false。
~:每位都取反。
这些也可以引申到 | 和 ||, & 和 && 这些。