您的位置: EDA中国门户网站 >> 技术讨论 >> HDL语言 >> 查看帖子
字体: 小 中 大 | 打印 发表于: 2008-11-07 10:40 作者: yuelengyueming 来源: EDA中国门户网站
type1.JPG
type2.JPG
type4.JPG
type3.JPG
type5.JPG
type6.JPG
type7.JPG
type8.JPG
最新回复
yuelengyueming (2008-11-07 10:44:35)
scsunjia (2008-11-07 12:29:55)
zhide1983 (2008-11-07 12:35:06)
包括所谓的截取,符号扩展等
最好的做法是保证赋值两端位宽相等,怎么扩展直接根据自己需要
而不是交给仿真或综合工具
万一不同仿真器对这些语句解析不一样,导致的结果会很严重的
良好的代码风格本来就不存在这方面的混淆
yuelengyueming (2008-11-07 12:49:46)
cava (2008-11-07 13:30:44)
radar (2008-11-07 13:38:14)
zhide1983 (2008-11-07 16:12:47)
但是我绝对认为下面的这种代码风格比靠signed关键字完成的符号扩展要好
wire [3:0] a;
wire [4:0] b;
assign b = {a[3],a[3:0]};
而且至今为止我看过的各个公司的代码规范
各种lint工具,如NOVAS的nLint,SYNOPSYS的LEDA等,都认为不同位宽赋值是不好的规范
报warning或者error
yuelengyueming (2008-11-07 16:19:41)
blizzardyjc (2008-11-08 01:46:25)
songchao01 (2008-11-08 13:31:03)
比较直观的一个印象应该是高位维持赋值前的原值不变呀...
24272809 (2008-11-10 10:00:10)
dio65759465 (2008-11-10 13:38:05)
但是作为真正用于电路开发,要实际用的东西 这些做法是很不好的
因为在开发里面必须保证每个部分都是明确的可控的,加一个位数不定的赋值会影响这一点 而且也对同组的人理解你的代码造成困难
另外 楼主确实肯下功夫哈 多了解些东西确实有帮助
yuelengyueming (2008-11-10 16:29:14)
caesar000 (2008-11-10 16:35:16)
但是利用工具默认扩展一直是各种代码规法所不允许的,工具也会给出很多warning,看死你。
amin2008 (2008-11-10 23:15:30)
pengfeng (2008-12-19 22:43:35)