Category:

Как делают микросхемы

01

Микросхемы пишут на языке Verilog.
Примерно как программы для компов пишут на языках программирования C++ и прочих, так и процессоры для компов пишут на языках описания аппаратуры (HDL - hardware description language), например Verilog.
12 фотографий.

Он выглядит так:

Verilog

02
Исходный код на верилоге будущей микрухи долго отлаживается виртуально. Пишутся тесты, которые подают виртуальные сигналы на входы, просматриваются внутренние и выходные сигналы, прохождение данных, переходы по состояниям внутренних конечных автоматов (fsm - finite state machine), и подобное.

Это сообщение отредактировал LordOfSteel - 1.08.2014 - 18:39

Modelsim

03
Исходный код будем транслировать в прошифку специальной микросхемы - FPGA. Это крутая микросхема field-programmable gate array.
Внутри fpga очень много маленьких простых логических блоков, которые можно запрограммировать на выполнение
какой-либо простой логической функции.
А ещё внутри fpga есть куча матриц соединений и трассировочных ресурсов, для соединения маленьких логических блоков в большие сложные логические структуры.
То есть внутри fpga есть много маленьких обломков логических микросхем, и средства соединения этих кусочков микросхем в одну большую микросхемищу, такую какую надо.

fpga

04
HDL исходники засовываются в синтезатор. Это типа компилятор у программистов. Синтезатор синтезирует код в микросхемообразное представление, делает логический синтез, позволяет посмотреть получающуюся схему RTL, состояния и переходы конечных автоматов.

Это сообщение отредактировал LordOfSteel - 1.08.2014 - 19:09

Synplify

05
Код на HDL синтезируется в так называемый netlist, он же нетлист. Это набор элементарных простых логических блоков и список соединений между ними в формате EDIF.

Это сообщение отредактировал LordOfSteel - 1.08.2014 - 19:10

netlist

06
Добавляются готовые логические ip-ядра IP-cores.
Это готовые отлаженные куски кода или уже отсинтезированные нетлисты, предназначенные для выполнения какой-нибудь функции. На фотки ip-ядро PCI-Express.

Это сообщение отредактировал LordOfSteel - 1.08.2014 - 19:13

coregen

07
Прицепляем 32-х разрядное микропроцессорное ядро MicroBlaze Soft Processor, для которого пишем софт на C++.

microblaze

08
Дальше запускается долгий процесс Implementation, засовывание в раскладывание в FPGA логических функций по логическим ячейкам и соединение ячеек в нужную структуру.

par

09
Результат выглядит так. Это схема FPGA с соединениями.

fpga editor 1

10
Немного увеличим. Так выглядят логические ячейки CLB (Configurable Logic Block) с соединениями. Справа вверху схема одного CLB.

Это сообщение отредактировал LordOfSteel - 1.08.2014 - 18:39

fpga editor 2

11
Результат заливаем в FPGA для аппаратной отладки на отладочной плате.

hard 1

12
Готовое изделие.
В реальности всё намного сложнее, используется огромная куча софта.
Приходится писать и править кучу файлов разных форматов.

ВСЁ.

hard 2


Error

Anonymous comments are disabled in this journal

default userpic