Цитата(S_Hawk @ Sep 30 2009, 21:56)

Если систему строить и решать, уходит около 200 тактов.
...
Быстродействие - хотелось бы получить 250 млн. систем в секунду

Надо еще понять, сколько логики занимает этот блок решения за 200 тактов и на какой частоте работает. Если он занимает например 200 LUT и может работать на 250 МГц - то поставив параллельно 200 блоков вы получите решение задачи размером в 40000 LUT, что не заоблачно стоит на сегодняшний день.
Что же касается поисков памяти - то мне пока трудно представить ПЗУ или флэш со скоростью 250*500=125000 мегабод. Если же вам подходит обычное ОЗУ (то есть вы можете после включения питания подождать, пока ваш вычислительный блок посчитает все системы и инициализирует ОЗУ) - то две планки DDR3-533 (128 бит*1066 Мгц=136448 мегабод) вроде бы решают вашу проблему. Самые современные ПЛИС DDR3-533 могут. Предвкушая вопросы по поводу произвольного доступа в DRAM скажу, что вы будете выбирать по два полных квадрослова на одну систему, то есть на один адрес, то есть скорость подачи адресов у вас будет 533 МГц, что возможно, так как у DDR3 памяти чтение данных и подача следующей команды может перекрываться. При произвольном доступе на адрес надо две команды (RAS и CAS), но ведь у вас и два банка будет.