Forum: FPGA, VHDL & Co. Spielerein mit Gatter : And ,Or usw in VHDL?


von Peter B. (funkheld)


Angehängte Dateien:

Lesenswert?

Hallo, guten Tag .
Ich möchte einen Art Gatterbaukasten haben zum Spielen in VHDL.
Hiermit wird schon etwas dargestellt:
1
library ieee; 
2
use ieee.std_logic_1164.all; 
3
use ieee.numeric_std.all; 
4
5
entity logi is
6
    
7
port(
8
  sw0 : in  std_logic;
9
  sw1 : in  std_logic;
10
  sw2 : in  std_logic;
11
  sw3 : in  std_logic;
12
  led : out  std_logic
13
);
14
end logi;
15
16
architecture behavioral of logi is
17
18
signal sig1 :std_logic;   
19
signal sig2 :std_logic;  
20
signal sig3 :std_logic;  
21
22
begin
23
  sig1 <= sw0  and sw1; 
24
  sig2 <= sw2  and sw3; 
25
  led  <= sig1 xor sig2;
26
end behavioral;

Nun möchte dieses Gatterkonstrukt mehrmals einbinden für eine 
Kettenreaktion. Wie kann man das machen?
Ich möchte mir eine Gattersammlung anlegen , die ich dann nach belieben 
verbinden kann auch mit einem Takt.

danke.
Gruss

von Christian R. (supachris)


Lesenswert?

Wozu soll das denn gut sein? VHDL und Verilog sind ja u.a. dazu da, um 
Logik als Text darzustellen. Wenn du unbedingt willst, kannst dir 
natürlich für jedes erdenklich Gatter als VHDL Modul schreiben und das 
dann instanziieren. Aber das ist ja zwei mal von hinten durch die Brust 
ins Auge.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian R. schrieb:
> Wozu soll das denn gut sein?
Vermutlich "Back to the roots!"

Nach dem AND, OR und NOT dann ein XOR, dann ein Halbaddierer, daraus ein 
Volladdierer, daraus ein Multiplizierer, und daraus dann eine 
Motorsteuerung. Alles hübsch strukturell beschrieben. Wie bei den Amis, 
die hier immer wieder mal aufschlagen...

Innovationstiefe? 0
Lerneffekt? ~0
Nutzen? <<0

Peter Bierbach schrieb:
> Ich möchte einen Art Gatterbaukasten haben zum Spielen in VHDL.
Den hast du doch: verwende einfach die "eingebauten" Schlüsselworte AND, 
NOT, OR, NOR, NAND, XOR und XNOR.

: Bearbeitet durch Moderator
von Christoph Z. (christophz)


Lesenswert?

Z. B. so:
1
entity top is
2
  
3
end entity top;
4
5
architecture structural of top is
6
  -- Die component Deklaration könnte auch in einem Package stehen
7
  component logi is
8
    port (
9
      sw0 : in  std_logic;
10
      sw1 : in  std_logic;
11
      sw2 : in  std_logic;
12
      sw3 : in  std_logic;
13
      led : out std_logic);
14
  end component logi;
15
16
  -- Dazu passende Signale deklarieren
17
  signal sw0 : std_logic;
18
  signal sw1 : std_logic;
19
  signal sw2 : std_logic;
20
  signal sw3 : std_logic;
21
  signal led : std_logic;
22
  
23
begin  -- architecture structural
24
25
  -- Die Komponenten "logi" einbinden und Signale zuweisen
26
  logi_1: logi
27
    port map (
28
      sw0 => sw0,
29
      sw1 => sw1,
30
      sw2 => sw2,
31
      sw3 => sw3,
32
      led => led);
33
34
end architecture structural;

Auch nach zu lesen im Reichardt&Schwarz Kapitel 7 "Struktureller 
VHDL-Entwurf"

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Oder gleich fertig vorgekaut zum direkten Runterschlucken:
1
library ieee; 
2
use ieee.std_logic_1164.all; 
3
4
entity Dual_AND_Gate is
5
  port( A : in  std_logic;
6
        B : in  std_logic;
7
        Y : out  std_logic);
8
end Dual_AND_Gate;
9
architecture behavioral of Dual_AND_Gate is
10
begin
11
  Y <= A AND B; 
12
end behavioral;
13
14
----
15
16
library ieee; 
17
use ieee.std_logic_1164.all; 
18
19
entity Dual_OR_Gate is
20
  port( A : in  std_logic;
21
        B : in  std_logic;
22
        Y : out  std_logic);
23
end Dual_OR_Gate;
24
architecture behavioral of Dual_OR_Gate is
25
begin
26
  Y <= A OR B; 
27
end behavioral;
28
29
----
30
31
library ieee; 
32
use ieee.std_logic_1164.all; 
33
34
entity Dual_XOR_Gate is
35
  port( A : in  std_logic;
36
        B : in  std_logic;
37
        Y : out  std_logic);
38
end Dual_XOR_Gate;
39
architecture behavioral of Dual_XOR_Gate is
40
begin
41
  Y <= A XOR B; 
42
end behavioral;
43
44
----
45
46
library ieee; 
47
use ieee.std_logic_1164.all; 
48
49
entity NOT_Gate is
50
  port( A : in  std_logic;
51
        Y : out  std_logic);
52
end NOT_Gate;
53
architecture behavioral of NOT_Gate is
54
begin
55
  Y <= NOT A; 
56
end behavioral;
57
58
----
59
60
library ieee; 
61
use ieee.std_logic_1164.all; 
62
63
entity logik is
64
port(
65
  sw0 : in  std_logic;
66
  sw1 : in  std_logic;
67
  sw2 : in  std_logic;
68
  sw3 : in  std_logic;
69
  led : out  std_logic
70
);
71
end logik;
72
73
architecture behavioral of logik is
74
75
  component Dual_AND_Gate is
76
    port ( A : in  std_logic;
77
           B : in  std_logic;
78
           Y : out std_logic);
79
  end component;
80
81
  component Dual_OR_Gate is
82
    port ( A : in  std_logic;
83
           B : in  std_logic;
84
           Y : out std_logic);
85
  end component;
86
87
  component Dual_XOR_Gate is
88
    port ( A : in  std_logic;
89
           B : in  std_logic;
90
           Y : out std_logic);
91
  end component;
92
93
  component NOT_Gate is
94
    port ( A : in  std_logic;
95
           Y : out std_logic);
96
  end component;
97
98
  signal sig1 :std_logic;   
99
  signal sig2 :std_logic;  
100
101
begin
102
  UND1 : Dual_AND_Gate
103
  port map ( A => sw0,
104
             B => sw1,
105
             Y => sig1);
106
              
107
  UND2 : Dual_AND_Gate
108
  port map ( A => sw2,
109
             B => sw3,
110
             Y => sig2);
111
  
112
  XOR1 : Dual_XOR_Gate
113
  port map ( A => sig1,
114
             B => sig2,
115
             Y => led);
116
end behavioral;
Nur müsste man dann konsequenterweise auch das XOR aus Invertern und 
Gattern aufbauen (siehe Bild Logik3.png)...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Lothar Miller schrieb:
> Nur müsste man dann konsequenterweise auch das XOR aus Invertern und
> Gattern aufbauen (siehe Bild Logik3.png)...
Wenn man sich mal so richtig selber weh tun will: siehe Anhang... ;-)

: Bearbeitet durch Moderator
von Peter B. (funkheld)


Lesenswert?

Jup, vielen dank.

Ist sehr interessant für mich, daraus kleine Schaltungen herzustellen.

Danke.
Gruss

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.