作者LINAN322 (新热血阳光男孩NN)
看板Electronics
标题Re: [请益] 请教有关verilog的nonblocking的写法...
时间Sat May 2 14:46:05 2009
你的意思是说,
如果运算式:
先令
ip第0个clk为 2 ;
ip第1个clk为 4 ;
第一级Block:
a = ip ;
b = a * 2 + 3 ;
c = a + 2 * b ;
d = a + b + c ;
第二级Block:
e = d * 2 ;
就可以写成
always @ (posedge clk) begin
case (i)
1: begin
a = ip ;
i = i+1 ;
end
2: begin
e = d * 2 ;
i = i+1 ;
end
3: begin
...
end
....
default: begin
i=i;
end
end
assign b = a * 2 + 3 ;
assign c = a + 2 * b ;
assign d = a + b + c ;
以上的都还好,
可是d = a + b + c,这一行会不会怪怪的...
就是当b改变,d也会变,但是c还没改变...
就已经得到d的数值...
还是时间控制好,就没有问题。
※ 引述《titansan (ㄎㄎ!)》之铭言:
: ※ 引述《LINAN322 (新热血阳光男孩NN)》之铭言:
: : 不好意思,举了个不好的例子,
: : 应该说,a值会随着clk一直改变的,
: : 因为a是要传送的讯号...
: : ,接着会进行运算,得到d值後,会将d值传送出去...
: : 即d作为传送至下一级的讯号。
: : b、c、d会因为运算,跟着改变其值,有相依性。
: : 所以跟s大大说的,就是将数值储存起来。
: 这样a应该是属於sequential的电路
: b c d应该就是单纯的combination的电路
: 那何不写成
: assign b=
: aggign c=
: aggign d=
: always @ (posedge clk)
: ...
: ...
: a=
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.178.157
※ 编辑: LINAN322 来自: 140.138.178.157 (05/02 14:53)
1F:推 pow:你想想硬体要怎麽设计 然後再开始写RTL 05/02 20:50
2F:推 pow:要让那些数值有相依性 就要让他们在不同的clock做动 05/02 20:54