Bináris műveletek

Innen: HamWiki
Ugrás a navigációhoz Ugrás a kereséshez

Az alábbiakban a bináris értékekkel történő logikai műveletekről olvashatunk és implementálási lehetőségéről akár diszkrét alkatrészekkel, akár IC-vel, akár pedig Verilog áramkörleíró nyelven és C és Python programozási nyelveken.

Invertálás

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module NOTgate1(A, F);
   input A;
   output F;
   reg F;

   always @ (A)
   begin   
      F <= ~A;
   end
endmodule
int NOTgate1(int A) {
   int F;
   F = ~A; // tagadásra a !A szemléletesebb.
   return F;
}
def NOTgate(A):
    F = not A
    return F

Logikai és

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module AND2gate(A, B, F);
   input A;
   input B;
   output F;
   reg F;

   always @ (A or B)
   begin
      F <= A & B;
   end
endmodule
int AND2gate(int A, int B) {
   int F;
   F = A & B;
   return F;
}
def AND2gate(A, B):
    F = A and B
    return F

Logikai vagy

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module OR2gate(A, B, F);
   input A;
   input B;
   output F;
   reg F;

   always @ (A or B)
   begin
      F <= A | B;
   end
endmodule
int OR2gate(int A, int B) {
   int F;
   F = A | B;
   return F;
}
def OR2gate(A, B):
    F = A or B
    return F

Kizáró vagy (XOR)

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module XOR2gate(A, B, F);
   input A;
   input B;
   output F;
   reg F;

   always @ (A or B)
   begin
      F <= A ^ B;
   end
endmodule
int XOR2gate(int A, int B) {
   int F;
   F = A ^ B;
   return F;
}
def OR2gate(A, B):
    F = A xor B
    return F

Összeadás

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module ADD2gate(A, B, F);
   input [7:0] A;
   input [7:0] B;
   output [7:0] F;
   reg [7:0] F;

   always @ (A or B)
   begin
      F <= A + B;
   end
endmodule
int ADD2gate(int A, int B) {
   int F;
   F = A + B;
   return F;
}
def ADD2gate(A, B):
    F = A + B
    return F

Demultiplexer (decoder)

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
module Decoder(A, B, D);
   input A, B;
   output [3:0] D;
   reg [3:0] D;

   always @ (A or B)
   begin
      if( A == 0 && B == 0 )
         D <= 4'b0001;
      else if ( A == 0 && B == 1 )
         D <= 4'b0010;
      else if ( A == 1 && B == 0 )
         D <= 4'b0100;
      else
         D <= 4'b1000;
   end
endmodule
int Decoder(int A, int B) {
   int D;
   if ( A == 0 && B == 0 ) D = 1;
   else if ( A == 0 && B == 1 ) D = 2;
   else if ( A == 1 && B == 0 ) D = 4;
   else if ( A == 1 && B == 1 ) D = 8;
   return D;
}
def Decoder(A, B):
   if A == 0 and B == 0: D = 1;
   elif A == 0 and B == 1: D = 2;
   elif A == 1 and B == 0: D = 4;
   elif A == 1 and B == 1: D = 8;
   return D;

Folyt. köv.