Acabo de usar una IP en el catálogo de IP llamada Multiplicar acumular. Esta IP se supone que multiplica 2 entradas y acumula el resultado. Hice un módulo de control para él (mac_control) donde instalé esta IP (mac: entity work.MAC port map ...) y luego hice mi banco de pruebas. Todo está compilado como debería, pero cuando voy a la simulación, no produce nada.
Noté que los pines del mapa de puertos que establecí con fuerza (por ejemplo, ce = > '1', rst = > '1', etc.) no se mostraban en la simulación. No quiero decir que estuvieran marcados como indefinidos, estoy diciendo que solo había un fondo negro donde debería estar la señal. Así que creé señales internas que se iniciaron con los valores esperados (señal int_ce: std_logic: = '1') y luego vinculé la señal a los mapas de puertos. Esto hizo que las señales aparecieran en el simulador de vivado, pero aún así ... sin salida.
Tal vez me esté perdiendo una biblioteca o algo así. ¿Alguien sabe cómo simular el núcleo de IP?
EDIT : También intenté usar los operadores '*' y '+', pero vivado me dijo que se encontraron 0 definiciones para esos operadores. Estoy casi seguro de que esto significa que falta una biblioteca. Pero no puedo hacer lo mismo para el problema principal
EDIT2 : Noté algo más. Cuando abro las fuentes, muestra algo como esto:
tb -> multiplier.vhd -> mac.xci -> mac.vhd (this one has a red flag) -> xbip_multaccum_v2_0
Supongo que puede haber algo mal con el mac.vhd. Una bandera roja no me parece buena (es un pequeño cuadrado rojo en la parte inferior del ícono del icono en Vivado)
EDIT3 : Estoy usando el simulador de Vivado.