Hallo,
Ik probeer een bidirectionele bus te implementeren in een fpga, om te kunnen communiceren met een microcontroller.
Ik krijg echter volgende foutmelding voor elke bit van de databus:
Error (10483): VHDL error at servo_controllers.vhd(88): can't infer register for signal "DATABUS_I[7]" because signal does not hold its value outside clock edge
Of wordt een bidirectionele bus anders geimplementeerd?
READ_I : in std_logic;
DATABUS_I : inout std_logic_vector(7 downto 0);
begin
if RESET = '0' then
-- ...
elsif Rising_Edge(CLK_I) then
if(READ_I = '1') then
DATABUS_I <= "ZZZZZZZZ";
-- ... lees DATABUS_I uit
elsif(READ_I = '0') then
-- zet iets op data bus
(lijn 88) DATABUS_I <= "10101010";
end if;
end if;
Het probleem is reeds opgelost,
Deze code werkt, in het groter geheel stond de toewijzing van de poort buiten de clock detect lus.
Nordin
"Een model dat niet werkt is erg. Veel erger echter is een model dat werkt, maar waarvan niemand weet waarom"
