Ich habe ein Modul mit 16bit Inout-Bus. In meiner Top-Level-Entity möchte ich nur 4 von ihnen verbinden (auch bidirektional). ofcourse sie verbindet, führt direkt zu einem FehlerVHDL bidirektionalen Bus Mismatch
port map(IO16bit => IO4bit)
so verbunden ich den m durch ein internes Signal
signal temp : std_logic_vector (15 downto 0);
port map(IO16bit => temp);
IO4bit <= temp(3 downto 0);
aber jetzt bekomme ich den Fehler: Tri-State-Knoten fährt nicht direkt auf oberste Ebene Pins und konvertiert Fanout in ein OR-Gatter
Ich verlor die Bidirektionalität hier. Wie kann ich das lösen?
Oder sogar 'IO16bit (15 downto 4) => offen,' ohne das Dummy-Signal. Wenn Sie ein Dummy-Signal verwenden, fahren Sie es mit '(other => 'Z')', um Busabstürze zu vermeiden. –
@BrianDrummond: Wenn 'open' anstelle von' dummy' verwendet wird, gibt ModelSim den Fehler "Formal" az_io "nicht aus mit OPEN verknüpft, wenn Unterelemente einzeln zugeordnet sind. ". Guter Punkt mit 'Z' für dummy. –