mikrocontroller.net

Forum: FPGA, VHDL & Co. Modellierung eines 32-Bit-Datenregisters in VHDL und Einbindung dieses Modells in eine Testbench


Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag, ich stelle kurz einmal mein Problem vor.

Studierte Ingeneuerwissenschaften bis 2008 und konnte damals mein 
Studium durch Probleme nicht abschließen.
Seit diesem Jahr versuchte ich alle Prüfungen abzuarbeiten was mir auch 
bis auf diese letzte hier gelang.

Da ich aber das letzte mal vor ca. 11 Jahren VHDL hatte bin ich wohl 
doch mit der Aufgabe überfordert und finde weder Literatur zu dem 
Problem oder ich verstehe es nur einfach nicht.

Wenn irgendwer mir da durchhelfen könnte das ich es schaffe das 
vorzuführen und zu erklären dann wär ich mehr als dankbar.

Ich spiele etwas mit modelsim herum und versuchte mir dadurch etwas 
Einblick zu verschaffen aber naja...

Vielen lieben dank

Google bietet keine hilfe.
Über Tips Hinweise einfach alles was mich der Lösung nahe bringen könnte 
wäre ich wie gesagt dankbar.

Autor: Buch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du dir mal das Buch "VHDL Synthese" angeguckt? Da sollte alles 
enthalten sein, was du benötigst.

Zusätzlich könntest du dich bei einem FPGA Hersteller auf deren Homepage 
registrieren (Altera oder Xilinx) und dort Online Videos gucken wo eine 
Testbench erklärt wird.

Dass du bei Google nicht gefunden hast, kann ich nicht so recht glauben. 
Was hast du bei Google eingegeben?

Autor: Bitwurschtler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias schrieb:

> Google bietet keine hilfe.

Sorry, mit allem Respekt, aber dann bist du zu doof zum Suchen. 
"Register in vhdl" by Google knallt als erstes diesen Link raus: 
http://stackoverflow.com/questions/21581556/regist...

Wie man eine Testbench schreibt erklärt die Google auch, verstehen musst 
du es alleine.

PS:
Aber vielleicht hat dir ja noch keiner gesagt das heute Donnerstag und 
nicht Freitag ist. Die Beiträge unter dem Motto "Ich bin ein armes 
Schwein mit einer schweren Kindheit, schenkt mir Eure Aufmerksamkeit", 
werden hier traditionell freitags geschrieben.
SCNR,

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias schrieb:
> Modellierung eines 32-Bit-Datenregisters in VHDL
Modelliere doch einfach mal 1 einziges Register:
library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
entity Reg is 
    Port ( clk  : in  STD_LOGIC; 
           din  : in  STD_LOGIC; 
           dout : out  STD_LOGIC); 
end Reg; 
 
architecture Behavioral of Reg is 
begin 
   dout <= din when rising_edge(clk);
end Behavioral;


> Einbindung dieses Modells in eine Testbench
library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
entity tb_Reg is 
               -- leere Entity --> Testbench
end tb_Reg; 
  
architecture behavior of tb_Reg is
   component Reg
    Port ( clk  : in  STD_LOGIC; 
           din  : in  STD_LOGIC; 
           dout : out  STD_LOGIC); 
   end component; 
    
   signal clk  : std_logic := '0'; -- lokale Signale der Testbench
   signal din  : std_logic;        -- werden an den Prüfling angeschlossen
   signal dout : std_logic;        -- 

begin
   uut: Reg                        -- der Prüfling wird verdrahtet
   port map ( clk  => clk, 
              dout => dout, 
              din  => din ); 
 
   clk <= not clk after 10 ns;     -- einen 50MHz Takt erzeugen
   
   process begin                   -- Stimuli üfr Dateneingang generieren
      din <= '0';
      wait for 87 ns;
      din <= '1';
      wait for 53 ns;
      din <= '0';
      wait for 44 ns;
      din <= '1';
      wait for 67 ns;
   end process;
end;

So, das war für 1 einziges Register. Für 32 Bits musst du dann nur noch 
an den geeigneten Stellen mit einem "_VECTOR(31 downto 0)" die 
Wortbreite aufbohren und die Default- und Stimuliwerte ebenfalls auf die 
nötige Wortbreite bringen...

: Bearbeitet durch Moderator
Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WOW das so schnell Antworten kommen hätte ich nicht gedacht.

Das mit dem Buch ist ein guter Tip jedoch bietet meine Hochschul - 
Bibliothek das Buch nicht an und 40 Euro ist auch nicht gerade wenig, 
aber das kläre ich mal mit der Hochschule da fehlen genau solch Bücher 
wo auch mal Lösungsansätze drin stehen.
Eingegeben hatte ich die Überschrift und auch in vielen Variationen, zu 
Registern kam schon viel, konnte nur nichts mit dem Datenregister 
explizit finden.
Das dies nur den Wert vom Eingang am Ausgang halten sollte? Ich glaube 
da war ich in dem Augenblick ... . Daher vielen Dank für diesen Tip.


Nein das Google gar keine Dinge/Ergebnisse Anzeigt "(Bitwurschtler 
(Gast))" ist schon klar. (Aber ich mag auch Menschen nicht die andere 
gleich beleidigen). Ich habe viele Video-tuturials gefunden und 
angesehen. Ich habe in der Bibliothek Bücher ausgeliehen die aber leider 
schon so Alt waren das dort immer nur die Rede von Registern ist (mir 
fehlte der Bezug auf Datenregister).
Ich hatte in der Nacht vom ersten auf den zweiten den Erfolg das ich das 
auf Modelsym geschrieben habe mit 32Bit. Ich sitze ja auch schon mehrere 
Wochen an dem Thema und will da nur noch durch. Obwohl VHDL sehr 
Interessant erscheint um so einiges zu Lösen. Ich kannte bis damals nur 
die SPS, die ich erlernte.

Ich werde mir auf alle Fälle von Ihnen
"Lothar Miller (lkmiller) (Moderator)"
den Prozess-Bereich noch erarbeiten. Das gefällt mir doch sehr gut 
bisher habe ich die Werte direkt verändert und nicht automatisch laufen 
lassen.
Ich Bedanke mich Recht herzlich bei Ihnen allen für die 
Lösungsansätze/Tips, werde damit wohl jetzt auf alle fälle zum 
erwünschten Lösungziel kommen. Danke Sehr.

Noch mal zum Thema andere Beleidigen oder zu Belehren, wenn jemand keine 
Zeit hat oder der Meinung ist das es verschwendete Zeit ist zu Helfen. 
Dann doch bitte keine Zeit darin vergeuden zu Beleidigen / Belehren. 
Aber auch Ihnen danke ich für den Link---schaue mir das mal an so 
ähnlich hatte ich das auch erarbeitet aber das ist viel kürzer 
geschrieben als meins mit jedem Ein und Ausgang einzeln.

Damit Ist das Hier jetzt geschlossen der Fall ist erledigt. Nochmals 
DANKE an Sie ALLE.

Autor: Fitzebutze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dir auch der Artikel hier weiter (eher was für 
Opensource/Linuxleute):

http://www.linux-magazin.de/Ausgaben/2012/02/FPGA-Simulation

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Register dient dazu, Daten zu speichern..
EIN Register speichert EIN Bit
32 Register speichern 32 Bit..

und ein Datum kann EIN Bit lang sein oder 32 Bit (oder jede andere 
beliebige Größe)

Ein Register ist also immer ein Speicher für Daten .. also ein 
Datenregister.


Falls du aber mit "Datenregister" die Topologie des Registers an sich 
meinst (also ein D-FF und nicht ein RS-FF oder JK-FF), dann ist es so, 
dass in einem FPGA die Register alle D-FF sind..

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.