www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Unbekannter Zustand in Testbench -> StX


Autor: Bernd Stürzenhofecker (Firma: Uni) (stuerzibernd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab das Problem, dass mir das Simulationstool sagt, dass meine 
Signale im
Modul DUT einen unbekannten Zustand (StX) haben.
Ich vermute, dass daher meine testbench zum IP-Core nicht funkioniert.

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

ENTITY Decoder_Test IS
END ENTITY Decoder_Test;


ARCHITECTURE Test OF Decoder_Test IS

  component TbdViterbi is
    port (
      iClk                : in  std_ulogic;
      inResetAsync        : in  std_ulogic;
      iData0              : in  std_ulogic;
      iData1              : in  std_ulogic;
      oData               : out std_ulogic;
      oValid              : out std_ulogic);
    end component;

  signal Clk             : std_ulogic;
  signal ResetAsync      : std_ulogic := '0';
  signal DataOut         : std_ulogic;
  signal ValidOut        : std_ulogic;

  signal in0            : std_ulogic;
  signal in1            : std_ulogic;

  constant t    : time := 10 ns;

BEGIN

  Clock: process
  begin
    Clk <= '0'; wait for t/2;
    Clk <= '1'; wait for t/2;
  end process;


  DUT: entity work.TbdViterbi(Rtl)
      port map (
      iclk         => Clk,
      inResetAsync => ResetAsync,
      iData0        => in0,
      iData1       => in1,
      oData        => DataOut,
      oValid       => ValidOut);

 Test1_2: process
 begin
    wait for t;
    ResetAsync <= '1';
    in0 <= '1';
    in1 <= '1';
    wait for t;
    din0 <= '1';
    din1 <= '0';
    wait for t;
    din0 <= '1';
    din1 <= '0';
    wait for t;
    din0 <= '0';
    din1 <= '0';
    wait for t;
    din0 <= '1';
    din1 <= '0';
    wait for t;
    ResetAsync <= '0';
  end process;


END ARCHITECTURE Test;


Das Modul DUT: entity work.TbdViterbi(Rtl) ist eine Schnittstelle um den 
Verilog-IP Core auf VHDL-Signale zu casten. Der funktioniert. Hab ihn 
schon so in einer anderen Signalverarbeitungskette eingesetzt.

Wäre dankbar, wenn mir jemand helfen könnte. Ich seh's irgendwie nicht.

Autor: jw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fällt auf den ersten Blick nix auf (außer: was ist "din0","din1"?).

Da brauchts ein paar mehr Informationen. Erstmal ein Screenshot der 
Simulation, dann Infos zum core.

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu welcher Zeit wird das Signal zu 'X'?
Wenn es zum Zeitpunkt t=0 ist, dann liegt es daran, dass die Signale 
nicht initialisiert sind.
Am besten in der Testbench alle Signale, auch Clk, die in das Modul 
gehen, initialisieren.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als erstes würd ich mal den Testbench checken ob der in der Sim auch 
tatsächlich nur St0/St1 liefert. Dann schau dir alle Inputs im DUT 
(nicht aussen!) an, ob die alle definiert sind. Wenn das nicht hilft, 
verfolge das betreffende Signal in der Simulation rückwärts, irgendwann 
wirst du ein Teil finden wo StZ reingeht und folgerichtig StX rauskommt.

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.