2008年12月15日 星期一

加分考~~~

加分考題目


module top;
wire a,b,c,d,f;

system_clock #400 clock(a);
system_clock #200 clock(b);
system_clock #100 clock(c);
system_clock #50 clock(d);

Unit U1(f,a,b,c,d);

endmodule


module Unit(f,a,b,c,d);
input a,b,c,d;
output f;
wire a1,b1,d1;
wire w1,w2,w3;
not(a1,a);
not(b1,b);
not(d1,d);
and(w1,c,d1);
and(w2,a1,b1,c);
and(w3,a,b,c);
or(f,w1,w2,w3);

endmodule
module system_clock(clk);
parameter PERIOD =100;

output clk; reg clk;


initial
clk=0;

always
begin
#(PERIOD/2)clk=~clk;
#(PERIOD/2)clk=~clk;
end

always@(posedge clk)
if($time>1000) #(PERIOD-1)$stop;
endmodule



完成後 (上圖程式碼)用產生之訊號輸出如圖

沒有留言: