1.1 logic类型
Verilog中有线网类型(net)和变量类型(variable)这两种,都是四值逻辑的,声明都是类型+声明列表,wire类型只可以被连续赋值,reg只可以被过程赋值,使用reg的时候不一定会生成寄存器,是因为从仿真的角度来看需要一个寄存器来储存变量,和综合过后的电路没有直接的联系。
Systemverilog里面也是网类型(net)和变量类型(variable)这两种,声明的方式为:类型+数据类型+声明列表,线网的类型一般有wire、tri、wand、wor等等,变量类型只需要关键字var即可,而且var还是可以省略的。SV对reg数据类型进行了改动,除了可以作为一个变量以外还可以被连续赋值、门单元和模块所驱动,称为logic,任何可以使用线网的地方都可以使用logic,但是要求logic不能拥有多个结构性驱动。
logic使用的场景如果是验证的话,那么他只会作为单纯的变量进行赋值,这些变量也只属子软件环境构建。因为SV作为侧重验证的语言、并不十分关切logi对应的逻辑应该被综合为寄存器还是线网。logic被推出的另外一个原因也是为子方便验证人员驱动和连接硬件模块、而省去考虑究竟该使用reg还是wire的精力。这既节省了时间,也避免了出错的可能。
在SV里面连续赋值的左值支持变量类型,而Verilog里面仅支持线网类型。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



