Часть 9: ИНСТРУМЕНТЫ
9-9: Компилятор Silicon |
Electric имеет компилятор silicon, названный
QUISC (Queen's University Interactive Silicon Compiler). Это
мощный инструмент, который может
реализовать размещение и трассировку
стандартных ячеек из структурного
описания VHDL. VHDL компилируется в netlist,
который затем используется для
осуществления размещения и трассировки.
Также, поскольку Electric может генерировать
VHDL из схемы, компилятор silicon может скрыть
VHDL и произвести компоновку непосредственно
из схемы.
Имейте в виду, что компилятор silicon довольно старый, и, соответственно, он реализует компоновку, которая чередует ряды стандартных ячеек с рядами трассировки. Современный компилятор silicon использует 3 и 4 процесса металлизации для трассировки стандартных ячеек, но этого система не делает.
Описание VHDL обычно размещена в "vhdl" отображении фасета. Оно может быть создано и отредактировано полностью внутри Electric, или оно может быть прочитано с диска командой Read Text Facet... меню Facets. См. раздел 4-10 о редактировании текста. Автоматическая генерация VHDL из компоновки выполняется командой Make VHDL View меню View.
Когда VHDL создано, оно компилируется в netlist и прочитывается компилятором silicon compiler. Netlist обычно размещается в "netlist-quisc-format" отображении фасета. Если netlist слишком громоздок для удержания в памяти, он может быть сохранен на диск субкомандой VHDL Options... команды VHDL Compiler меню Tools, где снимается флажок "Netlist stored in facet". Установка "VHDL stored in facet" управляет размещением текста VHDL схожим образом.
При генерации описаний схемы или VHDL очень важно знать, какие примитивы доступны в библиотеке стандартных ячеек. Electric устанавливается с CMOS библиотекой ячеек в MOSIS CMOS ("mocmos") технологии. Эта библиотека отнюдь не точна, и существует только для иллюстрации компилятора Silicon. Следующие декларации компонент доступны:
component and2 port(a1, a2 : in bit; y : out bit); end
component;
component and3 port(a1, a2, a3 : in bit; y : out bit);
end component;
component and4 port(a1, a2, a3, a4 : in bit; y :
out bit); end component;
component inverter port(a : in bit; y :
out bit); end component;
component nand2 port(a1, a2 : in bit; y :
out bit); end component;
component nand3 port(a1, a2, a3 : in bit;
y : out bit); end component;
component nand4 port(a1, a2, a3, a4 :
in bit; y : out bit); end component;
component nor2 port(a1, a2 :
in bit; y : out bit); end component;
component nor3 port(a1, a2,
a3 : in bit; y : out bit); end component;
component nor4 port(a1,
a2, a3, a4 : in bit; y : out bit); end component;
component or2
port(a1, a2 : in bit; y : out bit); end component;
component or3
port(a1, a2, a3 : in bit; y : out bit); end component;
component
or4 port(a1, a2, a3, a4 : in bit; y : out bit); end
component;
component rdff port(d, ck, cb, reset : in bit; q, qb :
out bit); end component;
component xor2 port(a1, a2 : in bit; y :
out bit); end component;
Для использования компилятора silicon, просто запустите субкоманды в команде Silicon Compiler меню Tools. Команды организованы в меню, так что при последовательном сверху-вниз запуске они осуществляют процесс компиляции. Необходимые шаги:
Создайте цепь для компиляции (есть пример VHDL в фасете "tool-SiliconCompiler" библиотеки "samples.txt", и вы можете прочитать библиотеку субкомандой Readable Dump команды Import меню File).
Используйте субкоманду Read MOSIS CMOS Library для чтения библиотеки ячейки.
Используйте субкоманду Silicon Compiler Options... для установки параметров.
Поскольку ячейки выложены в горизонтальные ряды, вертикальная трассировка дуг (Vertical routing arc) входит и выходит из ячеек, тогда как горизонтальная (Horizontal routing arc) проходит между ячейками в канале трассировки. Дуги питания (Power arcs) проходят горизонтально между ячейками, соединяя и питание и общий провод. Дуги основного питания (Main Power arcs) проходят вертикально вдоль сторон цепи для соединения горизонтальных шин питания и земли (вы можете выбрать, какой слой использовать для дуг основного питания - main power arcs). Блок P-well (P-карман) будет размещен вдоль нижней части каждой ячейки и вытягиваться до P-Well высоты (если она не нулевая). Блок N-well будет размещаться вдоль верхней части каждой ячейки и вытягиваться вниз до N-Well высоты (если она не нулевая). Также может быть дан контур этих блоков снизу или сверху. Via size, Minimum metal spacing, Routing feed-through size, Minimum port distance и Minimum active distance - правила, которые используются для размещения проводов в канале трассировки. |
И, наконец, Number of rows of cells определяет, как много рядов использовать при создании компоновки. Однорядная цепь может быть чрезвычайно широкой и короткой, так что вы можете поэкспериментировать с этим значением. Для прямоугольной цепи количество рядов должно быть корнем квадратным из числа образцов в цепи (число образцов появляется, как сумма нерешенных ссылок, составленная компилятором VHDL).
Используйте субкоманду Get Network for Current Facet для получения netlist, ассоциированного с текущим фасетом. Эта команда скомпилирует VHDL, если netlist не доступен или устарел (заметьте, однако, что, если текущий фасет - netlist, он будет использован без поисков более свежего VHDL или фасета компоновки). Эта команда также генерирует VHDL из компоновки (layout), если VHDL пропущен или устарел (заметьте также, что если текущий фасет - VHDL, он будет использован без поиска последних фасет компоновки).
Используйте субкоманду Do Placement для размещения библиотеки ячеек.
Используйте субкоманду Do Routing для соединения их вместе.
Используйте субкоманду Make Electric Layout для реального создания размещенной-и-разведенной (placed-and-routed circuit) цепи в текущей библиотеке. Контролер инкрементных правил разработки выключен в этом месте, поскольку новый фасет будет обширным и может доставить хлопот. Новый фасет будет иметь отображение "layout".
Последняя субкоманда в командах Silicon Compiler - это Issue Special Instructions..., которую обычно нет нужды использовать. Однако система компилятора silicon так обширна, что опытным пользователям она может приглянуться. После вызова этой команды может быть введена любая последовательность инструкций для компилятора silicon. Используйте клавишу "Cancel" для возвращения в Electric.
|
|