Gast
#487894
ModelSim XE Compiler meldet Error Zeile 21 @ elsif rising_edge(clk) then
... Meldung: "No feasible entries for subprogram rising_edge". Auf
Deutsch: "Keine praktikablen Eintragungen für das Unterprogramm
rising_edge()", die jedoch als Funktion in ieee.std_logic_1164.all
implementiert und eingebunden ist ?! Meldung erscheint auch wenn
rising_edge durch ~Äquivalent "else clk'event and clk = '1' then ..."
ersetzt wurde.
Möglicherweise hat jemand einen Rat - Danke! Chris
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
------------------------------------------------------------------------
entity kreuztisch is
port(clk,rst,el,er,eu,eo,tarot :in bit; -- std_logic
al,ar,au,ao :out bit); --std_logic
end kreuztisch;
------------------------------------------------------------------------
architecture verhaltensbeschreibung of kreuztisch is
type zv_type is (init, abfangen, bereit, nach_or, nach_u, nach_l);
signal zv,zvneu : zv_type;
begin
---------------------------------------------------------------------
taktung: process (clk,rst)
begin
if (rst='1') then
zv<=init;
elsif rising_edge(clk) then
zv<=zvneu;
end if;
end process;
---------------------------------------------------------------------
automat: process (zv,tarot,el,er,eu,eo)
begin
case zv is
when init =>
if (tarot='0') then
al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=init;
else
if (el='0') then
al<='1';
ar<='0';
au<='0';
ao<='0';
zvneu<=init;
else
if (eu='0') then
al<='0';
ar<='0';
au<='1';
ao<='0';
zvneu<=init;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=abfangen;
end if;
end if;
end if;
when abfangen =>
if (tarot='1') then
al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=abfangen;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=bereit;
end if;
when bereit =>
if (tarot='0') then
al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=bereit;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=nach_or;
end if;
when nach_or =>
if (eo='0') then
if (er='0') then
al<='0';
ar<='1';
au<='0';
ao<='1';
zvneu<=nach_or;
else al<='0';
ar<='0';
au<='0';
ao<='1';
zvneu<=nach_or;
end if;
else
if (er='0') then
al<='0';
ar<='1';
au<='0';
ao<='0';
zvneu<=nach_or;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=nach_u;
end if;
end if;
when nach_u =>
if (eu='0') then
al<='0';
ar<='0';
au<='1';
ao<='0';
zvneu<=nach_u;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=nach_l;
end if;
when nach_l =>
if (el='0') then
al<='1';
ar<='0';
au<='0';
ao<='0';
zvneu<=nach_l;
else al<='0';
ar<='0';
au<='0';
ao<='0';
zvneu<=bereit;
end if;
end case;
end process;
---------------------------------------------------------------------
end verhaltensbeschreibung;
------------------------------------------------------------------------