Verilog中“&&”和“&”的区别是什么?

 我来答
NS138613
高粉答主

2019-07-09 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:2.5万
展开全部

一、意思不同

1、&&:代表逻辑与

2、&:代表与门运算(按位与)。

二、计算方式不同

1、&&:5'b10000 && 5'b10001 结果为1。

2、&:5'b10000 & b'b10001 结果为5'b10000。

扩展资料

Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言,C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。

一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。不过,Verilog与C语言还是存在许多差别。

另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。

参考资料来源:百度百科-Verilog

床前明月儿
高能答主

2019-07-01 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171934

向TA提问 私信TA
展开全部

一、意思不同

1、&&:代表逻辑与。

2、&:代表与门运算(按位与)。

二、计算方式不同

1、&&:5'b10000 && 5'b10001 结果为1。

2、&:5'b10000 & b'b10001 结果为5'b10000。

扩展资料

Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。

此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。


Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。

Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

参考资料来源:百度百科-Verilog

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z风起
高粉答主

2019-09-27 · 说的都是干货,快来关注
知道小有建树答主
回答量:249
采纳率:100%
帮助的人:3.7万
展开全部

1、两者概念不同

&&是逻辑与:即判断&&两侧的表达式是否都为真,都为真则此&&表达式值为真;

& 是按位与:即将&两侧的数用二进制展开,每一位都求与运算(二进制与运算,跟逻辑与差不多),最后得到的二进制数即为结果;

2、两者结果不同

逻辑与结果只讲真和假,而按位与得出的却是实实在在的一个数。

以一个Verilog测试程序为例,说明两者之间的区别:  

module test (CLK, AA, BB, CC, AOUT, BOUT, COUT, DOUT);

input CLK;

input[3:0] AA,BB,CC; 

output AOUT,BOUT,COUT,DOUT;

reg AOUT;

reg BOUT;

reg COUT;

reg DOUT;  

always @(posedge CLK)//检测时钟上升沿

begin : u1 

   if (AA && CC && BB)

   begin

      AOUT<=1'b1 ;

   end

   else

   begin

      AOUT<=1'b0 ;

   end

end

always @(posedge CLK)//检测时钟上升沿

begin : u2

    if (AA & CC & BB)

   begin

      BOUT<=1'b1 ;

   end

   else

   begin

      BOUT<=1'b0 ;

   end

end    

always @(posedge CLK)//检测时钟上升沿

begin : u3  

   if ((AA>5) && (CC<8) && (BB>4))

   begin

      COUT<=1'b1 ;

   end

   else

   begin

      COUT<=1'b0 ;

   end

end

always @(posedge CLK)//检测时钟上升沿

begin : u4  

   if ((AA>5) & (CC<8) & (BB>4))

   begin

      DOUT<=1'b1 ;

   end

   else

   begin

      DOUT<=1'b0 ;

   end       

end

endmodule  

上面三个always @()中分别用到如下三种if判断表达式  

(AA && CC && BB)  

(AA & CC & BB) 

((AA>5) && (CC<8) && (BB>4))  

((AA>5) & (CC<8) & (BB>4))  


扩展资料:

对这四条表达式进行逻辑分析  :

1、(AA && CC && BB)  

逻辑分析:  

当AA、BB、CC都为非0数时,表达式为“1”。  

怎么判断AA、BB、CC为非“0”,先分析一下为“0”的情况。

当AA为0的时候,AA等于4'b0,即每位都为0,即只需AA的4位矢量之间做一下“逻辑或”运算,AA[3] || AA[2] || AA[1] || AA[0],也可写成(|AA);

当4位矢量中只需有一位不为0,那么AA就必然不为“0”。  

整个实现过程就是,先AA、BB、CC各自本身的各位之间做“逻辑或”运算,运算的结果之间做“逻辑与”运算。

 2、(AA & CC & BB)

 逻辑分析:  

表达式(AA & CC & BB)等效为:

((AA[3] & BB[3] & CC[3])  || (AA[2] & BB[2] & CC[2])  || 

(AA[1] & BB[1] & CC[1]) ||  (AA[0] & BB[0] & CC[0]))

即只需要其中有一个表达式(AA[i] & BB[i] & CC[i]) 不为“0”,则整个结果就为“1” ,i取0到3。

 3、((AA>5) && (CC<8) && (BB>4))

 逻辑分析:

 表达式(AA>5)、(CC<8)、(BB>4)结果均为1位的逻辑量,三个逻辑量之间做“逻辑与”。

 4、((AA>5) & (CC<8) & (BB>4))

 逻辑分析:

 三个一位的逻辑量之间做“逻辑与”和“位与”是等效的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创旧黄
推荐于2019-11-14 · TA获得超过1269个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:416万
展开全部
前者是逻辑与
后面是与门运算(按位与)

5'b10000 && 5'b10001 结果为1
5'b10000 & b'b10001 结果为5'b10000
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式