DanielDeng 发表于 2010-11-4 13:55:20

Verilog中的 & 和 && 之区别

Verilog中的 & 和 && 分别会被综合成什么电路呢?

例一:
wire a;
wire b;

assign a = b;

被Xilinx的ISE综合后,会产生一个警告:
WARNING:Xst:646 - Signal <b<7:1>> is assigned but never used. This unconnected signal will be trimmed during the optimization process.

例二:


wire a;
wire b;

assign a = b & 8'h01;

被Xilinx的ISE综合后,也会产生一个警告:
WARNING:Xst:646 - Signal <b<7:1>> is assigned but never used. This unconnected signal will be trimmed during the optimization process.


例三:
wire a;
wire b;

assign a = b && 8'h01;


被Xilinx的ISE综合后,就不会产生警告。

但不敢确定这样做,是否能够达到取 b 的最低位赋值于 a 的目的。

DanielDeng 发表于 2010-11-4 14:13:56

想了又想,第三种方式使用 && 是不对的。

看来如果想只取一个8位寄存器的其中一位,就一定没法消除这种警告了--虽然这个警告并不碍事。

lbc___ 发表于 2010-11-4 15:03:10

你看看这个警告嘛:Signal <b<7:1>> is assigned but never used.
是警告你的程序里b的其他位没有使用,你要是在其他地方用了b的所有位,就应该不会有这个警告了。

zhangxin0804 发表于 2010-11-4 17:06:59

这两个与的区别应该是

一个是逻辑与一个是关系与吧

p.nicholas 发表于 2010-11-5 08:42:36

按位与和逻辑与

guolh 发表于 2010-11-5 14:35:01

第三种用法有问题,前两种只不过是把没有使用的优化掉了

leilei2268967 发表于 2010-11-7 09:23:32

楼上正解,楼主要仔细看Warming
页: [1]
查看完整版本: Verilog中的 & 和 && 之区别