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



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

2008年12月8日 星期一

加分題

以下為1個2位元之比較器
把卡諾圖化簡以後會得到:f = a'b'cd' + bc'd + abd + ac'

(上圖程式碼)用產生之訊號輸出如圖
輸入訊號與a、b、c、d相關,d的訊號是10101010...,c的訊號是0011001100...,c = 2d,同理,a = 2b = 4c = 8d。所以f = 1即訊號的up。