Estoy desarrollando un circuito sistólico parametrizado en VHDL, utilizando genéricos. Exhibe regularidad en 2 dimensiones.
Estoy a punto de sintetizarlo en Xilinx FPGA. Sospecho que vale la pena informar al sintetizador lógico sobre esta regularidad, para lograr un mejor rendimiento en términos de área final.
Cómo puedo hacer esto ?
Ya descubrí la opción "mantener jerarquía" en Xilinx ISE, pero no está claro si funcionará.
De manera cruda, podría planificar el FPGA y dividirlo en secciones regulares, luego usar asignaciones para mover instancias específicas de la jerarquía a cada bloque. Sin embargo , esto probablemente le dará una puntuación de tiempo peor que darle total libertad al planificador, ya que impone un retraso de enrutamiento mínimo entre bloques que la colocación libre eliminaría al acercarlos.
Puede ahorrar algo en los tiempos de ejecución del placer/enrutador, pero si están tratando de evitar estas distancias artificiales, es posible que no sea una victoria general. Lo dejaría en manos de las herramientas hasta que tenga un diseño que funcione.
Si su circuito está hecho de lógica simple, será difícil restringir realmente el diseño para que encaje en la matriz de la FPGA. Probablemente debería dejar que las herramientas del proveedor de FPGA hagan el trabajo. Si tuviera que hacer un ASIC, realmente podría diseñar una celda y luego copiarla/pegarla sobre la superficie, con FPGA, tiene que lidiar con el hecho de que no son tan regulares como parecen.
Si usa recursos fijos como bloques de memoria o multiplicadores, se pueden restringir más fácilmente (usando restricciones "LOC"), la lógica restante se organizará alrededor de ellos...
Consulte Xilinx "CGD": Guía de restricciones
Paebbels
JCLL
Paebbels