|
|
Строка 1: |
Строка 1: |
| {{ПЦУСБ TOC}} | | {{ПЦУСБ TOC}} |
| + | {| align=center width=800px |
| + | ! [[Файл:Проектирование.mm|center]] |
| + | |} |
| + | |
| <!-- <graph> | | <!-- <graph> |
| digraph G { | | digraph G { |
Строка 29: |
Строка 33: |
| [[Файл:ISE flow.png|center]] | | [[Файл:ISE flow.png|center]] |
| | | |
− | == Слайд:Цели и задачи курса == | + | == Слайд: Немного мотивации == |
− | Изучение методов алгоритмического, функционального и структурного описания цифровых систем на формальных языках проектирования, а также методов и компьютерных средств моделирования, верификации и схемной реализации проектов цифровых систем и устройств.
| + | |
| | | |
− | == Общая информация ==
| + | *''По запросу "vhdl OR verilog OR FPGA OR ПЛИС" на job.tut.by'' |
− | Для оценки сложности интегральных схем используется единица эквивалентного вентиля (например 2-входовый И-НЕ), который соответствует 4-м эквивалентным транзисторам. Уровни интеграции СБИС принято делить на следующие группы:
| + | |
− | * SSI - Small scale integration или МИС - малая интегральная схема с десятками и сотнями эквивалентных вентилей.
| + | |
− | * MSI - Medium scale integration или СИС - средняя интегральная схема с тысячами вентилей.
| + | |
− | * LSI - Large scale integration или БИС - большая интегральная схема с сотнями тысяч вентилей.
| + | |
− | * VLSI – Very large scale integration или СБИС - Сверхбольшая Интегральная Схема с несколькими миллионами вентилей.
| + | |
− | * USLI – Ultra large scale integration или УБИС - УльтраБольшая Интегральная Схема.
| + | |
| | | |
− | Наибольшее распространение на данный момент имеют СБИС, поэтому далее мы будем пользоваться этим термином для обозначения всех интегральных схем высокой степени интеграции.
| + | {| align=center |
− | | + | ! Регион: |
− | Кроме того интегральные схемы условно делятся на группы специализированных применений (ASIC - Application Specific Integrated Circuit) и коммерческие интегральные микросхемы общего применения, как массовые микропроцессоры и серийные наборы микросхем.
| + | ! ЗП: |
− | С развитием технологий производства и повышением степени интеграции появилось такое понятие как системы на кристалле (СнК) или Systems-on-Chip (SoC), которые представляют собой комбинацию специализированных и универсальных процессорных ядер и блоков, выполненных на единой кремниевой подложке.
| + | ! Опыт |
− | | + | |
− | СБИС также различаются по полупроводниковой технологии исполнения:
| + | |
− | * TTL или ТТЛ - транзисторно-транзисторная логика на биполярных транзисторах
| + | |
− | * ECL или ЭСЛ - эмиттерно-связанная логика
| + | |
− | * MOS - NMOS, CMOS или МОП, НМОП и КМОП логика.
| + | |
− | | + | |
− | === Слайд: Основные типы СБИС, используемые в электронной индустрии === | + | |
− | * Полнозаказные СБИС (Full-Custom ASICs)
| + | |
− | * Полузаказные матричные СБИС на основе стандартных ячеек-модулей (StandardCell–Based ASICs)
| + | |
− | * Полузаказные СБИС на основе матрицы вентилей (Gate-Array–Based ASICs)
| + | |
− | ** Канальные матрицы вентилей (Channeled Gate Array)
| + | |
− | ** Бесканальные матрицы вентилей (Channelless Gate Array), наиболее популярные в настоящее время
| + | |
− | ** Структурированные матрицы вентилей (Structured Gate Array)
| + | |
− | * СБИС программируемой логики c макроячейками или макроблоками (Complex Programmable Logic Devices or CPLDs) или ПЛИС
| + | |
− | * СБИС программируемой логики c микроячейками или базовыми блоками (FieldProgrammable Gate Arrays or FPGA)
| + | |
− | | + | |
− | Каждый тип СБИС имеет свою нишу на рынке, которая определяется массовостью применения приборов и изделий, а также степенью универсальности характеристик СБИС.
| + | |
− | Все эти типы СБИС различаются стоимостью проектирования и изготовления, в случае ПЛИС разработчик использует готовые СБИС, программируя их для своих приложений, что дает минимальную цену подготовки производства, которую называют NRE – non-recurring engineering cost.<br>
| + | |
− | На рисунке ниже приведены наборы масок (называемых также фотошаблонами) для полнозаказных и полузаказных СБИС, по их требуемому числу можно легко определить трудоемкость разработки каждого типа СБИС.<br>
| + | |
− | Самые нижние маски определяют формирование базовых транзисторов на кремниевой подложке, следующие уровни определяют их топологические соединения металлическими проводниками для формирования базовых логических элементов и макро-блоков. Верхние уровни масок определяют межсоединения между крупными макроблоками (мега-элементами) и конфигурацию ввода-вывода. В современных технологических процессах производства полупроводников использутся свыше сорока масок, определяющих транзисторы, слои металлизации и изоляции. Стоимость комплекта масок достигает миллиона долларов и выше для процессов 45нм, а для 10нм достигает десятков миллионов долларов.
| + | |
− | <br>
| + | |
− | <center>[[Файл:Wafer masks.png|1200x900px|безрамки|Маски или фотошаблоны для полнозаказных (а) и полузаказных (b) СБИС]]</center><br>
| + | |
− | <center>Маски или фотошаблоны для полнозаказных (а) и полузаказных (b) СБИС</center>
| + | |
− | | + | |
− | == Слайд: Маршрут проектирования ЦС ==
| + | |
− | <graphviz>
| + | |
− | digraph G {
| + | |
− | node a[label="Техническое задание"]
| + | |
− | node b[label="Спецификация"]
| + | |
− | node c[label="верификация"]
| + | |
− | node d[label="логическое проектирование"]
| + | |
− | node e[label="физическое проектирование"]
| + | |
− | a -> b
| + | |
− | b -> c
| + | |
− | b -> d
| + | |
− | b -> e
| + | |
− | d -> c
| + | |
− | d -> e
| + | |
− | }
| + | |
− | </graphviz>
| + | |
− | === Слайд: Логическое проектирование ===
| + | |
− | Этап описания логических схем (не учитывается технология, физические,электрические и другие характеристики).
| + | |
− | Описывается комбинационная логика, триггеры и связи между элементами схемы.
| + | |
− | Для описания используются такие языки, как VHDL, Verilog, SystemC.
| + | |
− | Результатом является логическая схема на уровне регистровых передач (RTL).
| + | |
− | | + | |
− | === Слайд: Верификация ===
| + | |
− | Этап проверки соответствия описания логических схем спецификации.
| + | |
− | Для целей верификации часто используются такие языки как SystemVerilog, SystemC, VHDL, specman E.
| + | |
− | Для каждого из перечисленных языков существуют стандартные фреймворки (библиотеки).
| + | |
− | * SystemVerilog: VMM, OVM, UVM.
| + | |
− | * VHDL: OSVVM, UVVM.
| + | |
− | * SystemC: UVM.
| + | |
− | * Specman E: UVM.
| + | |
− | | + | |
− | === Слайд:Физическое проектирование ===
| + | |
− | Этап построения топологии цифровой схемы (размещение логических элементов и проводников на поверхности кристалла) для конкретного технологического процесса с учётом всех производственных норм и характеристик Результатом является файл топологии интегральной схемы GDS II, который отправляется на фабрику.
| + | |
− | | + | |
− | == Слайд:Пример использования языков описания аппаратуры ==
| + | |
− | {| align=center width=800px
| + | |
− | ! [[Файл:Add1 .png|1200x900px|безрамки|Условное графическое представление одноразрядного сумматора]] | + | |
| |- | | |- |
− | ! [[Файл:Add1.png|1200x900px|безрамки|Одноразрядный сумматор]]
| + | |<hbarchart> |
| + | Беларусь 10 |
| + | Россия 70 |
| + | Москва 28 |
| + | Санкт-Петербург 25 |
| + | </hbarchart> |
| + | |<hbarchart> |
| + | От 1.5K$ 40 |
| + | От 2K$ 26 |
| + | От 3K$ 22 |
| + | От 4K$ 2 |
| + | </hbarchart> |
| + | |<hbarchart> |
| + | От 3 до 6 лет 53 |
| + | От 1 года до 3 лет 43 |
| + | Нет опыта 21 |
| + | </hbarchart> |
| |} | | |} |
− |
| |
− |
| |
− |
| |
− |
| |
− | <div style="width: 35%; float: left; margin: 0 0 5px 5px;">
| |
− | [[Файл:Add1 .png|1200x900px|безрамки|Условное графическое представление одноразрядного сумматора]]
| |
− | <br>
| |
− | [[Файл:Add1.png|1200x900px|безрамки|Одноразрядный сумматор]]
| |
− | </div>
| |
− | <div style="width: 50%;float: right; margin: 0 0 5px 5px;">
| |
− | Описание однобитного сумматора на языке VHDL
| |
− | <source lang="vhdl">
| |
− | entity add1 is
| |
− | port (b1,b2 : in BIT;
| |
− | c1,s1 : out BIT);
| |
− | end add1;
| |
− |
| |
− | architecture struct_1 of add1 is
| |
− | begin
| |
− | s1<= ((b1 and (not b2)) or ((not b1) and b2));
| |
− | c1<= b1 and b2;
| |
− | end struct_1;
| |
− | </source>
| |
− | Описание однобитного сумматора на языке Verilog
| |
− | <source lang="verilog">
| |
− | module add1(input b1,b2;
| |
− | output c1,s1);
| |
− | assign s1 = ((b1 & ~b2) | (~b1 & b2);
| |
− | assign c1 = b1 & b2;
| |
− | endmodule
| |
− | </source>
| |
− | </div>
| |
− | <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
| |
| | | |
| == Слайд: NEW == | | == Слайд: NEW == |