Unbekannter Zustand in Testbench -> StX

OP (Firma: Uni) #996995
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.
Gast #997200
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.
Gast #997784
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

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.