Implementación de NIOS Softcore junto con módulos HDL en Aletra Cyclone IVGX

Mi pregunta no es sobre ' cómo se puede ' sino ' si se puede '. Así que creo que las personas con suficiente experiencia en cualquier familia de FPGA podrían ayudarme aquí.

Declaración del problema : necesito modelar un sistema de control muy básico en un FPGA de modo que la 'planta' se ejecute como un módulo Verilog (HDL) en el FPGA (no solo simulación) y el controlador se implemente como un ejecutable C que se ejecuta en NIOS2 softcore procesador en la FPGA (Altera Cyclone IVGX).

Todos los manuales y publicaciones que leí que usan la herramienta CAD (Qsys, Quartus, SOPC builder, etc.) toman solo ejemplos de cómo un procesador softcore NIOS 2 puede actualizarse en un FPGA y hacer que haga varias cosas. Pero, ¿puedo también tener un sistema donde el NIOS2 se sintetice junto con otros módulos Verilog (HDL) e interactúe con cualquier código que se ejecute en el procesador softcore?

Entiendo que al plantear una pregunta de este tipo, puedo provocar una respuesta similar a RTFM , pero me desplacé por los manuales de diseño en busca de ese tema, pero no pude encontrar uno.

Todo lo que necesito saber es si esto se puede hacer para pasar más tiempo leyendo los manuales incluso de cerca que antes.

Lo hice con la placa de desarrollo Cyclone V Soc, por lo que estoy seguro de que hay suficientes recursos para un procesador de software y algo de lógica de hardware.
El mío es un Terasic DE2i-150 (Intel Atom+Cyclone IVGX), así que supongo que tu comentario debería ser suficiente en lo que respecta a los recursos físicos. @ lucas92: ¿podría ayudarme también con algunos recursos en línea que me ayuden a aliviar mi confusión? Gracias
@lucas92 Muchas gracias!! Otro rápido, si se puede. El manual 'Mi primer niosII' indica que necesito configurar niosII, actualizarlo en el FPGA y luego usar la herramienta de compilación de software (SBT) para ejecutar un ejecutable C en él. En mi caso, supongamos que después de configurar NIOSII (aún no flasheado en FPGA), uso su bloque de símbolos en un nuevo 'Archivo de diagrama de bloques' donde lo conecto a una lógica externa personalizada. Después de esto, flasheo este circuito completo (BDF completo), ¿puedo usar el SBT para escribir un código C? Quiero decir, ¿el SBT identificará el NIOS que se ejecuta en medio de varios otros elementos lógicos?
¿Te diste cuenta de esto al final?

Respuestas (1)

Sí, definitivamente puedes hacer eso. Después de todo, el objetivo de tener una CPU de núcleo blando es que pueda integrarla con una lógica personalizada.

En esencia, el procesador NIOS es solo otro módulo HDL. Puede instanciarlo dentro de un diseño de nivel superior como cualquier otro módulo.

Sin embargo, descubrí que las herramientas del proveedor (tanto de Altera como de Xilinx) han desarrollado formalismos estrictos para crear sistemas que requieren que usted ajuste su lógica personalizada en una interfaz particular para que su "generador de sistema" pueda generar el módulo de nivel superior de el chip por usted y hacer todas las conexiones. Puede tomar algún tiempo averiguar dónde están documentados los detalles de esa interfaz formal y cómo usarla.

Llámalo mi codicia :). Pero, ¿podría ayudarme con algunos recursos que me ayuden a comprender el mecanismo de resolución tal como lo mencionó, de una manera más concisa que leer los dos libros de referencia de Altera de principio a fin? Gracias