[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 16 декабря 2002 г. 22:11
В ответ на: Ответ: отправлено SKov 16 декабря 2002 г. 12:56

Симуляторы бывают разные. Есть например pre-synthesis simulation, есть post-synthesis, есть post-route. Первые (например modelsim) нужны для того, что-бы проверить работоспособность проекта и изготовить тестовые вектора для следующего этапа. Вот тут и нужны всякие там initial и прочие несинтезируемые конструкции типа указаний задержек и инерционности. Вторые (для случая FPGA/PLD они же и третьи) например симулятор макс-плюса - они анализируют синтезированный нетлист. Там уже и следа не остается от задержек и initial, по-этому макс-плюс и ругает несинтезируемые конструкции. Да и бессмысленны они, так как в реальном случае при подаче питания на чип все регистры встанут в случайное состояние, которое не опишешь ни какими initial. А задержки будут вычислятся уже на основе библиотеки базовых элементов, с которой производился синтез. На этом этапе можно сравнить результат моделирования pre-synthesis с результатом, показанным после синтеза, проверить правильность синтеза и соответствие задержек требуемым. Третий вид симуляции (это не касается программируемой логики, только ASIC) - это когда синтезированный нетлист разведен на базовом матричном кристалле (routing), то есть сделана разводка слоев металлизации. На этом этапе добавляются задержки в "проводах", неравномерности распределения тактовых сигналов, и т.д. Это последний этап перед выпечкой кристалла.

При работе с FPGA (с не сложными проектами, где-то наверное до 4-5-ти тысяч ячеек) я считаю что первый этап в принципе является лишним, так как гораздо приятнее сразу иметь дело с моделированием в условиях, приближенных к реальным. То есть в данном случае как пример как раз симулятор макс-плюса. И не писать всякие initial, а просто сделать сигнал RESET, который проинициализирует схему. И писать всякого хлама меньше, и результат ближе.
А вот с ASIC'ами другой колинкор - тут например может быть такая система - ты пишешь исходник. Снабжаешь его всеми обвесами для моделирования, и проверяешь его работоспособность в том-же modelsim'e. Затем отдаешь исходник и векторы, сгенеренные при моделировании туда, где будут делать синтез и разводку металлизаций. Они синтезируют и присылают результат моделирования post-synthesis. Точнее сравнение вектора, присланного тобой с получившимся у них. Если устраивает - даешь добро на разводку, и опять сравнение векторов. Только потом - добро на выпечку кристалла.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru