作者evered05 (evered)
看板Electronics
标题Re: [问题] 关於verilog coding style的问题
时间Thu Apr 26 13:00:45 2007
※ 引述《renj (地下情人)》之铭言:
: ※ 引述《flawless (o_O)》之铭言:
: : 可能我没说清楚我的意思
: : 我想问的是...我是希望在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];
如果想在这边作一个条件限制
例如 if A+B>const(ex:65525)
{
comtent
}
这样写法可行吗??
: 直接把 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: 140.116.131.92
1F:推 tkhan:为何要加这个限制?.. 04/26 13:57
2F:→ tkhan:这不是在写C喔.. 04/26 13:57