Systemverilog中的logic和bit

SystemVerilog基础(1):数据类型 Verilog HDL中有19中数据类型:(与实际硬件电路映射)(1)连线型① wire, tri:标准连线型② wor, trior:多重驱动时,具有线或特性的连线型③ wand, trand:多重驱动时,具有线或特性的连线型④ trireg:具有电荷保持特性的连线型(用于电容节点的建模,缺省初始值为x)⑤ tri1, tri0:上拉/下拉电阻(若无驱动源,值为1/0)⑥ supply1, supply0:对电源(VCC)/地(GND)建模,即高电平1/低电平0(2)寄存器型:reg。 阅读详情

目录

1. logic

1.1 logic的作用

1.2 logic的使用

2. bit

2.1 bit的作用

3.总结


1. logic

1.1 logic的作用

简单来说,sv中引入logic变量类型,一方面logic拥有四值逻辑(x,z,0和1),能够更好地反映实际电路中的状态;另一方面,相比verilog中的reg和wire,sv中logic几乎在所有情况下都可以同时承担reg和wire的作用,使得在设计时,我们可以将更多的关注点放在代码设计上,而不是纠结使用reg还是wire。

注:sv中,logic可以在过程语句和连续赋值语句(assign)中使用。而verilog中reg只能用于过程语句(initial或者always),wire只能用于连续赋值语句(assign)。但sv中logic也不是万能使用的。如果遇到一个被多个驱动源驱动的信号,那么这个信号必须用wire类型。(不理解先记着)

1.2 logic的使用

module example;
logic A;
logic[3:0] B;
 
initial begin
$display("A=%b, B=%b", A,B);  //打印结果A=x,B=xxxx;因为logic默认值为x
B=4'b0011;
assign A=B[1];

$display("A=%b,B=%b",A,B); //打印结果A=1,B=0011;数据左边为低位,右边为高位,
                            //这里把B的第二位赋值给A

end
endmodule

2. bit

2.1 bit的作用

有些情况下(比如表示一个数据包的长度),x和z值并不会出现,或者不被需要,那么采用二值逻辑bit可以大大减少存储所需的空间,加快仿真。

module example1;
bit var_1;
bit [3:0] var_2;
logic [2:0] var_3;
 initial begin
$display("var_1=%b, var_2=%b, var_3=%b", var_1, var_2, var_3); 

//var_1=0, var_2=0000,                                                        
//var_3=xxx; bit默认值为0

var_2=4'b01zx;
 $display("var_2=%b",var_2);    // var_2=0100;x和z赋值给二值逻辑时,会转成0



endmodule

3.总结

logic和bit在sv中会频繁使用,一般来说,需要记住的点是:

1.logic四值逻辑,默认值为x;bit二值逻辑,默认值0;

2.除了被多驱动驱动的信号需要被声明为wire,其他情况基本都可以声明为logic;

3.当从四值逻辑变为二值逻辑时,x和z会转化成0

别再傻傻分不清了!SystemVeriloglogic、regwire到底该用哪个?(附代码避坑指南) 本文深入解析SystemVeriloglogic、regwire三种信号类型的核心差异与应用场景,通过代码示例综合案例对比,帮助开发者避免常见陷阱。重点探讨logic类型在组合逻辑时序逻辑中的优势,以及wire在双向端口中的必要性,提供实用的类型选择决策树现代编码规范建议。 阅读详情

相关推荐

SystemVerilog语法

参考[SV]SystemVerilog語法小結

青春易逝,愿不负昭华,期待梦与远方 1321

SystemVerilog基础数据类型

SystemVerilog引入了丰富的数据类型以增强硬件描述验证能力。主要数据类型包括:二值类型(bit、int等)、四值类型(logic、integer等)、实数类型(real、shortreal)字符串类型(string)。其中,logic是推荐的四值数据类型(0/1/X/Z),适用于硬件设计;bit是二值类型,主要用于测试平台;整数类型提供多种位宽选择;实数类型支持浮点运算;string类型则提供动态字符串处理功能。每种类型都有特定用途取值范围,如logic不能多驱动,实数类型不可综合。合理选择

2301_79143213的博客 976

【从零开始学习 SystemVerilog】2.2、SystemVerilog 数据类型—— logic bit(新的数据类型)

【从零开始学习 SystemVerilog】2.2、SystemVerilog 数据类型—— logic bit

努力,加油每一天鸭~ 1094

SV精通1-①数据类型-logic双状态数据

①数据类型-logic双状态数据 1.相比于Verilog的寄存器(register)类型reg线网(net)类型wire,在SV中引入了logic类型。 logic方便验证人员驱动连接硬件模块,省去考虑使用reg还是wire的精力。 logic为四值逻辑:0、1、X、Z; 与logic对应的是bit类型,为二值逻辑:0、1; 四值逻辑类型:integer、logic、reg、net-type(eg.wire、tri); 二值逻辑类型:byt...

changshengqiu的博客 4994

SV学习——数据类型(1)

enum 结构体

qq_39787102的博客 1813

4.【SVSystemVerilog logic

SystemVerilog中最重要的数据类型——logic!用最直接的方式告诉你:是验证工程师的"瑞士军刀",几乎在所有地方都能用!是SystemVerilog设计的万能数据类型,可以替代Verilog中的,简化你的代码。在理解之前,必须先理解硬件的4种状态: 为什么有4种状态?在Verilog里,你总要纠结:用还是用? SystemVerilog的"一统天下" 这就是的革命性:一个类型,两种用法! 场景2:替换大多数wire **四、logic的限制(唯一要注意的地方)**⭐ 关键规则:不能有多个驱

啄缘之间的博客 900

Systemverilog(绿皮书)学习日记(1)— 数据类型

systemverilog中数组的基本概念操作

weixin_48957185的博客 1146

数据类型 systemverilog语法 UVM

数据类型是任何编程语言的重中之重,任何编程不管是verilog、systemverilog、c、c++还是python等等,都是对数据的搬运处理。只有掌握好数据是什么样的,才能进行更好的实现我们需要的功能。

Qqyangleiyu的博客 1502

SystemVerilog学习笔记(二)

SystemVerilog学习笔记

weixin_45774715的博客 1105

SystemVerilog基础】双状态数据类型与四状态数据类型总结

SystemVerilog基础】双状态数据类型与四状态数据类型总结

悟已往之不谏 知来者之可追 7675

[SV]SystemVerilog枚举型变量语法详解及应用举例

SystemVerilog enum of logic bit int This section provides the examples to declare SystemVerilog enum of logic type, enum of bit type and enum of int type 一、Enum of lo...

元直的博客 6985

笔试总结(七)

下面代码,bc的值是多少? a = 10; b = a++; c = ++a; b=10,c=12。后置自增运算符仅在赋值后才进行自增,因此b得到的是自增前的值。前置增量运算符将首先进行自增,因此a将从11增加到12。 根据输入的n计算斐波那契数列 斐波那切数列是一种数列,每一项是通过将前两项相加得到的。从01开始,顺序为0,1,1,2,3,5,8,13…依次类推。通常,表达式为xn=xn-1 + xn-2。假设n的最大值为n=256,以下代码将生成第n个斐波拉契数。值n作为输入传递给模块。 mod.

weixin_43727437的博客 2383

SV学习知识小结

1、systemverilog package的作用以及includeimport的区别? 答:include是编译预处理语句,是将文件中的内容插入到当前文件中。 import是package里面的全部identifiers 或者指定identifiers 对当前作用域可见。 2、为什么resetn需要定义两次?一次在时钟块中,一次在modport中? 答:为了做到异步复位,同步释放。因此resetn有效时应当直接使用<接口实例名>resetn,释放时为<接口实例名>.resetn

StephenX9760的博客 2688

SV--logicbit 的区别

logicbit的使用注意事项

qq_44766339的博客 700

SV学习笔记——数据类型

记录从零开始学习SV语言的过程

weixin_51130882的博客 1094

Systemverilog整理(一) 数据类型

根据绿皮书总结

cxis0的博客 1697

3、SystemVeriloglogicbit、byte的区别?

数据类型

jiangjiang_5704的博客 2670

SV绿皮书学习_day1(数据类型)

systemverilog sv 绿皮书 验证

weixin_42292604的博客 1805
下一篇: verilog端口,sv端口,sv接口和modport
Follow自然
博客等级 码龄4年 9粉丝 24原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值