mikrocontroller.net

Forum: FPGA, VHDL & Co. Ein weiterer komischer Fehler in ISE


Autor: The Scientist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

nachdem sich der Fehler von gestern auf einfache aber irgendwie dämliche 
Weise, nämlich den Projektdateiordner aufräumen, entfernen lies, hab ich 
jetzt ein anderes Problem. Um sicher gehen zu können, dass es hinterher 
keine Probleme mit Latenzen gibt, wollte ich eine Post-Fit Timing 
Simulation durchführen. Dabei tritt folgender Fehler auf:
ERROR:Simulator:29 - at 0 ns : in tbTimeSimDummyFree(testbench_arch), file
   C:/Dokumente und Einstellungen/Gerti/Eigene Dateien/CPLD
   Projekte/logicAnalysator/tbTimeSim.vhd: Default port map for entity
   logicAnalysator to component logicAnalysator connects OUT mode local port
   addressOut of the component to INOUT mode port of the entity.

Was bedeutet das? Also dieser addressOut ist sowohl in der 
logicAnalysator.vhd als out definiert, als auch in der Testbench-Datei 
tbTimeSim.vhd. Wo genau liegt da der Fehler, der auch nur beim der 
TimeSim auftritt.

mfg TheScientist

Autor: Matthias M. (frost)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig interpretiere was Du da geschrieben hast, hast Du 
zwei Out-Ports mit einander verbunden... Das würde zu einem 
undefinierten Signal führen.
Modelsim würde das schlucken. Wie das bei ISE ist, weiß ich nicht.

Autor: The Scientist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir wäre jedenfalls nicht klar wie, wenn ich zwei out-Ports verbunden 
hätte. Außerdem: Wie kommt der auf InOut?? Hier mal die Sachen um die es 
geht:

logicAnalysator.vhd:
entity logicAnalysator is
    port(extClk: in STD_LOGIC;
      trg: in STD_LOGIC;
         arm: in STD_LOGIC;
      extRst: in STD_LOGIC;
      nxtByte: in STD_LOGIC;
      highLowByte: in STD_LOGIC;
      dataIn: in STD_LOGIC_VECTOR (15 downto 0);
      WE: out STD_LOGIC;
      OE: out STD_LOGIC;
      lstOut: out STD_LOGIC;
      datauC: out STD_LOGIC_VECTOR (7 downto 0);
      dataRAM: inout STD_LOGIC_VECTOR (15 downto 0);
      addressOut: out STD_LOGIC_VECTOR (15 downto 0));
end logicAnalysator;

tbTimeSim.vhd:
    COMPONENT logicAnalysator
        PORT (
            extClk : In std_logic;
            trg : In std_logic;
            arm : In std_logic;
            extRst : In std_logic;
            nxtByte : In std_logic;
            highLowByte : In std_logic;
            dataIn : In std_logic_vector (15 DownTo 0);
            WE : Out std_logic;
            OE : Out std_logic;
            lstOut : Out std_logic;
            datauC : Out std_logic_vector (7 DownTo 0);
            dataRAM : InOut std_logic_vector (15 DownTo 0);
            addressOut : Out std_logic_vector (15 DownTo 0)
        );
    END COMPONENT;
...
    SIGNAL address : std_logic_vector (15 DownTo 0);
   constant PERIOD : time := 16 ns;
    constant DUTY_CYCLE : real := 0.5;
    constant OFFSET : time := 16 ns;

    BEGIN
        UUT : logicAnalysator
        PORT MAP (
            extClk => extClk,
            trg => trg,
            arm => arm,
            extRst => extRst,
            nxtByte => nxtByte,
            highLowByte => highLowByte,
            dataIn => dataIn,
            WE => WE,
            OE => OE,
            lstOut => lstOut,
            datauC => OPEN,
            dataRAM => dataRAM,
            addressOut => address
        );
...

Wo ist da denn ein Fehler?

Autor: Matthias M. (frost)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso... Ich hatte das anders verstanden... Sorry, mein Fehler...
Aber was machst Du denn noch mit dem Signal address?

Sieht ansonsten gut aus.

Autor: The Scientist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nix das soll eigentlich nur angezeigt werden. Ich hatte erst vermutet, 
dass er mit den gleichen Namen net klar kommt. Vorher hab ich das als 
waveform gebastelt und dann einfach den von ISE erzeugten VHDL-Code 
verändert. Eigentlich müssten alle Signale jetzt in der Simulation 
angezeigt werden.

Autor: The Scientist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin ihm jetzt schon etwas auf die Schliche gekommen. Die 
Simulationsengine erzeugt anscheinend eine Datei in der das Modell ganz 
primitiv in VHDL beschrieben ist und da steht in der Entity:
entity logicAnalysator is
  port (
    extClk : in STD_LOGIC := 'X'; 
    extRst : in STD_LOGIC := 'X'; 
    nxtByte : in STD_LOGIC := 'X'; 
    highLowByte : in STD_LOGIC := 'X'; 
    trg : in STD_LOGIC := 'X'; 
    arm : in STD_LOGIC := 'X'; 
    lstOut : inout STD_LOGIC; 
    WE : out STD_LOGIC; 
    OE : out STD_LOGIC; 
    dataIn : in STD_LOGIC_VECTOR ( 15 downto 0 ); 
    addressOut : inout STD_LOGIC_VECTOR ( 15 downto 0 ); 
    dataRAM : inout STD_LOGIC_VECTOR ( 15 downto 0 ); 
    datauC : out STD_LOGIC_VECTOR ( 7 downto 0 ) 
  );
end logicAnalysator;

Ich verstehe aber trotzdem jetzt nicht wieso der aus einem out-Port 
einen inout-Port macht.

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.