2020年3月1日 星期日

EX4-8 已知布林函數F(a, b, c)及 G(a, b, c)


EX4-8 已知布林函數 F(a, b, c) = a + b 以及 G(a, b, c) = ac′ + bc′ + ac + bc,試畫出真值表與其邏輯電路圖。請問 F G 兩函數的關係為何?


//===============================
// Ch4.3  F, G circuit 
module EX10_1( a ,b, c, F,G);

input  a ,b, c; // 1位元輸入

output  reg F,G ; // Output    1位元輸出

always@ ( a ,b, c) begin
case ({a,b,c}) 
3'b000:begin
F=1'b0;
G=1'b0;
   end
3'b001:begin
F=1'b0;
G=1'b0;
   end
       
3'b010:begin
F=1'b1;
G=1'b1;
   end
3'b011:begin
F=1'b1;
G=1'b1;
   end
3'b100:begin
F=1'b1;
G=1'b1;
   end
3'b101:begin
F=1'b1;
G=1'b1;
   end
       
3'b110:begin
F=1'b1;
G=1'b1;
   end
3'b111:begin
F=1'b1;
G=1'b1;
   end
endcase
end
endmodule

//===============================
// 時間單位 100ns, 時間精確度100 ps
`timescale 100ns/100ps     
module Test_bench;
    // Inputs
    reg a ,b, c ;

    // Outputs
    wire F,G ;

    // Instantiate the Unit Under Test (UUT)
    //Ch4.3  F, G circuit
     EX10_1  UUT (
        .a(a), 
        .b(b), 
        .c(c), 
        .F(F),
        .G(G)
    );

    initial begin
        $monitor( a ,b, c, F,G);

        //Apply inputs
a=1'b0; b=1'b0; c=1'b0;
        #100;
a=1'b0; b=1'b0; c=1'b1;
        #100;
a=1'b0; b=1'b1; c=1'b0;
        #100;
a=1'b0; b=1'b1; c=1'b1;
        #100;
        a=1'b1; b=1'b0; c=1'b0;
        #100;        
  a=1'b1; b=1'b0; c=1'b1;
        #100;       
  a=1'b1; b=1'b1; c=1'b0;
        #100;       
a=1'b1; b=1'b1; c=1'b1;
        #100;        
        
    end
    initial begin
#1000  $stop;
end
endmodule
//===============================


觀察 F G 兩個布林函數的真值表,對所有的輸入組合而言,F G 的輸出值都相同,則稱此兩個函數是「同等的」、「全等的」或「等效的」(equivalent)。既然真值表完全一樣,我們也可以視上述 F 的邏輯電路圖與 G 的邏輯電路圖,是「同等的」、「全等的」或「等效的」。
假設有兩個電路,當輸入組合相同時,其輸出就會一樣,則這兩個電路可稱之為等效電路。從真值表就可證明,F G 的電路會是等效電路。

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...