HDL et vérification
Comment la description ci-dessus est-elle généralement traitée lors de la synthèse logique pour FPGA ?
reg [7:0] mem [0:255];
always @(posedge clk) begin
if (we) mem[addr] <= din;
dout <= mem[addr];
end
- AElle n'est pas synthétisable et provoque une erreur
- BElle donne 256 additionneurs indépendants
- CElle est inférée comme une mémoire de 8 bits × 256 mots et affectée à la RAM bloc intégrée du FPGA
Afficher la réponse et l'explication
Réponse : C. Elle est inférée comme une mémoire de 8 bits × 256 mots et affectée à la RAM bloc intégrée du FPGA
Lorsqu'un tableau de reg est écrit sous la forme convenue, avec écriture et lecture synchronisées sur l'horloge, l'outil de synthèse logique le reconnaît (l'infère) comme une mémoire et l'affecte à la RAM bloc du FPGA ou aux composants mémoire d'un ASIC. Synchroniser aussi la lecture sur l'horloge est l'astuce pour correspondre à la RAM bloc ; une écriture à lecture asynchrone peut être réalisée avec de nombreuses bascules ou un autre type de mémoire.