第二階段測驗
第二階段測驗:
針對某 4 inputs, 1 outpout 電路進行真值表、K-Map化簡。並找出 0-Hazard 所在,進行改進設計使其成為 0-Hazard Free。所有數位電路設計均以結構化 Verilog 設計(僅使用 NAND 邏輯閘)。 最後於 SynaptiCAD 模擬驗證...
1. 由真值表中畫出卡諾圖,簡化卡諾圖並求出輸出的布林函數式。
2. 求出輸出布林函數後,以 Verilog HDL 來設計此電路,程式碼如下:
module verilog_1205(A,B,C,D,F);
input A,B,C,D;
output F;
wire a1,b1,c1,d1,f1,f2,f3,f4,f5;
// NOT
nand #5 (a1,A,A);
nand #5 (b1,B,B);
nand #5 (c1,C,C);
nand #5 (d1,D,D);
// Function
nand #5 (f1,a1,b1,d1);
nand #5 (f2,B,c1);
nand #5 (f3,A,B,D);
nand #5 (f4,A,b1,c1);
// Output
nand #5 (f5,f1,f2,f3,f4);
nand #5 (F,f5,f5);
endmodule
module testbench;
reg A,B,C,D;
wire F;
verilog_1205 V0 (A,B,C,D,F);
// 測試 0-Hazard 時使用
//==========================================
initial
begin
#0 A=0; B=0; C=0; D=0;
// hazard 1
#40 B=1;
#40 B=0;
// hazard 2
#40 A=1;
#40 B=1;
#40 B=0;
// hazard 3
#40 A=0;
#40 A=1;
#40 $finish;
end
//==========================================
// 測試真值表16個訊號時使用
//==========================================
initial
begin
A=0; B=0; C=0; D=0;
#800 $finish;
end
always #320 A=~A;
always #160 B=~B;
always #80 C=~C;
always #40 D=~D;
//==========================================
endmodule
3. 下圖為根據真值表輸入訊號組合所模擬出來的波形圖。
4. 由卡諾圖中可以找出此電路有四個 0-Hazard,如下圖所示。
分別在:
A:0 B:0←→1 C:0 D:0
A:1 B:0←→1 C:0 D:0
A:1 B:0←→1 C:0 D:1
A:0←→1 B:0 C:0 D:0
時會有 0-Hazard 產生。
5. 下圖為 0-Hazard 的模擬波形圖。
6. 在卡諾圖中進行修改設計,將 0-Hazard 消除掉,求出改進後的布林函式。
以下為改進後電路的 Verilog 程式碼:
module verilog_1205(A,B,C,D,F);
input A,B,C,D;
output F;
wire a1,b1,c1,d1,f1,f2,f3,f4,f5;
// NOT
nand #5 (a1,A,A);
nand #5 (b1,B,B);
nand #5 (c1,C,C);
nand #5 (d1,D,D);
// Function
nand #5 (f1,a1,b1,d1);
nand #5 (f2,B,c1);
nand #5 (f3,A,B,D);
nand #5 (f4,A,b1,c1);
// 0-Hazard Free
nand #5 (h1,A,c1);
nand #5 (h2,c1,d1);
// Output
nand #5 (f5,f1,f2,f3,f4,h1,h2);
nand #5 (F,f5,f5);
endmodule
module testbench;
reg A,B,C,D;
wire F;
verilog_1205 V0 (A,B,C,D,F);
initial
begin
#0 A=0; B=0; C=0; D=0;
// hazard 1
#40 B=1;
#40 B=0;
// hazard 2
#40 A=1;
#40 B=1;
#40 B=0;
// hazard 3
#40 A=0;
#40 A=1;
#40 $finish;
end
endmodule
7. 下圖為 0-Hazard Free 的模擬波形圖,由波形圖中可看到 0-Hazard 已被消除。
0 Comments:
張貼留言
<< Home