Цитата(edward77 @ Jan 10 2005, 17:10)
Спасибо Олег за детальные разьяснения, я и представить себе не мог сколько там всего

.
О предпочтениях: у меня есть достаточный опыт в работе с FPGA\PLD, то что Вы назвали RTL Coding / Syntesis / Timing Analysis, хотелось бы изучить/сравнить сходный уровень в случае производства ASIC.
И еще один вопрос что подразумевается под Architecturing / Behavioral Modelling???
Не за что! Надеюсь, что помог чем-то.
1. Архитектура и поведенческое моделирование.
Как правило, разработка архитектуры включает в себя моделирование будущего ASIC алгоритмически с целью выявления потенциальных проблем в идее самого проекта. Моделирование выполняется чаще всего на C++ и с библиотеками, упрощающими стыковку с "аппаратным миром" (SystemC). Алгоритмическая (поведенческая) модель может стать прототипом для написания верификационной поведенческой модели ASIC, на которой отлаживается набор тестовых программ (testcases), на которых в последствии будет регрессионно отлаживаться RTL-модель. В зависимости от назначения проекта (области применения ASIC), его алгоритмическое моделирование может существенно различаться. Поведенческое моделирование - это средство проверки правильности алгоритмов, реализуемых в последствии аппаратно. На этом этапе становятся понятны ограничения будущего проекта.
Эта тема довольно обширна по наполнению. В проектировании FPGA она может возникнуть только при разработке системы на кристалле в старших и наисовременнейших семействах устройств. То есть там, где на одной подложке сосуществуют процессорные ядра, приемо-передатчики, пользовательская логика и т.п. Для связки и проверки всего этого хозяйства перед проектированием может быть полезно написать поведенческую модель.
2. RTL-кодирование / Синтез / Статический временнОй анализ.
RTL-кодирование для ASIC и для FPGA в приницпе не отличаются друг от друга. Одно часто встречающееся отличие - использование Verilog для ASIC-проектов и VHDL/Verilog для FPGA. Дело в том, что Verilog - язык по своему синтаксису и функциональности ближе к синтезу ASIC-netlist'а. Он не имеет типизации, присущей VHDL. По сути, он как раз ближе к истинно RTL-описанию, а VHDL позволяет еще и поведенческий стиль. Дело в том, что синтез ASIC - это процедура получения вентильного описания, оптимального с точки зрения выбранной технологической библиотеки, содержащей примитивы логических функций. Чем ближе исходная RTL-модель будет к результирующей синтезированной структуре - тем проще отладка. Можно попрактиковаться в FPGA Compiler (Design Compiler).
Статический временной анализ (STA) ASIC и FPGA отличаются в корне. ASIC - это несущетсвующая материя. Она создается из ничего. Все, что известно, это задержки между выводами примитивов и задержки распространения в линиях, которые зависят от размещения и трассировки ASIC-проекта. Именно поэтому статический временной анализ - это фактически основная фаза оптимизации проекта, при условии, что он функционально корректен. Если Вы хотите добиться паспортной производительности - придется итеративно оптимизировать RTL-модель, layout, переопределять ограничения и т.п. В общем, работы предостаточно. Поэтому STA для ASIC вынесен в отдельный пакет (PrimeTime).
С FPGA ситуация проще, поскольку в Вашем распоряжении конечный и не многочисленный набор задержек. Ваша задача - определить ограничения по путям распространения сигналов и минимизировать критические пути с целью их сокращения. Это можно сделать либо перепроектированием RTL-кода, либо циклическим размещением и трассировкой с указанием желаемых задержек. Если Вы не переограничили проект - он разведется с 95% вероятностью. Я полагаю, проект не избыточен (RTL-код выверен и нет "лишних" затребованных ресурсов).
Есть некоторая литература по Timing Analysis для ASIC. У меня есть в PDF книга Sachin Sapatnekar. Timing. Kluwer Academic Publishers, 2004. В ней на 307 страницах описывается эта тема для различных систем и ASIC-структур в частности. Теоретический труд. Полезно для разработчиков САПР.
Есть текст диссертации A Hierarchical Timing Simulation Model for Digital Integrated Circuits and Systems. Тоже "наворочено".