mikrocontroller.net

Forum: FPGA, VHDL & Co. Warning sequential type is unconnected


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

warum bekomme ich eine Warning wenn ich folgende Signale auf einen 
internen Bus lege und keine wenn ich die Signale auf I/O Pins lege ?
Grüße
Daniel

WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_5> of sequential type is 
unconnected in block <base>.
WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_4> of sequential type is 
unconnected in block <base>.
WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_3> of sequential type is 
unconnected in block <base>.
WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_2> of sequential type is 
unconnected in block <base>.
WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_1> of sequential type is 
unconnected in block <base>.
WARNING:Xst:2677 - Node <IRQ_REG_1/irqReg_0> of sequential type is 
unconnected in block <base>.

entity IRQ_REG is
   port ( clk    : in    std_logic;
          irq_1  : in    std_logic;
          irq_2  : in    std_logic;
          irq_3  : in    std_logic;
          irq_4  : in    std_logic;
          irq_5  : in    std_logic;
          irq_6  : in    std_logic;
          rd_irq : in    std_logic;
          dout   : out   std_logic_vector (15 downto 0);
          irq_n  : out   std_logic);
end IRQ_REG;

architecture BEHAVIORAL of IRQ_REG is
  signal irqReg : STD_LOGIC_VECTOR(15 downto 0) := (others => '0');
  signal irqState : STD_LOGIC := '1';
begin

process(clk)
    begin
    if (clk'event and clk='1') then
      irq_n <= (irq_1 or irq_2 or irq_3 or irq_4 or irq_5 or irq_6);
      irqReg <= (0=>irq_1, 1=>irq_2, 2=>irq_3, 3=>irq_4,
      4=>irq_5,   5=>irq_6, OTHERS=>'0');
    end if;
end process;

dout <= irqReg(15 downto 0) when rd_irq='1' else
      (others=>'Z');

end BEHAVIORAL;

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers mal so:
      irqReg <= x"00" & "00" & irq_6 & irq_5 & irq_4 & irq_3 & irq_2 & irq_1;
So werden Vektoren zusammengehängt (Concatenation). Und dann kann man 
auch die Bitreihenfolge besser erkennen...

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für den Hinweis.
Leider hat sich an meiner Fehlermeldung nichts geändert.
Grüße
Daniel

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist der Fehler woanders:
> is unconnected in block <base>.
Zeig mal die Instatiierung und die Port Map von IRQ_REG.

Autor: Daniel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe IRQ_REG in einem schematic und dout auf einem bus zusammen mit 
PDM.
Ich hoffe, dass der Anhang nützlich ist.
Grüße
Daniel

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie meint ISE, deine Signale herausoptimieren zu dürfen, weil sie 
entweder am Anfang oder am Ende nirgends angeschlossen/verwendet sind...

Werden die IRQs aus den PDM-Modulen wirklich angesteuert?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich wird alles angesteuert.
Warum bekomme ich keine Fehlermeldung wenn ich folgendes mache:

process(clk)
begin
  if (clk'event and clk='1') then
    irq_n <= (irq_1 or irq_2 or irq_3 or irq_4 or irq_5 or irq_6);
  end if;
end process;

dout <= (x"00" & "00" & "000001") when (rd_irq='1' and irq_1='1') else
  (x"00" & "00" & "000010") when (rd_irq='1' and irq_2='1') else
  (x"00" & "00" & "000100") when (rd_irq='1' and irq_3='1') else
  (x"00" & "00" & "001000") when (rd_irq='1' and irq_4='1') else
  (x"00" & "00" & "010000") when (rd_irq='1' and irq_5='1') else
  (x"00" & "00" & "100000") when (rd_irq='1' and irq_6='1') else
  (others=>'Z');

end BEHAVIORAL;

Grüße
Daniel

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung dout sollte ja so sein:

dout <= x"00" & "00" & irq_6 & irq_5 & irq_4 & irq_3 & irq_2 & irq_1
         when (rd_irq='1') else
         (others=>'Z');


gibt trotzdem keine Fehlermeldung !

Autor: Segor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast sie nicht angeschlossen bzw, so, wie das Takten in Deinem FPGA 
funktioniert, gibt es keine Abhängigkeit eines Ausgangs von der IRQs.

Probiere mal, die Ausgänge (gfs über zusätzliche FFs) an einen Muxer zu 
legen und dessen Ausgang auf USEr-IO-Pins um das Verlegen zu erzwingen,

Parallel kannst Du probieren:


architecture
...

attribute keep : string;
attribute keep of the_signal_name : signal is "true";

...
begin

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.