2008年10月13日 星期一

Full Adder

module fadd(sum,c_out,a,b,c_in);

input a,b,c_in;

output sum,c_out;

wire w1,w2,w3;

hadd M1(w1,w2,a,b);

hadd M2(sum,w3,w1,c_in);

or(c_out,w2,w3);

endmodule

SynaptiCAD 試用版

http://www.dyu.edu.tw/~cschen/Verilog%20Computer%20Design/SynaptiCAD.exe

2008年10月6日 星期一

HW2 half adder

module hadd(sum,c,a,b);
input a,b;
output c,sum;
wire c_bar;
xor(sum,a,b);
nand(c_bar,a,b);
not(c,c_bar);
endmodule

HW1

module top;
wire a,b;
reg c;
system_clock #100 clock1(a);s
ystem_clock #50 clock2(b);
always#1 c=a&b;
endmodule

module system_clock(clk);
parameter p=100;
output clk;
reg clk;
initial
clk=0;
alwaysbegin#(p/2) clk=~clk;
#(p/2) clk=~clk;
end
always@(posedge clk)if($time>1000)#(p-1)$stop;
endmodule