Bináris műveletek
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.
Tartalomjegyzék
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> |