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


von Daniel (Gast)


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;

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


Lesenswert?

Probiers mal so:
1
      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...

von Daniel (Gast)


Lesenswert?

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

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


Lesenswert?

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

von Daniel (Gast)


Angehängte Dateien:

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

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


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?

von Daniel (Gast)


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

von Daniel (Gast)


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 !

von Segor (Gast)


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

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.