Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры / КТОЦС 17 вариант.docx
Скачиваний:
27
Добавлен:
29.11.2022
Размер:
1.76 Mб
Скачать

4. Топологическое проектирование

Перед выполнением чертежа, построим топологический эскиз (ТЭ) – упрощённое изображение топологического чертежа от руки без точного соблюдения масштаба, в котором отсутствуют непринципиальные для определения площади детали. В эскизе все шины поликремния и металла, имеющие минимальную ширину, изображаются не полосками, а линиями, т. е. не имеют толщины. Будем рисовать линию кремния коричневым цветом, кармана – синим, поликремния – зелёным, металла – чёрным. Топологический эскиз изображен на рисунке 8.

Рисунок 8. Топологический эскиз

По топологическому эскизу выполним топологический чертёж на листе в клетку с соблюдением масштаба. При построении будем опираться на оптимальные ширины каналов, приведённые в таблице 9. При проектировании будем учитывать правила воспроизводимости структур в 6-мкм-КМОП КНС-технологии. Полученный топологический чертеж представлен на рисунке 9.

Рисунок 9. Топологический чертёж

5. Описание и генерация топологии в системе трас

5.1. Функция cell_ генерации топологии

Специализированный кремниевый компилятор фрагмента CELL представляет собой функцию генерации топологии CELL_. В ней описываются и позиционируются транзисторы схемы; выводятся тексты входов, выходов, размеров схемы; расставляются слои.

Используются слои следующего типа: контактные окна, n-кремний, p-кремний, поликремний, карман, металл, слой для разметки габаритов фрагмента. Слои задаются трассами, тексты задаются операторами векторного текста, указание размеров - линиями. Транзисторы задаются переменными типа layout_fix. Координаты вводятся в масштабе 1:1000 (1 мм = 1 мкм). Текст функции генерации топологии представлен в листинге 1.

Листинг 1. Функция CELL_

#include "stdafx.h"

#include "CELL.H"

layout_fix CELL_()

{

layout_fix Tp1 = TRAN_(PMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tp2 = TRAN_(PMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tp3 = TRAN_(PMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tp4 = TRAN_(PMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tp5 = TRAN_(PMOP, 9, 6, 0, 0, 0, 0);

layout_fix Tp6 = TRAN_(PMOP, 18, 6, 70, -70, 70, -70);

layout_fix Tn1 = TRAN_(NMOP, 18, 6, 0, 0, 0, 0);

layout_fix Tn2 = TRAN_(NMOP, 9, 6, 0, 0, 0, 0);

layout_fix Tn3 = TRAN_(NMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tn4 = TRAN_(NMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tn5 = TRAN_(NMOP, 6, 6, 0, 0, 0, 0);

layout_fix Tn6 = TRAN_(NMOP, 6, 6, 0, 0, 0, 0);

layout_fix CELL; //Имя возвращаемого фрагмента

float h = 20;

FRAG(CELL) M(1000)

COM("Генерация топологии фрагмента ");

//Позиционирование транзисторов

P(Tp1, 44, -10) TV(TSP_, 44, -9, h, "TP1")

P(Tn1, 44, 0); TV(TSN_, 44, 0, h, "TN1")

P(Tp2, 60, -10) TV(TSP_, 60, -9, h, "TP2")

P(Tn2, 60, 0); TV(TSN_, 60 , 0 , h, "TN2")

PO(Tp3, 39, -39, R1) TV(TSP_, 36, -39, h, "TP3")

PO(Tn3, 39, -57, R1); TV(TSN_, 36, -57, h, "TN3")

P(Tp4, 76,-10); TV(TSN_, 76,-9, h, "TP4")

P(Tn4,76 , 0); TV(TSN_, 76 , 0, h, "TN4")

P(Tp5, 76 , -33) TV(TSP_, 76 , -33, h, "TP5")

P(Tn5, 76 , -70); TV(TSN_, 76 , -70, h, "TN5")

P(Tp6, 60, -42) TV(TSP_, 60, -42 , h, "TP6")

P(Tn6, 60,-70); TV(TSN_, 60,-70, h, "TN6")

TV(TSI_, 44, 30 , h, "X") // Bxoд X

TV(TSI_, 60, 30 , h, "Y") // Вход Y

TV(TSI_, 20 , -67 , h, "C") // Вход C

TV(TM1_, 90 ,-57, h, "S") // Bыxoд S

TV(TM1_, 90, -2, h, "P") // Bыxoд P

TV(TM1_, 80, -9 , h, "E") // E

TV(TM1_, 18,1, h, "GND") // Земля

S(NA_) // кремний (красный)

H(6)

T(36, 18) Y(0)

T(85, 3) X(89)

T(52, -4) Y(-20)

T(86, 0) Y(-10)

T(52, -54) Y(-70)

T(86, -54) Y(-70)

S(SI_) // поликремний (зелёный)

H (6)

T(44, 26) Y(-14)

T(60, 26) Y(-14)

T(60, -20) Y(-74)

T(76, 18) Y(-74)

T(29, -39) X(47)

T(44, -42) Y(-60)

T(46, -57) X(23)

T(26, -60) Y(-70)

// Позиционирование контактов

POZ(Kn) // CNA_

//_(36 , 13)

_( 68, 3)

_(86, -1)

_(36, -63)

_(52, -57)

_(68, -67)

_(86, -57)

//_(36, -49)

POZ(Kp) // CPA_

_(36 , -7)

_( 68, -7)

_( 86, -3)

_( 52, -17)

_(52, -37)

_(84, -27)

_(36, -47)

_(36, -33)

POZ(Ks) // CSI_

_(26, -67)

_(76, -17)

_(76, 15)

_(60, 23)

_(44, 23)

_(60, -47)

S(M1_) // Слой Ml_ - металл

H(6)

T(33, 15) X(79)

T(23, -67) X(29)

T(33, -67) X(89)

T(36, -64) Y(-54)

T(33, -57) X(23)

T(26, -54) Y(6)

T(29, 3) X(79)

T(79, -7) X(33)

T(36, -10) Y(-36)

T(39, -27) X(87)

T(44, 26) Y(20)

T(60, 26) Y(20)

T(86, 2) Y(-6)

T(49, -17) X(79)

T(33, -47) X(63)

T(49, -37) X(89)

T(83, -57) X(49)

T(86, -40) Y(-60)

S(PA_) // кремний (синий)

H (6)

T(85, -7) X(89)

T(52, -10) Y(-20)

T(35, -7) X(33)

T(86, -4) Y(-2)

T(84, -24) Y(-33)

H(18)

T(51, -33) X(49)

S(KN_) // карман KN_ (оранжевый)

K(91, -2) X(31) Y(-42) XY(41, -52) X(47) Y(-44)

X(71) Y(-35) X(91) Y(-2)

ENDK

ENDF

return (CELL);

} // CELL_

Соседние файлы в папке Примеры