Wir haben ein Problem mit einer Xilinx Vivado Simulation. Ein generic in einer entity wird nicht akzeptiert / richtig verarbeitet. Die Komponente und das mapping wurden genutzt, wie im VHO vorgezeichnet. Es synthetisiert durch und compiliert und simuliert wohl auch in Modelsim. Modelsim meldet jedenfalls keinen compile error. Simuliert wird in VHDL. Das ist der Teil der Komponente:
1 | component serializer_pci |
2 | generic |
3 | (-- width of the data for the system |
4 | SYS_W : integer := 1; |
5 | -- width of the data for the device |
6 | DEV_W : integer := 4); |
7 | port |
8 | ( |
9 | -- From the system into the device |
10 | data_in_from_pins_p : in std_logic_vector( SYS_W-1 downto 0); -- PIN INPUT |
11 | data_in_from_pins_n : in std_logic_vector( SYS_W-1 downto 0); -- PIN INPUT |
12 | data_in_to_device : out std_logic_vector( DEV_W-1 downto 0); -- DATA OUTPUT |
13 | .... |
und das das mapping:
1 | pci_input : serializer_pci |
2 | port map |
3 | ( |
4 | data_in_from_pins_p => pci_in_from_pins_p, |
5 | data_in_from_pins_n => pci_in_from_pins_n, |
6 | data_in_to_device => pci_in_to_device, |
7 | .... |
Die beiden von Xilinx vorgezeichneten Werte SYS_W und DEV_W werden nicht erkannt. Auch wenn die generics gesetzt werden, bleibt der Fehler. Wenn man probiert, die genrics rauszunehmen und es manuell zu setzen, entstehen Inkompatibilitäten zur Komponente im IP-Verzeichnis. Wo steckt da der Fehler?