Рачунарски ВЛСИ системи
DESCRIPTION
Рачунарски ВЛСИ системи. Наставници и сарадници. Професор: др Вељко Милутиновић Контакт: [email protected] Асистент Александар Картељ Контакт: kartelj @matf.bg.ac.rs Материјали су у великој мери преузети са ЕТФ-а, а потом прилагођени студентима МАТФ-а. Оцењивање. - PowerPoint PPT PresentationTRANSCRIPT
Рачунарски ВЛСИ системи
Наставници и сарадници
• Професор:– др Вељко Милутиновић
• Контакт: [email protected]
• Асистент– Александар Картељ
• Контакт: [email protected]
• Материјали су у великој мери преузети са ЕТФ-а, а потом прилагођени студентима МАТФ-а.
Оцењивање
• 4 домаћа задатка: 20+20+10+10 поена• Испит – 4 питања – 40 поена
Ресурси
• Пројектовање и архитектура RISC процесора за VLSI, В. Милутиновић, Наука, Београд, 1994.
• Увод у пројектовање рачунарских VLSI система, В. Милутиновић, Д. Божанић, Д. Поломчић, М. Алексић, Наука, Београд 1994.
• Issues In Microprocessor and Multimicroprocessor Systems, В. Милутиновић, 1999.
• The designer’s guide to VHDL, 3rd edition, P. Ashenden, J. Lewis, Morgan Kaufmann Publishers, 2008.
• VHDL web симулатор: http://www.edaplayground.com/
Како до финалног производа?
• Идеја?• Како описати идеју?• Како од описа добити спецификацију?• Како спецификацију имплементирати?
Савремени проблеми моделовања
• Сувише комплексан дизајн:– данашњи FPGA (програмабилно интегрисано коло) и
остали чипови имају и преко 2.000.000.000 транзистора
• Немогуће ручно дизајнирати:– по транзистору 10 секунди
=> за дизајн читавог система потребно 1268 година
Савремени дизајн
• Заснован на софистицираним алатима:– систем се описује на високом нивоу апстракције
• текстуално или графички
– алатима за синтезу се добија опис на нижем нивоу апстракције
• гејтови, транзистори
– уз помоћ алата, у зависности од технологије, систем се имплементира
– евентуално неки веома мале критични дијелови се оптимизују ручно
SOC
• Тренд у развоју: System On a Chip (SОC)– читав систем (процесор са потребним периферијама)
сместити на један чип
– компактнији систем
– једноставнији дизајн остатка система
– јефтинији систем
Домени моделовања 1/4
Домени моделовања 2/4
Домени моделовања 3/4
Домени моделовања 4/4
Начини уноса дизајна
• Текстуални– довољан обични едитор текста– флексибилан– могућност описа хардвера и на нивоу алгоритма– прегледан– погодан за документовање
• Графички– потребни посебни алати– није погодан за опис на вишем нивоу апстракције
VHDL
• VHDL = VHSIC Hardware Description Language• VHSIC = Very High Speed Integrated Circuit• Језик за опис хардвера
– иницијално креиран за документовање• Децембра 1987 стандардизован од стране IEEE
(IEEE standard 1076-1987)– унапријеђиван касније
• 1993 – VHDL-93, подржан од већине алата• 2002 – VHDL-2002• 2008 – VHDL-2008
• Независан од технологије израде – спецификација раздвојена од имплементације.
Концепти подржани у VHDL-у
• Опис интерфејса• Опис понашања• Опис структуре• Тестирање• Анализа, елаборација и симулација• Синтеза
Опис интерфејса – опис спољно видљиве структуре
REG_4
EnableClk
D 0D 1D 2D 3
D out0D out1D out2D out3
Моделовање
• Architecture body– Интерна имплементација ентитета
– За један ентитет може постојати више архитектура
– Свака архитектура моделује исти алгоритам рада ентитета
• на истом нивоу апстракције• на различитом нивоу апстракције
architecture architecture_name of REG_4 is begin
-- implementation of entity...
end architecture architecture_name ;
Пример имплементације reg4
Процес је секвенца наредби које се извршавају када се уђе у симулацију система. Након што се изврше све наредбе процеса, поново се извшава цео поново.
Чека се док не дође до промене сигнала clk
Ако је en сигнал висок
Променљиве нису исто што и сигнали
Шема претходног понашања
IF
clk = 1 &
enable =1
Ažuriraj stanje
registra
Čekaj na novu
promenu ulaznog
signala
Променљиве и сигнали
Додела вредности сигналимаје паралелна, и немамо контролунад редоследом. Овде нпр. ће bузети вредност a пре него што сесигналу a dodeli вредност.
Променљиве добијају вредност секвенцијално, тако да ће a i b добити вредност ‘11111’
Моделовање понашања
• Behavioral architecture– садржи алгоритам по којем модул ради
– садржи:• процесе, који садрже• секвенцијалне изразе, укључујући
– доделе вредности сигналу
– изразе чекања (wait statements)
Dout2Var~feeder
D
ENA
SCLR
SDATA
SLOAD
QPRE
CLR
1
D
ENA
SCLR
SDATA
SLOAD
QPRE
CLR
1
D
ENA
QPRE
CLR
D
ENA
SCLR
SDATA
SLOAD
QPRE
CLR
INCLK OUTCLK
CLKCTRL
1
Dout0Var
Dout1Var
en
d[0..3]
q[0..3]
clk
Dout2Var
clk~clkctrlDout3Var
Синтетизован модел
D QPRE
ENA
CLR
enclk
q0q1q2q3d0
d1d2
Dout[3..0]Var
d3
• Синтеза је процес у којем се од описа дигиталног кола на вишем нивоу апстракције добија опис на нижем нивоу погодном и оптимизованом за конкретну имплементацију
Моделовање структуре
• Опис модела као скупа подсистема повезаних на одговарајући начин.
• Садржи:– декларације сигнала
• портови су такође сигнали ка окружењу
– инстанце компоненти• инстанце претходно дефинисаних парова ентитета и
архитектура
– везе портова и сигнала (port maps)
Дигитална логика (DL) - материјали
• Основна логичка кола: http://www.facstaff.bucknell.edu/mastascu/elessonshtml/Logic/Logic1.html
• Флип-флоп: http://www.facstaff.bucknell.edu/mastascu/elessonshtml/Logic/Logic4.html
• Д – флип-флоп: http://hyperphysics.phyastr.gsu.edu/hbase/electronic/dflipflop.html
Youtube материјали DL+VHDL
1. http://www.youtube.com/watch?v=TyB1jFj5hQ8
2. http://www.youtube.com/watch?v=TyB1jFj5hQ8
3. http://www.youtube.com/watch?v=Kd-QyX1OPiU
4. http://www.youtube.com/watch?v=7N9mygI3A5o
5. http://www.youtube.com/watch?v=25BA8QCAHnY
6. http://www.youtube.com/watch?v=Rl1RloSLg_M
7. http://www.youtube.com/watch?v=vIG0w5LiOHw
8. http://www.youtube.com/watch?v=9yNoQrp20ME
9. http://www.youtube.com/watch?v=S6ywDlUKQvM
10.http://www.youtube.com/watch?v=pQ3MfzqGlrc
Пример моделовања структуре
Clk
D Q
DFF
Clk
D Q
DFF
Clk
D Q
DFF
Clk
D Q
DFF
D 3
D 2
D 1
D 0 D out0
D out1
D out2
D out3
ClkEnable
Пример моделовања структуре
architecture structural of REG_4 issignal gated_clk : bit;begin
G1: entity work.and2(vital) port map ( Clk, Enable, gated_clk );U1: entity work.dff(vital) port map ( D0, gated_clk, Dout0 );U2: entity work.dff(vital) port map ( D1, gated_clk, Dout1 );U3: entity work.dff(vital) port map ( D2, gated_clk, Dout2 );U4: entity work.dff(vital) port map ( D3, gated_clk, Dout3 );
end architecture structural ;
Синтетизован структурни модел
a
bo
c
do
c
do
c
do
c
do
mdff:U1
mdff:U2
mdff:U3
mdff:U4
d0
d1
d2
d3
q0
q1
q2
q3
mand2:G1
enclk
Комбинација моделовања структуре и понашања
• Архитектура може садржати и један и други модел• Пример: RTL (Register Transfer Level) модел
– ток података (datapath) приказан структурно
– контрола приказана описно
Пример комбинованог моделовања структуре и понашања
Пример комбинованог моделовања структуре и понашања
Пример комбинованог моделовања структуре и понашања
Тестирање
• Пре фабрикације, сва тестирања се обављају симулацијом
• Користи се Test bench модел:– ентитет без портова– архитектура која садржи модел који се тестира и
додатне процесе/ентитете који:• генеришу тест векторе који се доводе на улаз тестираног
кола• контролишу исправност излазних сигнала (уколико се
провера врши аутоматизовано• Провера исправности излазних сигнала може да се
ради и ручно коришћењем симулатора
Пример test bench-a
Регресивно тестирање
• Потребно је потврдити исправност каснијег дизајна на нижем нивоу– структурни модел на ниском нивоу апстракције треба да даје исте
резултате као и функционални модел на вишем нивоу апстракције
• Test bench садржи две инстанце које се тестирају– структурни и функционални модел– оба модела се паралелно симулирају са истим улазним тест
векторима– пореде се резултати на излазу
• Потребно је водити рачуна о времену– функционални модел лако може да превиди одређена кашњења
која су последица структуре модела
Пример test bench-a за регресивно тестирање
Пример test bench-a за регресивно тестирање
Од модела до симулације
• Анализа• Елаборација• Симулација
Анализа
• Провера да ли постоје синтаксне грешке• Анализа сваке јединице засебно
– пожељно да свака јединица буде у посебном фајлу
• Када се заврши са анализомјединице се смјештају у библиотеке– текућа (радна) библиотека се назива work
Елаборација
• Ажурира хијерархију дизајна– креира портове
– креира сигнале и процесе унутар тела архитектуре
– за сваку инстанцу компоненте копира декларације и тело ентитета
– понавља се рекурзивно док се не разреше сви нивои хијерархије
• Резултат елаборације је “равна (flat)” колекција сигнала и процеса
Симулација
• Извршавање елаборираног модела• Време симулације се повећава у дискретним
корацима• Догађај (event) – када сигнал промени вредност• Процеси:
– се активирају догађајима на улазним сигналима који су наведени у wait изразима
– постављају нове вредности излазним сигналима• постављају трансакције – дефинише временске тренутке
у којима ће се поставити вредност сигнала• ако се нова вредност сигнала разликује од претходне
поново имамо догађај
Иницијализације симулације
• сваком сигналу се додељује почетна вредност• време симулације се поставља на 0• сваки процес се:
– активира
– извршава док не наиђе на wait израз (или крај процеса уколико процес има листу сигнала на које је осјетљив), када се суспендује
• извршавање најчешће генерише нове трансакције сигнала за наредне временске тренутке
Симулациони циклус
• увећава се време симулације до следеће трансакције• за сваку трансакцију се у овом тренутку:
– ажурира вредност сигнала• ако је вредност сигнала промењена - догађај
• сваки процес осјетљив на неки од сигнала на којем се догодио догађај, или они код којих је време у “wait for...” изразима истекло се:– активира– извршава док не наиђе на wait израз или ако има листу
осетљивости на одређене сигнале, док не дође до краја, када се суспендује
• Симулација се завршава када нема више трансакција
Пример симулације
• ПП: Логичка кола имају кашњење од 5ns
АBC
D 0@5ns
E U@5ns
DE
D 1@10ns
E 0@10ns
D 0@15ns
E 1@15ns
D 0@20ns
E 0@20ns
D 1@25ns
E 0@25ns
E 1@30ns
0 5 10 15 20 25 30 35
Шта ако је кашњење логичких кола 0s?
Делта време
• Омогућава да се сигнали исправно израчунају пре него што се "реално" време или време симулације увећа
• Процес не види ефекте промене вредности сигнала све док се не активира следећи пут, чак и ако је то у истом симулационом тренутку =>
• Кашњење од 0 fs се назива делта кашњење• На овај начин практично добијамо две димензије
времена
Две димензије времена
Синтеза
• Преводи, најчешће RTL, модел у нет листу на нивоу логичких кола
• Узрокује ограничења у начину писања VHDL кода• Зависи од коришћеног алата
Ток процеса дизајнирања (Xilinx)
ASIC
• ASIC = Application Specific Integrated Circuit• Специјално дизајниран за конкретну апликацију.• Описан у неком HDL језику.• Верификован коришћењем симулатора.• Синтетизован коришћењем неког алата за синтезу.• Имплементиран у FPGA, Standard Cell,
Gate Array или Full Custom технологији• Повезан са окружењем преко стандардизованих
протокола и електричних интерфејса.
FPGAField Programmable Gate Arrays
Шта је конфигурабилно?
• CLB– LUT– интерно повезивање
• IOB• Везе између CLB• Наменске компоненте на чипу
– множачи– меморија– контрола такта
Пример: Cyclone II
FPGA – предности и мане
• Предности– релативно јефтини
– велики капацитет
– могућност репрограмирања чак када је производ испоручен
– кратко време развоја
• Мане– мањи капацитет и брзина у односу на интегрисана кола
– потребни софистицирани алати
FPGA – предности и мане
Карактеристика FPGA Full-Custom
Време развоја Кратко Дуго
Цена производа (у великом серијама)
Висока Ниска
Могућност измене након фабрикације
Могуће Немогуће
Перформансе Средње Веома високе
Густина паковања Средња Веома висока
Потрошња енергије Висока Ниска
Минимална величина серије
Нула Велика
Комплексност дизајна Средња Висока
Комплексност тестирања Средња Висока
Време за исправку грешке Сати Месеци
CLBConfigurable Logic Block
Могуће формирати произвољну
логичку функцију
Синхрон или асинхрон
излаз
Континуални излаз или са
сигналом дозволе
CLB - варијанте
• У зависности од конкретног чипа мења се:– број и величина лут табеле
– број и врста меморијских елемената
– интерна комбинациона логика (могућност интерног повезивања)
– додатне функционалности
LUTLook-Up Table
• 1 битна меморија• улази су везани на
адресне линије• излаз је садржај меморије
са адресе описане текућим вредностима на улазу
• фиксно кашњење
Имплементација логичких функција
• Претпоставка: n-улазни CLB• Функције се рашчлањују на n-улазне функције• Свака n-улазна функција се мапира на један CLB• Повезивањем CLB-ова се формира тражена
функција
Cyclone II LE
• Два режима рада:– нормални
– аритметички
Cyclone II LE – нормални мод
Cyclone II LE – аритметички мод
Повезивање
• 2Д матрица жица које у пресеку имају конфигурабилне везе (два слајда напред)
• Због ефикаснијег повезивања веома често постоји више типова веза:– оне које повезују суседне елементе
– оне које повезују прве несуседне елементе,
– оне које повезују сваких n-ти, где је n цeо број већи од 2.
– крајње елементе
– ...
Повезивање
Конфигурабилне везе
LAB и везеLAB - Logic Array BlockLAB - Logic Array Block
LAB контролни сигнали
IOB
• Један блок по пину• Могућност конфигурације:
– смер:• улазни• излазни• бидирекциони
– синхронизација:• директни• синхрон са сигналом такта
– низ других могућности( pull-up, pull-down отпорници...)
Пример: Cyclone II
• VHDL личи на Pascal и Adu• Jезици за опис хардвера нису програмски језици
– У FPGA не постоји микропроцесор који би извршавао VHDL код
– алати за синтезу на основу описа припремају опис на нижем нивоу
– фајл који се на крају добије, спушта се у FPGA и на тај начин се постиже конфигурација чипа
• За синтезу се користи само подскуп читавог језика
Пар напомена
Фабрикација
• Чип се прави од полупроводника– Најчешће силицијум
• Кристална решетка силицијума је слаб проводник• Додају се други елементи
– Група V (n-тип)
– Група III (p-тип)
As SiSi
Si SiSi
Si SiSi
B SiSi
Si SiSi
Si SiSi
-
+
+
-
P-N Спој
• Диода• Струја може да тече у једном смеру
p-тип n-тип
анода катода
nMOS транзистор
• metal – oxide – semiconductor (MOS)
n+
p
GateSource Drain
bulk Si
SiO2
Polysilicon
n+Body
pMOS транзистор
• metal – oxide – semiconductor (MOS)
SiO2
n
GateSource Drain
bulk Si
Polysilicon
p+ p+
Инвертор
• CMOS
n+
p substrate
p+
n well
A
YGND VDD
n+ p+
SiO2
n+ diffusion
p+ diffusion
polysilicon
metal1
nMOS transistor pMOS transistor
Инвертор
• Полупроводник са мало несилицијумових атома,у контакту са напајањем или нулом преко металаправи Шотки диоду
n+
p substrate
p+
n well
A
YGND VDD
n+p+
substrate tapwell tap
n+ p+
Маске
• Транзистори и жице се праве помоћу маски
GND VDD
Y
A
substrate tap well tapnMOS transistor pMOS transistor
Маске
• Шест маски– n-well
– Polysilicon
– n+ diffusion
– p+ diffusion
– Contact
– Metal
Metal
Polysilicon
Contact
n+ Diffusion
p+ Diffusion
n well
Кораци у фабрикацији
• Почне се са празним вафером• Инвертер се прави од дна ка врху
– Направи се p-substrate
• Први корак формирати n-well– Постави се заштита SiO2
– Уклони се део заштите тамо где ће бити n-well
– Убризгати n атоме у вафер
– Скинути заштиту
p substrate
Оксидација
• Угрејати вафер у присуству кисеоника
p substrate
SiO2
Photoresist
• Нанети photoresist– Photoresist је органски полимер осетљив на светлост
– Омекша кад се изложи на светлост
p substrate
SiO2
Photoresist
Литографија
• Изложити photoresist кроз n-well маску• Уклонити омекшали photoresist
p substrate
SiO2
Photoresist
Скидање оксида
• Неорганска киселина (HF)• Органски полимер не реагује
са неорганском киселином
p substrate
SiO2
Photoresist
Уклањање Photoresist-а
• Обавезно• Коришћењем неке органске киселине
p substrate
SiO2
n-well
• n-well се формира дифузијом или имплементацијом јона
n well
SiO2
Скидање оксида
• Уклањање оксида неорганском киселином
p substraten well
N-дифузија
• Обликовати оксид и направити n+ регионе
p substraten well
n+ Diffusion
N-дифузија
• Убацити атоме
n wellp substrate
n+n+ n+
N-дифузија
• Уклонити оксид
n wellp substrate
n+n+ n+
Контакти
• Потребно да се повежу разлити уређаји• Покрити чип са танким слојем оксида• Скинути оксид где су потребни контакти
p substrate
Thick field oxide
n well
n+n+ n+p+p+p+
Contact
Метализација
• Ставити алуминијум преко целог вафер
p substrate
Metal
Thick field oxide
n well
n+n+ n+p+p+p+
Metal