作者renj (地下情人)
看板Electronics
标题Re: [问题] 关於verilog coding style的问题
时间Sun Mar 18 22:14:00 2007
※ 引述《flawless (o_O)》之铭言:
: : 我觉得讲法有点怪怪的,为什麽是synthesis之後,才开始想要
: : 做"接线动作"...
: : 我的想法是,为什麽不是在RTL code里面就已经进行好"接线动作"...
: : 然後才拿去跑design vision吗?
: : 我的意思是你所讲的将进位喂给其他模组,不是应该在RTL code里面就
: : 写好了吗???
: 可能我没说清楚我的意思
: 我想问的是...我是希望在RTL code中, 把carry out 丢给另一个sub-module
: 问题是怎麽写??
: 在RTL中 加法就直接 S=A+B+CI;
: 这样在synthesis过程中,就会直接叫用design ware的adder module
: 可是我的RTL code 要写成怎样....
: 才能在synthesis的过程中,design compiler 会辨认你的语法,是要将adder
: 的 carry out bit assign给某个 variable 'CO' ??
: 感激不尽!!
wire [19:0] A,B;
wire [20:0] S;
wire CI,CO;
assign S = A + B + CI;
assign CO = S[20];
直接把 S 做多一个 bit 的宣告 carry out 自然会进位 MSB 所以 CO 就等於 S[20]
但 S 就会是 21-bits 输出,若坚持要 20-bits 输出的话就另外把输出拉到 S[19:0]
希望这样可以解决你的问题...
在不行的话,你可能得自己去把 gate-level 的 1-bit adder 写出来一个一个兜?
或者还有其他作法吗?还请多多指教 :P
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.194.56