Warning sequential type is unconnected

Gast #1872303
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;
Gast #1872540
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
Gast #1874080
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren