Existe un término en simulación/verificación de HDL llamado "acceso a memoria de puerta trasera".
He escuchado esto muchas veces, aunque no estoy seguro de cómo se implementa.
Además, hay algunas referencias para este concepto.
Esta pregunta realmente necesitaba un poco más de contexto que simplemente "¿Cómo funciona el acceso a la memoria de puerta trasera?". Un enlace a un documento de 198 páginas para que lo leamos, con el fin de adivinar lo que está preguntando, no es realmente propicio para obtener buenas respuestas.
Incluso un contexto básico como "en el contexto de la simulación HDL", que parece ser lo que está preguntando, ayudaría.
Dicho esto: al simular un sistema (tal vez probando una CPU que haya implementado en un FPGA), deberá conectar la CPU a la memoria externa en su banco de pruebas. El modelo de memoria puede parecerse a:
entity SRAM is
port (
Address : in unsigned(15 downto 0);
Data : inout std_logic_vector(15 downto 0);
Wr_n : in std_logic;
OE_n : in std_logic;
CS_n : in std_logic
);
end SRAM;
y puede escribir este modelo de memoria usted mismo o descargarlo de un proveedor.
Ahora, cargar un programa grande a través de estos puertos requerirá mucho tiempo de simulación (desperdiciado). Lo mismo ocurre con el almacenamiento de la salida del programa para un análisis posterior.
Sin embargo, no hay nada que le impida agregar más conexiones al modelo de memoria, que están completamente separadas de los pines reales en la memoria física y se conectan directamente a su banco de pruebas.
Por ejemplo, podría agregar una interfaz de puerta trasera que consiste en los puertos
Filename : in String;
Load : in std_logic;
Save : in std_logic;
y comportamiento adecuado (lectura de un archivo binario) en la arquitectura SRAM. Luego, en el banco de pruebas (suponiendo que Progmem_Filename esté conectado al puerto Filename correcto) puede escribir
Progmem_Filename <= "selftest.elf";
Load <= '1';
wait for 1 ns;
Load <= '0';
y la memoria de su programa está cargada y lista para ejecutarse.
pjc50
Wouter van Ooijen
Federico Ruso
e19293001
yippie
Kaz