900 likes | 1.05k Views
Рачунарски ВЛСИ системи. Наставници и сарадници. Професор: др Вељко Милутиновић Контакт: vm@etf.rs Асистент Александар Картељ Контакт: kartelj @matf.bg.ac.rs Материјали су у великој мери преузети са ЕТФ-а, а потом прилагођени студентима МАТФ-а. Оцењивање.
E N D
Наставници и сарадници • Професор: • др Вељко Милутиновић • Контакт: vm@etf.rs • Асистент • Александар Картељ • Контакт: kartelj@matf.bg.ac.rs • Материјали су у великој мери преузети са ЕТФ-а, а потом прилагођени студентима МАТФ-а.
Оцењивање • 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) • читав систем (процесор са потребним периферијама) сместити на један чип • компактнији систем • једноставнији дизајн остатка система • јефтинији систем
Начини уноса дизајна • Текстуални • довољан обични едитор текста • флексибилан • могућност описа хардвера и на нивоу алгоритма • прегледан • погодан за документовање • Графички • потребни посебни алати • није погодан за опис на вишем нивоу апстракције
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-у • Опис интерфејса • Опис понашања • Опис структуре • Тестирање • Анализа, елаборација и симулација • Синтеза
Опис интерфејса – опис спољно видљиве структуре
Моделовање • Architecture body • Интерна имплементација ентитета • За један ентитет може постојати више архитектура • Свака архитектура моделује исти алгоритам рада ентитета • на истом нивоу апстракције • на различитом нивоу апстракције architecture architecture_nameof 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)
Синтеза је процес у којем се од описа дигиталног кола на вишем нивоу апстракције добија опис на нижем нивоу погодном и оптимизованом за конкретну имплементацију Синтетизован модел
Моделовање структуре • Опис модела као скупа подсистема повезаних на одговарајући начин. • Садржи: • декларације сигнала • портови су такође сигнали ка окружењу • инстанце компоненти • инстанце претходно дефинисаних парова ентитета и архитектура • везе портова и сигнала (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 • http://www.youtube.com/watch?v=TyB1jFj5hQ8 • http://www.youtube.com/watch?v=TyB1jFj5hQ8 • http://www.youtube.com/watch?v=Kd-QyX1OPiU • http://www.youtube.com/watch?v=7N9mygI3A5o • http://www.youtube.com/watch?v=25BA8QCAHnY • http://www.youtube.com/watch?v=Rl1RloSLg_M • http://www.youtube.com/watch?v=vIG0w5LiOHw • http://www.youtube.com/watch?v=9yNoQrp20ME • http://www.youtube.com/watch?v=S6ywDlUKQvM • http://www.youtube.com/watch?v=pQ3MfzqGlrc
Пример моделовања структуре architecture structural of REG_4 is signal 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 ;
Комбинација моделовања структуре и понашања • Архитектура може садржати и један и други модел • Пример: RTL (Register Transfer Level) модел • ток података (datapath) приказан структурно • контрола приказана описно
Пример комбинованог моделовања структуре и понашања
Пример комбинованог моделовања структуре и понашања
Пример комбинованог моделовања структуре и понашања
Тестирање • Пре фабрикације, сва тестирања се обављају симулацијом • Користи се Test benchмодел: • ентитет без портова • архитектура која садржи модел који се тестира и додатне процесе/ентитете који: • генеришу тест векторе који се доводе на улаз тестираног кола • контролишу исправност излазних сигнала (уколико се провера врши аутоматизовано • Провера исправности излазних сигнала може да се ради и ручно коришћењем симулатора
Регресивно тестирање • Потребно је потврдити исправност каснијег дизајна на нижем нивоу • структурни модел на ниском нивоу апстракције треба да даје исте резултате као и функционални модел на вишем нивоу апстракције • Test benchсадржи две инстанце које се тестирају • структурни и функционални модел • оба модела се паралелно симулирају са истим улазним тест векторима • пореде се резултати на излазу • Потребно је водити рачуна о времену • функционални модел лако може да превиди одређена кашњења која су последица структуре модела
Пример test bench-a за регресивно тестирање
Пример test bench-a за регресивно тестирање
Од модела до симулације • Анализа • Елаборација • Симулација
Анализа • Провера да ли постоје синтаксне грешке • Анализа сваке јединице засебно • пожељно да свака јединица буде у посебном фајлу • Када се заврши са анализомјединице се смјештају у библиотеке • текућа (радна) библиотека се назива work
Елаборација • Ажурира хијерархију дизајна • креира портове • креира сигнале и процесе унутар тела архитектуре • за сваку инстанцу компоненте копира декларације и тело ентитета • понавља се рекурзивно док се не разреше сви нивои хијерархије • Резултат елаборације је “равна (flat)” колекција сигнала и процеса
Симулација • Извршавање елаборираног модела • Време симулације се повећава у дискретним корацима • Догађај (event) – када сигнал промени вредност • Процеси: • се активирају догађајима на улазним сигналима који су наведени у waitизразима • постављају нове вредности излазним сигналима • постављају трансакције – дефинише временске тренутке у којима ће се поставити вредност сигнала • ако се нова вредност сигнала разликује од претходне поново имамо догађај
Иницијализације симулације • сваком сигналу се додељује почетна вредност • време симулације се поставља на 0 • сваки процес се: • активира • извршава док не наиђе на wait израз (или крај процеса уколико процес има листу сигнала на које је осјетљив),када се суспендује • извршавање најчешће генерише нове трансакције сигнала за наредне временске тренутке
Симулациони циклус • увећава се време симулације до следеће трансакције • за сваку трансакцију се у овом тренутку: • ажурира вредност сигнала • ако је вредност сигнала промењена - догађај • сваки процес осјетљив на неки од сигнала на којем се догодио догађај, или они код којих је време у “wait for...” изразима истекло се: • активира • извршава док не наиђе на wait израз или ако има листу осетљивости на одређене сигнале, док не дође до краја, када се суспендује • Симулација се завршава када нема више трансакција
ПП: Логичка кола имају кашњење од 5ns Пример симулације 0 5 10 15 20 25 30 35 А B C D Шта ако је кашњење логичких кола 0s? E D 0@5ns D 1@10ns D 0@15ns D 0@20ns D 1@25ns E U@5ns E 0@10ns E 1@15ns E 0@20ns E 0@25ns E 1@30ns
Делта време • Омогућава да се сигнали исправно израчунају пре него што се "реално" време или време симулације увећа • Процес не види ефекте промене вредности сигнала све док се не активира следећи пут, чак и ако је то у истом симулационом тренутку => • Кашњење од 0 fs се назива делта кашњење • На овај начин практично добијамо две димензије времена
Синтеза • Преводи, најчешће RTL, модел у нет листу на нивоу логичких кола • Узрокује ограничења у начину писања VHDL кода • Зависи од коришћеног алата
ASIC • ASIC = Application Specific Integrated Circuit • Специјално дизајниран за конкретну апликацију. • Описан у неком HDL језику. • Верификован коришћењем симулатора. • Синтетизован коришћењем неког алата за синтезу. • Имплементиран у FPGA, Standard Cell,Gate Array или Full Custom технологији • Повезан са окружењем преко стандардизованих протокола и електричних интерфејса.