Aufgabe: VHDL-Code zu einer RTL-Schematic erstellen

Moderator (Firma: Titel) Persönliche Seite #2211521
Lesenswert?
• ▲
▼
Patrick Rehm schrieb:
> Ich benötige Hilfe bei einer Aufgabe die darin besteht aus einer
> RTL-Schematic (siehe Anhang) einen VHDL-Code zu erstellen.
Hausaufgaben nicht gemacht?

> Also meine Frage wie sieht dieser VHDL-Code aus?
Sind das synchrone oder ein asynchrone Set- und Reset-Eingänge?
Und was ist das für ein Symbol dort am Enable-Anschluss?

Asynchron und mit Dauer-Enable wäre das eine Lösung:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3

4
entity ff is
5
   port ( a,b,c : in std_logic;
6
          q : out std_logic);
7
end ff;
8

9
architecture behave of ff is
10
begin
11
   q <= '1' when a='1' else b when rising_edge(c);
12
end behave;
Allerdings wird dein Lehrer davon nicht begeistert sein (obwohl das 
Richtige herauskommt). Denn diese Schreibweise steht nicht in seinem 
Lehrbuch...  :-o
#2212333
Lesenswert?
• ▲
▼
also nach dem was du da schreibst wuerde ich folgendermassen antworten:
1
--
2
-- Meine Hausaufgabe
3
-- Erwin Mustermann
4
-- 2011/06/05
5
--
6
--
7
--       VHDL zu einer RTL schematic erstellen
8
--
9

10
library ieee;
11
use ieee.std_logic_1164.all;
12
--use ieee.numeric_std.all;      -- Brauchen wir hier nicht, wir tun ja eh' nix...
13

14
entity beschaltung_rosa_kasten is
15
    port ( a : in std_logic;
16
           b : in std_logic;
17
           c : in std_logic;
18
           immer_hi : std_logic;
19
           immer_lo : std_logic;
20
           y : out std_logic
21
          );
22
end beschaltung_rosa_kasten;
23

24
architecture beschreibung of beschaltung_rosa_kasten is
25

26
begin
27

28
   rosa_kasten : rosa_kasten_beschreibung
29
   port map (
30
      s => a,
31
      d => b,
32
      ce => immer_hi,
33
      takt => c,
34
      r => immer_lo,
35
      q => y
36
   );
37

38
end beschreibung;
Mehr ist da nicht ersichtlich, es sei denn du verschweigst uns was...
OP #2212621
Lesenswert?
• ▲
▼
Bei diesem Code kommt der Fehler: Use of undeclared identifier 
'rosa_kasten_beschreibung'. Sorry für die wahrscheinlich dumme Frage 
aber ich hab von dem Programm nicht so viel Ahnung, was muss ich jetz 
ändern damit dieser Fehler verschwindet? Ich verschweige nichts, habe 
wie gesagt nur dieses Bild und soll dazu den VHDL_Code erstellen keine 
Angaben zu den Eingängen oder sonst was.
Moderator (Firma: Titel) Persönliche Seite #2212805
Lesenswert?
• ▲
▼
Patrick Rehm schrieb:
> Bei diesem Code kommt der Fehler: Use of undeclared identifier
> 'rosa_kasten_beschreibung'. Sorry für die wahrscheinlich dumme Frage
> aber ich hab von dem Programm nicht so viel Ahnung, was muss ich jetz
> ändern damit dieser Fehler verschwindet?
Du mußt eine Komponente beschreiben, die die Funktion des rosa Kastens 
beinhaltet. Aber das musst du sowieso...

Drehen wir den Spieß doch einfach mal rum:
Ganz ohne alles wirst du die Aufgabe nicht bekommen haben, du hast also 
schon wenigstens ein Grundwissen zu VHDL. Und jetzt zeig doch DU erst 
mal, was DU da machen würdest, und was nicht funktioniert. Und: es ist 
wirklich so einfach, wie ich es oben beschrieben habe.

Alternativ könnte man mit synchronem Set so schreiben:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3

4
entity ff is
5
   port ( a,b,c : in std_logic;
6
          q : out std_logic);
7
end ff;
8

9
architecture behave of ff is
10
begin
11
   process begin
12
      wait until rising_edge(c);
13
      q <= b;
14
      q <= '1' when a='1';
15
end behave;

Patrick Rehm schrieb:
> aus einer RTL-Schematic (siehe Anhang) einen VHDL-Code zu erstellen.
> Also meine Frage wie sieht dieser VHDL-Code aus?
Du kannst die Aufgabe nicht lösen, wenn du nicht weißt, ob das ein 
synchroner oder asynchroner Set-Einange ist! Ich meine, das bereits 
erwähnt zu haben...  :-/
Kurz: welche FPGA-Architektur ist das?
Moderator (Firma: Titel) Persönliche Seite #2212841
Lesenswert?
• ▲
▼
Lothar Miller schrieb:
> q <= '1' when a='1';
> end behave;
Kleiner Nachtrag, der eingebaute Syntax-Check hat nicht funktioniert, da 
fehlt was:
1
   :
2
   :
3
      q <= '1' when a='1';
4
   end process;
5
end behave;

Natürlich ginge das auch so:
1
   process begin
2
      wait until rising_edge(c);
3
      if a='1' then 
4
         q <= '1' 
5
      else
6
         q <= b;
7
      end if;
8
   end process;

Oder so:
1
   process (c) begin
2
      if rising_edge(c) then
3
         if a='1' then 
4
            q <= '1' 
5
         else
6
            q <= b;
7
         end if;
8
      end if;
9
   end process;

Aber ich denke, dein Lehrer will das hier sehen:
1
   process (c,a) begin
2
      if a='1' then
3
         q <= '1' 
4
      elsif rising_edge(c) then
5
         q <= b;
6
      end if;
7
   end process;
Gast #2215917
Lesenswert?
• ▲
▼
Man muß solche Symbole lesen können. Kein Tabellenbuch oder so ?
Normalerweise sind die Eingänge oben und unten Asynchrone Set und Reset 
um ein Preset oder Reset nach dem Anschalten zu ermöglichen.
Das heißt es ist ein Flip Flop das Asynchron mit logisch 1 an Eingang A 
gesetzt werden kann und Synchron mit logisch 1 an Eingang B. Es kann nur 
durch eine logische 0 an  B und eine positive Flanke an C zurückgesetz 
werden.

A  B  C  Q
0  0  0  Qn-1
1  0  0  1
0  1  0  Qn-1
1  1  0  Qn-1

0  0  1  Qn-1
1  0  1  1
0  1  1  Qn-1
1  1  1  Qn-1

0  1  PF 1
0  0  PF 0
0  1  NF Qn-1
0  0  NF Qn-1

1  1  PF 1
1  0  PF 1
1  1  NF 1
1  0  NF 1


*PF = Positive Flanke
 NF = Negative Flanke

Aber den VHDL code lass ich dir
Gast #2216653
Lesenswert?
• ▲
▼
1
architecture behave of ff is
2
begin
3
   process begin
4
      wait until rising_edge(c);
5
      q <= b;
6
      q <= '1' when a='1';
7
   end process;
8
end behave;

Aus welchem Horror-Film ist denn diese Beschreibung entsprungen ?


Joe

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