備忘録:Spartan3やCycloneなどの同期ブロックRAMしか持たないFPGAでは、それなりの記法に沿って記述しないと内部RAMにマッピングしてくれない。SFLでは次のように記述する。
ポイントは、アドレス入力レジスタを持たせること。
Xilix ISEでもAltera QuartusIIのいずれでも、下記SFL記述は内部RAMにマッピングしてくれる。
module mainmem {
input adr<12>;
input datai<8>;
output datao<8>;
instrin read, write;
mem mcell[4096]<8>;
reg radr<12>;
radr := adr;
instruct read datao = mcell[radr];
instruct write mcell[adr] := datai;
}
ポイントは、アドレス入力レジスタを持たせること。
Xilix ISEでもAltera QuartusIIのいずれでも、下記SFL記述は内部RAMにマッピングしてくれる。
module mainmem {
input adr<12>;
input datai<8>;
output datao<8>;
instrin read, write;
mem mcell[4096]<8>;
reg radr<12>;
radr := adr;
instruct read datao = mcell[radr];
instruct write mcell[adr] := datai;
}