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
Diszré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 is szemléletesebb. return F; } </source> |
<source lang="python">
def NOTgate(A): F = not A return F </source> |
Logikai és
Diszré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
Diszré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)
Diszré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
Diszré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 [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 XOR2gate(int A, int B) { int F; F = A + B; return F; } </source> |
<source lang="python">
def OR2gate(A, B): F = A + B return F </source> |
Demultiplexer (decoder)
Diszré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> |