微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请问两段代码的区别

请问两段代码的区别

时间:10-02 整理:3721RD 点击:
请教这两个电路有什么区别:
...
input a;
output b;
reg b;
always @ (a)
if(a)
b=1'b1;
else
b=1'b0;
------------------------------------------------------------
...
input a;
output b;
assign b= a ? 1'b1 : 1'b0;
他俩电路一样吗? 请帮忙指教,谢谢

实现的功能是一样的

不过初始状态可能会有问题,即a=1时,b=0或者a=0时,b=1

实现的功能是一样子的吧,应该是综合出来的电路不一样。

综合出来的电路是一样的

dang  ran  s  yi  yang  de

以前的综合工具出来可能会不一样,现在都一样了.

没有区别

合成出来是一样的,只是simulation是不同的,当a=x的是时候,第一个和第二个不同,可以试下。

学习了

哦 这样子啊,谢谢各位指教~

那么请问,当我把always里面的else去掉的话,是不是b会在a=0时保存原来的值啊?
always @ (a )
begin
  if(a)
    b=1'b1;
end
那要是保存的话,b是通过什么cell保存的,是register吗?

是latch

latch

谢谢了。

分支语句没写全会生成latch

综合后的电路完全一样

功能一样的,不过感觉第二种比较简洁

功能一样啊

好像没有区别啊

功能一样,实现也一样

不都是
“assign b=a;”
么?

dc很强大,综合出来的应该一样

综合出来的是一样的 验证也一样的

综合出来的电路不一样,功能一样,不过第二种简单点呀

o 了解了, 谢谢各位

综合出来的电路是一样的。

综合出来的电路时一样的,仿真的结果可能不一样。

    这样的话,综合出来的电路会产生一个锁存器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top