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。

2008年10月27日 星期一

十月二十號的課堂練習

此為20號的課堂練習~快要期中考了,得加緊努力

2008年10月13日 星期一

2008 10/13 半加法器練習操作


module top;
wire a,b;
wire sum,c_out;

system_clock #100 clock1(a);
system_clock #50 clock2(b);

Add_half AH1(sum,c_out,a,b);

endmodule

module Add_half(sum,c_out, a, b);

input a,b;
output sum,c_out;
wire c_out_bar;


xor(sum, a, b);
nand(c_out_bar, a, b);
not(c_out,c_out_bar);
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年10月6日 星期一

10.6日上課內容

Design a verilog model of a half adder and write a testbench to verify the designed verilog model。

module Add_half (sum,c_out,a,b);
input a,b;
output sum,c_out;
wire c_out_bar;
xor (sum,a,b);
nand (c_out_bar,a,b);
not (c_out,c_out_bar);
endmodule

2008年9月22日 星期一

9/22第一次的實習圖


這是老師上課交的第一個題目
當完成後有股成就感,希望以
後也能靠自己寫很多程式作圖
module top;
wire a,b;
reg c;
System_clock #100 clock1(a);
System_clock #50 clock2(b);
always
#1 c=a&b;
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年9月15日 星期一

verilog學習營  9/15

辛樂克颱風還沒走,我們還是得淋雨到學校上課,晚上~

肚子好餓,不過還是得上課

不過老師人很好

我想這堂課應該會上的很愉快~