> habe den Fehler gefunden. Meine Constraints waren falsch. Hatte zwei
> LED-Outputs vertauscht und damit waren diese nicht auf den korrekten
> Hardware-Pins für die jeweilige "Dual Function" des Hard-IP.
Im VHDL code ist auch so eine Vertauschung bei der Instanziierung, das
schien mir aber nicht besonders wichtig:
1 | port map (
|
2 | CURREN => '1', -- I
|
3 | RGBLEDEN => '1', -- I
|
4 | RGB0PWM => led_red_int, -- I
|
5 | RGB1PWM => led_green_int, -- I
|
6 | RGB2PWM => led_blue_int, -- I
|
7 | RGB2 => led_red, -- O
|
8 | RGB1 => led_green, -- O
|
9 | RGB0 => led_blue -- O
|
10 | );
|
red_int wird auf RGB0* verdrahtet, led_red dagegen auf RGB2*, der selbe
Mischmasch bei blue .
> Schade nur,
> dass in solchen Fällen keine (hilfreiche) Fehlermeldung ausgegeben wird.
FPGA's sind eben auch hinsichtlich des IO-Pinings sehr komplex, da
schaffen es die Tool-programmierer selten, alles abzutesten und
aussagekräftig zu berichten was anVoraussetzunegn und Einschränkungen im
Datenblatt genannt wird.
Wenn beim Zynq ein Schaltnild zu reviewen ist, nehm ich mir immer
mehrere Stunden Zeit für den Review der MDIO (also Multiplexed
Hardcore-Peripherals (I2C, UART,...) mit den User-IO) resp. nachschlagen
der zulässigen Verdrahtungsmöglichkeiten im Datenblatt (
https://docs.amd.com/r/en-US/ug1085-zynq-ultrascale-trm/MDIO-Interface
).
Da die FPGA_Firmware moch nicht erstellt ist, kann man nicht die tools
für einen automatischen DRC (Design Rule Check) drüber laufen lassen.