作者sasako (只想把你留在心中)
看板Electronics
标题Re: [请益] 请教有关verilog的nonblocking的写法...
时间Sat May 2 14:56:35 2009
※ 引述《LINAN322 (新热血阳光男孩NN)》之铭言:
: 你的意思是说,
: 如果运算式:
: 先令
: 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 ;
: 就可以写成
: 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
: assign b = a * 2 + 3 ;
: assign c = a + 2 * b ;
: assign d = a + b + c ;
: 以上的都还好,
: 可是d = a + b + c,这一行会不会怪怪的...
: 就是当b改变,d也会变,但是c还没改变...
: 就已经得到d的数值...
: 还是时间控制好,就没有问题。
不是唷!所谓a是input,就是你用testbench去控制...
要不然你想要把a嵌进电路里也可以...
将a写成一个简单的counter,随着clk去变动他的值..
接下来...
关於case的写法,他通常会是个多工器...
在你的设计中应该是不需要用到此写法...
counter很简单
always @ (posedge clk or negedge n_rst) begin
if(n_rst)
a <= 0 ;
end else
a <= a + 1 ; ##想要加什麽数字都可以
end
end
至於pipeline的观念,我是觉得你还没建立完全,不知道该从何讲起,
只好请你先翻翻书罗....><"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.103.42
1F:推 LINAN322:嗯,好,我会多看一些书的..谢谢︿︿ 05/02 15:12