作者sasako (只想把你留在心中)
看板Electronics
标题Re: [请益] 请教有关verilog的nonblocking的写法...
时间Sat May 2 14:41:42 2009
※ 引述《LINAN322 (新热血阳光男孩NN)》之铭言:
: 不好意思,举了个不好的例子,
: 应该说,a值会随着clk一直改变的,
: 因为a是要传送的讯号...
: ,接着会进行运算,得到d值後,会将d值传送出去...
: 即d作为传送至下一级的讯号。
: b、c、d会因为运算,跟着改变其值,有相依性。
: 所以跟s大大说的,就是将reg储存起来。
我想你的意思应该是a 是个input
可能
b = a*2
c = b*2 + a
d = a + b + c
假如你想切pipeline,那你就要去合成看看一个乘法需要多少时间,
这样讲起来就是个计组概念,你的cycle需要多少时间决定在critical path,
然後你想要怎麽切,这就是你设计的考量,他会影响到输出的结果...
遇到data harard 就如同计组的方式去解决...
乘法1 bit ,2 bits...需要的时间都不太一样
加法当然也是,只是乘法需要的时间通常比加法多(在相同bit数)..
硬体通常会是有个trade-off的关系,想快,付出的硬体就大,这完全取决
你的需求,要去寻找平衡...
但是现在你的这些简单的运算也许是所有设计中的一小部分,那你就必须考虑
pipeline的必要性,又或是你只想要练习解决data hazard而已,那倒是可以去
尝试看看计组上的方法...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.103.42
1F:推 arclitetank:现实生活这种东西都是交给dc切 XDD 05/02 14:45
2F:→ sasako:dc功能强大无庸置疑 数位设计dc真的是个重要的tool.. 05/02 14:47
3F:推 TroyLee:hazard 05/02 21:56
※ 编辑: sasako 来自: 220.135.103.42 (05/02 22:01)