Spielerein mit Gatter : And ,Or usw in VHDL?

#3863851
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
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #3863944
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.
#3864067
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"
Moderator (Firma: Titel) Persönliche Seite #3864189
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)...
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren