微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 输入或操作

输入或操作

时间:10-02 整理:3721RD 点击:
在观看别人的代码时,总是能看到这样一种结构:对输入变量和0进行或操作,这有什么作用吗?为什么if中的判断不直接用输入呢?例如module DW01_addsub (A,B,CI,ADD_SUB,SUM,CO);
assign ADD_SUB_int = (ADD_SUB | 1'b0);//对输入和0进行或操作
always
begin
if (ADD_SUB_int == 1'bX)
begin
sum_out = {width {1'bX}};
c_out = 1'bX;
SUM <= sum_out;
end
else if (ADD_SUB_int == 1'b0)
begin
plus(sum_out,c_out,A,B,CI);
SUM <= sum_out;
end
else
begin
subtract(diff,c_out,A,B,CI);
SUM <= diff;
end
CO <= c_out;
@(A or B or CI or ADD_SUB_int);
end

關於" assign ADD_SUB_int = (ADD_SUB | 1'b0);//对输入和0进行或操作 ",
無法理解有何作用, 也許變成這樣, 是有它的 history, 可以前是有一信號和其作 OR,
但發現 bug, 在 ECO 後, 直接 tied 的 low. 比較好 ECO
.
.
.
begin
subtract(diff,c_out,A,B,CI);
SUM <= diff;
end
CO <= c_out;
@(A or B or CI or ADD_SUB_int);// 不知道為何會在此
end
顯然, 這樣的 code 是没有經驗的新手寫的, 可讀性不佳,

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

网站地图

Top