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
<source lang="verilog">

module NOTgate1(A, F);

  input A;
  output F;
  reg F;
  always @ (A)
  begin   
     F <= ~A;
  end

endmodule </source>

<source lang="c">

int NOTgate1(int A) {

  int F;
  F = ~A; // tagadásra a !A szemléletesebb.
  return F;

} </source>

<source lang="python">

def NOTgate(A):

   F = not A
   return F

</source>

Logikai és

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
<source lang="verilog">

module AND2gate(A, B, F);

  input A;
  input B;
  output F;
  reg F;
  always @ (A or B)
  begin
     F <= A & B;
  end

endmodule </source>

<source lang="c">

int AND2gate(int A, int B) {

  int F;
  F = A & B;
  return F;

} </source>

<source lang="python">

def AND2gate(A, B):

   F = A and B
   return F

</source>

Logikai vagy

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
<source lang="verilog">

module OR2gate(A, B, F);

  input A;
  input B;
  output F;
  reg F;
  always @ (A or B)
  begin
     F <= A | B;
  end

endmodule </source>

<source lang="c">

int OR2gate(int A, int B) {

  int F;
  F = A | B;
  return F;

} </source>

<source lang="python">

def OR2gate(A, B):

   F = A or B
   return F

</source>

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
<source lang="verilog">

module XOR2gate(A, B, F);

  input A;
  input B;
  output F;
  reg F;
  always @ (A or B)
  begin
     F <= A ^ B;
  end

endmodule </source>

<source lang="c">

int XOR2gate(int A, int B) {

  int F;
  F = A ^ B;
  return F;

} </source>

<source lang="python">

def OR2gate(A, B):

   F = A xor B
   return F

</source>

Összeadás

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
<source lang="verilog">

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 </source>

<source lang="c">

int ADD2gate(int A, int B) {

  int F;
  F = A + B;
  return F;

} </source>

<source lang="python">

def ADD2gate(A, B):

   F = A + B
   return F

</source>

Demultiplexer (decoder)

Diszkrét elemekből

Integrált áramkörrel

Áramkörleíró nyelven és programnyelven

Verilog áramkörleíró C programnyelv Python programnyelv
<source lang="verilog">

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 </source>

<source lang="c">

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;

} </source>

<source lang="python">

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;

</source>

Folyt. köv.