Из вашего описания я бы предположил, что две ОЗУ предназначены для кеша инструкций и кеша данных. Поскольку они обычно имеют значительный размер даже на меньших процессорах, я сомневаюсь, что эти ОЗУ реализованы в триггерах и мультиплексорах. Поэтому мое первое предложение будет заключаться в том, чтобы вы проверили список соединений, чтобы увидеть, действительно ли ОЗУ являются отдельными примитивными модулями ОЗУ.
Причина в том, что примитивные модули ОЗУ иногда (в зависимости от модели) могут быть инициализированы содержимым файла. В этом случае вам просто нужно сделать файл с правильным форматом.
Альтернативой, если примитивные модули RAM действительно есть в списке соединений, но не допускают инициализации, является замена примитивных модулей RAM вашей собственной версией, которую можно инициализировать.
Если оперативная память фактически преобразуется в триггеры и мультиплексоры, то процессор может поддерживать некоторые инструкции по работе с кешем, обычно доступные в защищенном (ядерном) режиме. Эти инструкции можно использовать для загрузки кэша инструкций и кэша данных содержимым, предоставленным исполняемой программой. Загрузка кэш-памяти таким образом может потребовать многочисленных инструкций, что потребует некоторого времени моделирования.
Наконец, вы можете подумать о том, чтобы не тратить так много времени на моделирование уровня ворот. Может быть нормально немного поработать, просто чтобы убедиться, что нетлист в порядке, но хорошо известные коммерческие инструменты синтеза, как правило, имеют высокое качество, так что вряд ли они будут причиной ошибок в вашем проекте. Риск ошибок намного больше в специальном дизайне для проекта, поэтому вы можете потратить больше времени на проверку функций и проверку кода ;-)
person
Morten Zilmer
schedule
18.05.2013