Acabo de terminar un curso de Coursera sobre diseño de hardware (nand2tetris) y quiero dar el siguiente paso e implementar el diseño en un FPGA. Al ser bastante nuevo en el aspecto de hardware de la informática en general, necesitaba aclarar algunas preguntas con respecto a la memoria. En particular, quiero implementar un diseño de memoria que esté organizado en matrices cuadradas de registros de 16 bits de ancho. Se podría acceder a los datos especificando una matriz y luego una fila o columna (con el objetivo de acelerar la multiplicación de matrices). Sin embargo, no estoy seguro de que tal diseño se ajuste a un FPGA (creo que puedo permitirme a lo sumo un Cyclone V o algo equivalente). Dado que las GPU se pueden implementar en los FPGA, debe haber una forma más eficiente de hacer esto que no requiera usar los flip flops D en cada elemento lógico para almacenar un bit de un registro individual. Si no lo hay, ¿cómo manejan las personas las matrices de datos en paralelo en los FPGA? Cualquier información sería realmente útil y, dado que se trata de un ejercicio puramente pedagógico, se agradecen los indicadores de los materiales de aprendizaje sobre el tema.