Наиболее правильный подход - сгенерировать блок памяти при помощи Memory Compiler и подключить его в проект как модуль. А вот эти самые Memory Compiler-ы они могут называться по-разному в разном софте. Где-то это мегавизард, где-то еще что-то. Описывать память конструкциями языка есть смысл только в том случае, если синтез этого модуля не планируется, а только моделирование.
Цитата(DmitryR @ Nov 5 2009, 11:49)

Мегавизардом - это если платформенно-независимый код не нужен.
Как раз с точностью до наоборот - мегавизардом, если платформонезависимый код НУЖЕН. Так как на любой платформе есть свой мемори компилер. Или конструкцией HDL, если четко привязываться к определенному синтезатору и рекомендациям по инферрингу от него.