2007年4月22日 星期日

乘法器之第一階段

總算做好第一階段了,這次是延用老師給的例程式而修改出來的,雖然並不是全部都自己做的,但只修改一些局部的地方,就已經讓我受益良多,而一些指令還有些不清楚,有機會一定要去上網深入了解。
============================================

局部的程式碼

always
begin
@(posedge sysclk) enter_new_state(`IDLE);
r1 <= @(posedge sysclk) x;
r2 <= @(posedge sysclk) y;
ready = 1;
if (pb)
begin
while (r2 > 1 pb)
begin
@(posedge sysclk) enter_new_state(`COMPUTE);
r1 <= @(posedge sysclk) r1 + x;
r2 <= @(posedge sysclk) r2 - 1;
r3 <= @(posedge sysclk) r1;
end
end
end

2007年4月2日 星期一

課堂範例-除法器的試跑














=====================================
今天老師教的東西,感覺都蠻深奧的,除法器要改作為乘法器,到現在還是一點頭緒也沒有,看來就只有等到借到中文書,然後再自己好好琢磨一下,若有不會的問題,再去跟老師討論一下,不然就以現今我的程度,問題應該蠻多的,有道是"欲練其功,必先利其器",有一定的基礎,這樣才能在上這堂課的時候,有比較好的表現!

2007年3月19日 星期一

網路上的範例--除法器

這是在網路上抓到的範例程式,是從老師給的blog中的“崑山科大電子系 梁東雄老師教學網頁”所找到的,用SynaptiCAD試跑之後,發現裡面的程式碼有隱藏的字元,倘若沒有注意到的話,所跑出來的程式就會出錯,所以在參考網路上範例的時候,定要注意裡面有沒有隱藏的字元,由於是第一堂課,就先熟悉一下SynaptiCAD的操作,以便在往後的課堂上有更好的表現。
===================================
module div(r1,r2,r3,pb,clk,x,y,ready) ;

input pb , clk;
input [3:0] x,y;
output [3:0]ready,r3,r2,r1;
wire pb;
wire[3:0] r1,r2,r3;
reg[3:0] r1,r2,r3,ready;

always
begin
@(posedge clk)
r1<=x ;
r2<=0 ;
ready=1;
if (pb) begin while(r1>=1)
begin
@(posedge clk)
r1<=r1-y;
@(posedge clk)
r2<=r2+1;
@(posedge clk)
r3<=r2;
end
end
end
endmodule