Forum: FPGA, VHDL & Co. Probleme: Erstes Programm mit Quartus II


von He (Gast)


Lesenswert?

Hallo,

ich habe mit die Web Edition von Quartus II installiert. Nun möchte ich 
ein kleines Beispiel VHDL Programm zum laufen bringen. Ich möchte das 
ganze nur simulieren. Harware besitze ich nicht. Wenn ich Start 
Compilation drücke erscheinen folgende Fehlermeldungen:

Info: 
*******************************************************************
Info: Running Quartus II Analysis & Synthesis
  Info: Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Web Edition
  Info: Processing started: Fri Feb 18 16:51:07 2011
Info: Command: quartus_map --read_settings_files=on 
--write_settings_files=off Adder -c Adder
Info: Found 2 design units, including 1 entities, in source file 
adder.vhd
  Info: Found design unit 1: test_add-rtl
  Info: Found entity 1: test_add
Error: Top-level design entity "Adder" is undefined
Error: Quartus II Analysis & Synthesis was unsuccessful. 1 error, 0 
warnings
  Error: Peak virtual memory: 222 megabytes
  Error: Processing ended: Fri Feb 18 16:51:09 2011
  Error: Elapsed time: 00:00:02
  Error: Total CPU time (on all processors): 00:00:02
Error: Quartus II Full Compilation was unsuccessful. 3 errors, 0 
warnings

Wahrscheinlich liegt es auch daran, dass ich noch keine Pins zugewiesen 
habe. Wie mache ich dies mit Qurtus II ?

von zachso (Gast)


Lesenswert?

hi!

also erstmal: was du willst ist simulation, da bist du bei synthese 
eigentlich ganz falsch erstmal (es gibt da zwar sowas wie post-synthese 
simulation, aber das ist eigentlich nicht was du willst).
du brauchst auch keine pins, aber wenn du uns mal deinen code posten 
koenntest kann man dir weiterhelfen und das ganze zum simuliern bringen.
ob und wie man mit quartus simuliert weiss ich nicht, ich benutz fast 
nur xilinxzeug, aber von altera gibts das ebenfalls kostenlose modelsim:
http://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.html
das reicht fuer deine zwecke wahrscheinlich vollkommen. damit kannst du 
das dann simulieren.

von He (Gast)


Angehängte Dateien:

Lesenswert?

Hi zachso, danke für deine Hilfe. Im Anhang befindet sich der VHDL-Code. 
Es handelt sich dabei um einen einfachen Zähler. Wie könnte man sowas 
mit Quartus II simulieren (Signalverläufe anschauen)? Ist dies 
überhaupt, mit Quartus II zu simulieren ?

von Christoph S. (mixer) Benutzerseite


Lesenswert?

He schrieb:
> Error: Top-level design entity "Adder" is undefined

Was hast du "Adder" genannt?
Das Projekt? Die VHDL-Datei?

Bei Quartus solltest du immer gleiche Namen für Projekt, top-level Datei 
usw. verwenden, das erspart dir n haufen Ärger!

MFG Mixer

von He (Gast)


Angehängte Dateien:

Lesenswert?

Sorry, habe falsche Datei angegeben. Im Anhang befindet sich die 
richtige Datei. Für eine reine Simulation reicht ModelSim von Altera 
Quartus II vollkommen aus ?

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Dann nenn doch die entity "test_add" in "Adder" um und probiers nochmal!

Übrigens schreibt man meistens die Namen in VHDL in GROSSBUCHSTABEN, 
obwohl das funktionell egal ist.

MFG Mixer

von He (Gast)


Lesenswert?

Ok das habe nun gemacht und nochmals Start Compilation ausgeführt. Es 
erscheinen nur ein paar Warnungen. Wie kann ich jetzt mir nun die 
zeitlichen Signalverläufe anschauen ? Was müsste ich da noch 
konfigurieren ?

von He (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab mir nun mal ModelSim für Altera Quartus II heruntergeladen und 
installiert. Wenn ich ModelSim ausführem, erscheint eine Fehlermeldung.
Irgendwas stimmt mit der Lizens nicht. Dies ist aber eine kostenlose 
Version.

von berndl (Gast)


Lesenswert?

Christoph S. schrieb:
> Übrigens schreibt man meistens die Namen in VHDL in GROSSBUCHSTABEN,

...im Zeitalter von Syntaxhighlighting bei Editoren nicht mehr. 
GROSSSCHRIFT ist schlechter lesbar als z.B. GrossSchrift oder auch 
gross_schrift...

von He (Gast)


Lesenswert?

Ich habe nochmals Start Compilation ausgeführt. Es
erscheinen nur ein paar Warnungen. Wie kann ich jetzt die
zeitlichen Signalverläufe anschauen ? Was müsste ich da noch
konfigurieren in Quartus II?

von He (Gast)


Lesenswert?

Wenn ich "Start SignalProbe Comoilation" starte erscheinen einige 
Fehlermeldungen:

Error: Can't perform ECO Fit -- no Fitter ECOs to apply
Error: Quartus II Fitter was unsuccessful. 1 error, 0 warnings
  Error: Peak virtual memory: 189 megabytes
  Error: Processing ended: Fri Feb 18 18:27:55 2011
  Error: Elapsed time: 00:00:01
  Error: Total CPU time (on all processors): 00:00:01
Error: Current flow ECO Fitting ended unexpectedly

von He (Gast)


Lesenswert?

Bei mir gibt es auch keine Möglichkeit ein Vector Waveform File zu 
erzeugen.Die Auswahl gibt es gar nicht.

von Harald F. (hfl)


Lesenswert?

Hallo He,

ich hab diese Thread eben erstmals gesehen und von oben bis unten 
durchgelesen. Ich habe das Gefühl bekommen, Du liest die Antworten nicht 
richtig. Vergiss bitte Quartus. Für die Simulation benutzt man Quartus 
nicht. Hör auf zu kompilieren, schließe alle Fenster bis du den Desktop 
sehen kannst. Dann schau in die Taskleiste ob da noch ein Quartus 
rumliegt. Wenn ja, schließen. Bei Bedarf boote den Rechner neu. Und lass 
die Finger von Quartus.

Das Programm deiner Wahl heißt "ModelSim-Altera Starter Edition". Kann 
sein, dass Du aus versehen "ModelSim-Altera" installiert hast. Wenn ja, 
dann weg damit und die Starter-Edition installiert. Und dann das 
Tutorial über ModelSim lesen, dann sollte die Richtung stimmen.

Viel Erfolg,
Harald

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


Lesenswert?

Harald Flügel schrieb:
> Ich habe das Gefühl bekommen, Du liest die Antworten nicht richtig.
Da bin ich mal gespannt, ob er deine Antwort liest... ;-)

Mal von solchen kleinen Software-Hackeleien abgesehen ein paar Worte zum 
VHDL-Code...
Das mit der Vektorbreite width ist hier maximal misslungen:
1
  generic ( width : integer := 17 );   -- Die landläufige Denkweise: Width = Breite = Anzahl Bits....
2
  port ( clk        : in  std_ulogic;
3
         :
4
         inp1, inp2 : in  std_logic_vector ( width downto 0);  -- Pech, schon die Eingangsvektoren sind ein Bit breiter als witdh
5
         sum        : out std_logic_vector ( (width + 1) downto 0) ); -- und logischerweise der Ausgangsverktor gleich 2 Bits...
6
end test_add;
7
8
architecture rtl of test_add is
9
10
  constant terminal_count     : integer := 2**( sum'high + 1 ) - 1; -- hier hätte man auch mit width weiterrechnen können....
11
  subtype  adder_range is integer range 0 to terminal_count;  
12
  signal   sumx, inp1x, inp2x : adder_range;
13
14
begin  --  rtl 
15
  sum   <= std_logic_vector( to_unsigned ( sumx, width + 2 )); -- und hier ist der Zielvektor 2 Bits breiter als width...

Das Ganze hätte so abgekürzt werden können:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
5
entity test_add is
6
  generic ( width : integer := 18 );
7
  port ( clk        : in  std_ulogic;
8
         reset      : in  std_ulogic;
9
         enable     : in  std_ulogic;
10
         inp1, inp2 : in  std_logic_vector (width-1 downto 0);
11
         sum        : out std_logic_vector (width downto 0);
12
end test_add;
13
14
architecture rtl of test_add is
15
begin  
16
  process ( clk, reset )
17
  begin
18
    if reset = '0' then
19
      sumx <= (others=>'0');
20
    elsif rising_edge (clk) then
21
      if enable = '1' then
22
        std_logic_vector(to_unsigned( to_integer(unsigned(inp1)) + to_integer(unsigned(inp2)), sum'length));
23
      end if;
24
    end if;
25
  end process adder;
26
end rtl;

von He (Gast)


Lesenswert?

Danke erstmal für eure Unterstützung. Ich habe mir nun "ModelSim-Altera 
6.6c (Quartus II 10.1) Starter Edition" heruntergeladen und folglich 
auch installiert. Das mit dem zeitlichen SIgnalverlauf anzeigen lassen 
funktioniert nicht. Was müsste ich da zuvor noch in ModelSim 
konfigurieren?

von berndl (Gast)


Lesenswert?

Lothar Miller schrieb:
> Das Ganze hätte so abgekürzt werden können:

nee, nich wirklich. Beim drueberschauen fallen mir sofort 3 Fehler auf 
:o)
Ausserdem sehe ich: Du verwendest, entgegen deiner heiligsten 
Ueberzeugungen, sogar einen asynchronen Reset... Huiiiii :o)

Nochwas an den TO: Du schreibst oben, du willst simulieren. Dazu 
brauchst du wie schon mehrfach erwaehnt einen VHDL Simulator. Das kann 
ModelSim sein, oder auch ISIM falls du Xilinx ISE verwendest, aber auch 
z.B. GHDL. Wenn du z.B. einen Debian/Ubuntu Rechner hast, dann einfach 
ueber die Paketverwaltung GHDL und GTKWAVE installiert, hier im Forum 
mal nach 'ghdl' gesucht, da findest du alles notwendige.

Ausserdem brauchst du noch eine sog. Testbench (auch mal hier die SuFu 
benutzen).

von He (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab nun mal einen ganz einfachen addierer gebastelt. Der Code lässt 
sich auch ohne Fehler mit ModelSim übersetzen. Ich kann nur nicht den 
zeitlichen Verlauf darstellen.

von zachso (Gast)


Lesenswert?

du brauchst eine testbench, die findest du hier als beispiel:
http://www.quicknet.se/hdc/hdl/ha_fa/index.htm

die testbench integrierst du dann in dein modelsim-projekt und dann 
kanns los gehn

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


Lesenswert?

berndl schrieb:
> nee, nich wirklich. Beim drueberschauen fallen mir sofort 3 Fehler auf
> :o)
Naja, schnell hingekritzelt eben. BTW: es sind 4 Fehler...  ;-)

> Ausserdem sehe ich: Du verwendest, entgegen deiner heiligsten
> Ueberzeugungen, sogar einen asynchronen Reset... Huiiiii :o)
Da wollte ich nicht schon zu Anfang zuviel Verwirrung stiften...

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.