Estoy tratando de implementar un microcontrolador en un FPGA, y tengo que darle una ROM para su programa. Si uso $ readmemb, ¿se sintetizará correctamente en una ROM? Si no, ¿cuál es la forma estándar de hacer esto?
Respuesta
Me gustaría modificar la respuesta de George para decir que depende de la herramienta de síntesis si $readmemb
es o no sintetizable. guía
de Altera Recommended HDL Coding Styles incluye ejemplo 10-31 (página 10-38), lo que demuestra una ROM inferirse de $readmemb
(reproduce a continuación):
module dual_port_rom (
input [(addr_width-1):0] addr_a, addr_b,
input clk,
output reg [(data_width-1):0] q_a, q_b
);
parameter data_width = 8;
parameter addr_width = 8;
reg [data_width-1:0] rom[2**addr_width-1:0];
initial // Read the memory contents in the file
// dual_port_rom_init.txt.
begin
$readmemb("dual_port_rom_init.txt", rom);
end
always @ (posedge clk)
begin
q_a <= rom[addr_a];
q_b <= rom[addr_b];
end
endmodule
mismo modo, de Xilinx XST User Guide estados que:
Las tareas
$readmemb
y$readmemh
se pueden utilizar para inicializar las memorias del bloque . Para obtener más información, consulte:La inicialización de RAM desde un archivo externo ejemplos de codificación
Uso
$readmemb
para binario y$readmemh
de representación hexadecimal . Para evitar la posible diferencia entre XST y el comportamiento del simulador , Xilinx® recomienda que use los parámetros de índice en estas tareas del sistema . Consulte el siguiente ejemplo de codificación . respuesta
$readmemb("rams_20c.data",ram, 0, 7);
- 1. División en verilog
- 2. ¿Cómo se comporta Verilog con números negativos?
- 3. ¿Cómo sintetizar sonidos?
- 4. Recursos para aprender Verilog
- 5. ¿Qué significa "net" en Verilog?
- 6. Alternativas a readmemh en Verilog
- 7. Tarea automática Verilog
- 8. Operador de interrogación Verilog (?)
- 9. ¿Cómo sintetizar frecuencias exactas en flash?
- 10. python sintetizar midi con fluidsynth
- 11. VHDL/Verilog related programming forums?
- 12. Verilog generate/genvar en un bloque siempre
- 13. ¿Qué significan las llaves en Verilog?
- 14. Asignar número entero a reg en Verilog
- 15. Objective-C propiedad y sintetizar lógica
- 16. ¿Cómo puedo sintetizar sonidos con CoreAudio en iPhone/Mac?
- 17. iPhone XCode propiedad automática, sintetizar y delloc
- 18. Script Xcode para generar/sintetizar propiedades
- 19. ¿por qué debería usar vectores sin empaquetar en System Verilog?
- 20. ¿Cómo funciona la propiedad automática de sintetizar en xcode 4.4?
- 21. Sintetizar notas musicales (con sonidos de piano) en Python
- 22. Verilog Best Practice - Incrementando una variable
- 23. Buscando una biblioteca para sintetizar sonidos de fuentes de sonido
- 24. ¿Qué significa el término "Verilog Synthesis"?
- 25. Pasar la jerarquía a un módulo Verilog
- 26. lleno vs vectores descomprimidos en el sistema de Verilog
- 27. Como puedo separar declaraciones largas en líneas en Verilog
- 28. Cómo firmar y extender un número en Verilog
- 29. Incremento de múltiples Genvars en Verilog Generate Statement
- 30. Mejor forma de codificar una RAM en Verilog
de mrkj es mucho mejor que la mía. Lo he eliminado – George