星期五, 4月 28, 2006

NAND delay

程式碼
module top;
reg A1,B1;
wire o;
nanf201 G1(o,A1,B1);
initial
begin
A1=0;
B1=0;
#500 $finish;
end
always
#50 A1=~A1;
always
#30 B1=~B1;
endmodule
module nanf201(o,A1,B1);
input A1,B1;
output o;
nand(o,A1,B1);
specify
specparam
Tpd_0_1=1.13:3.09:7.75,
Tpd_1_0=0.93:2.5:7.34;
(A1=>o)=(Tpd_0_1,Tpd_1_0);
(B1=>o)=(Tpd_0_1,Tpd_1_0);
endspecify
endmodule
===================================================================
這次實作讓我暸解訊號的delay如何運作

星期五, 4月 14, 2006

Add_Full

程式碼
module top;
reg a,b,c_in;
wire sum,c_out,w1,w2,w3;
Add_half M1(w1,w2,a,b);
Add_half M2(sum,w3,w1,c_in);
or(c_out,w2,w3);
initial
begin
a=0;
b=0;
c_in=0;
#2000 $finish;
end
always
#200 c_in=~c_in;
always
#50 a=~a;
always
#100 b=~b;
endmodul
emodule Add_half(sum,c_out,a,b);
input a,b;
output sum,c_out;
xor (sum,a,b);
nand (c_out_bar,a,b);
not (c_out,c_out_bar);
endmodule
===================================================================
經過多次歷練
現在對程式也有一定了解
寫程式的速度也越來越快
這次的全加器在不了解的地方
也很快就解決了
這次用2個半加器合成一個全加器
滿有意思的