Diplomski rad Projektovanje integrisanog taksimetra primenom ADK alata

Similar documents
Podešavanje za eduroam ios

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

Otpremanje video snimka na YouTube

Kontrolna logika za praćenje i prikaz rezultata teniskog meča

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

STRUČNA PRAKSA B-PRO TEMA 13

SAS On Demand. Video: Upute za registraciju:

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

1. Instalacija programske podrške

1. MODEL (Ulaz / Zadržavanje / Stanje)

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

PROJEKTNI PRORAČUN 1

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Port Community System

Tutorijal za Štefice za upload slika na forum.

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

3D GRAFIKA I ANIMACIJA

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Uvod u relacione baze podataka

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

Klasterizacija. NIKOLA MILIKIĆ URL:

POKAZNA VEŽBA 1 Osnovi projektovanja digitalnih sistema na nivou logičkih kola

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Alati za projektovanje

Pravljenje Screenshota. 1. Korak

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

mdita Editor - Korisničko uputstvo -

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0)

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Bušilice nove generacije. ImpactDrill

Babylon - instalacija,aktivacija i rad sa njim

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Sl.1.Razvojna ploča-interfejs

za STB GO4TV in alliance with GSS media

Simulacija rada PIC mikrokontrolera

FAKULTET TEHNIČKIH NAUKA

IZRADA TEHNIČKE DOKUMENTACIJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Uputstva za upotrebu štampača CITIZEN S310II

BENCHMARKING HOSTELA

Nejednakosti s faktorijelima

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

Priprema podataka. NIKOLA MILIKIĆ URL:

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

A R H I T E K T U R A M I K R O S I S T E M A. - Materijal za pripremu ispita - SMER: Elektoronska kola i sistemi, IV semestar Godina: 2006

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

Uvod u Microsoft Project (2)

Upotreba selektora. June 04

Interaktivni Generator Vizuelnih Simulatora Digitalnih Sistema (IGoVSoDS)

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Struktura i organizacija baza podataka

Projekat iz predmeta Računarska elektronika

Uputstvo za konfigurisanje uređaja Roadstar

- Vežba 2 - OPTIMIZACIJA GRAFIKE ZA WEB UPOTREBA ALATKE SLICE TOOL IZRADA WEB GALERIJE

Windows Easy Transfer

KABUPLAST, AGROPLAST, AGROSIL 2500

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA

Mindomo online aplikacija za izradu umnih mapa

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

Sybase PowerDesigner 12

TEHNIKA I INFORMATIKA U OBRAZOVANJU

''Serbia'' Serbia MATURSKI RAD. Učenik: Serbia Predmet: Informatika i Računarstvo Profesor: Serbia

Aplikacija za podršku transferu tehnologija

Advertising on the Web

Office 365, upute za korištenje elektroničke pošte

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Rešavanje problema pomoću računara

Mogudnosti za prilagođavanje

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Direktan link ka kursu:

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU

Uputstvo za korišćenje Asseco WEB 3.0 aplikacije za Fizička lica

IMPLEMENTACIJA SERIJSKOG INTERFEJSA ZA KOMUNIKACIJU RAZVOJNE PLOČE I RAČUNARA

P R O J E K T N I R A D

ЗАВРШНИ (BACHELOR) РАД

DEFINISANJE TURISTIČKE TRAŽNJE

PROJEKTOVANJE ZA TESTABILNOST U DSP KOLU SPECIFIČNE NAMENE

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

RANI BOOKING TURSKA LJETO 2017

SKRIPTA ZA VEŽBE IZ PREDMETA ELEKTRONSKO POSLOVANJE

UPUTSTVO ZA INSTALACIJU I PODESAVANJE PROGRAMA ZA MONITORING RADA SOLARNE ELEKTRANE KOSTAL PIKO MASTER CONTROL (PMC) v.2

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

KORISNIČKO UPUTSTVO ZA SVR MANAGER SAMSUNG

Pokretanje (startovanje) programa Microsoft Word

Transcription:

Elektronski Fakultet u Nišu Katedra za Elektroniku Diplomski rad Projektovanje integrisanog taksimetra primenom ADK alata Zadatak: Projektovati integrisano kolo specifične namene pogodno za tarifiranje usluga u taksi vozilu - taksimetar. Projektovanje zasnovati na primeni standardnih ćelija u CMOS 0. 5 μm tehnologiji korišćenjem ADK alata iz paketa Mentor Graphics. Komisija: Kandidat: 1. Prof. Dr. Predrag Petković Sanja Đorđević datum prijave rada 2.Prof. Dr. Milunka Damnjanović datum predaje rada 2.Prof. Dr. Dragan Pantić datum odbrane rada

Sadržaj 1 Uvod... 2 2 Tok projektovanja ASIC kola zasnovanog na primeni standardnih ćelija... 4 3 ADK alat za projektovanje integrisanih kola... 6 4 Projektovanje integrisanog taksimetra... 8 4.1 Opis projektnog zadatka... 8 4.2 Logičko projektovanje... 8 4.2.1 Opis na sistemskom nivou... 8 4.2.2 Projektovanje pojedinih blokova... 11 4.3 Verifikacija... 14 4.4 Logička sinteza... 21 4.4.1 Leonardo Spectrum... 21 4.5 Fizičko projektovanje... 29 4.5.1 IC Station... 29 5 Zaključak... 48 6 Literatura... 49 Prilog A. Tabela neophodna za čitanje displeja... 50 Prilog B. VHDL kôd taksimetra... 50 1

1 Uvod Elektronska kola mogu se realizovati na bazi 1. Standardnih integrisanih kola (Standard Integrated Circuits, SIC) 2. Integrisanih kola specifične namene (Application Specific Integrated Circuits, ASIC) 3. Standardnih integrisanih kola specifične namene (Standard Application Specific Integrated Circuits, SASIC) Svaka od pomenutih realizacija zahteva drugačiji pristup projektovanju, odnosno drugačiji stil projektovanja. Izbor načina realizacije uslovljava i izbor stila projektovanja. Od projektanta se očekuje da ume da proceni optimalni stil koji će dati najbolji rezultat u konkretnom slučaju. Konkretan zadatak ovog diplomsklog rada odnosi se na projektovanje integrisanog kola specifične namene - taksimetar. Kolo treba da omogući tarifiranje vožnje u tri tarifne zone: dnevna, noćna i vikend tarifa. Osnovu za naplatu predstavlja vreme provedeno u vozilu koje počinje da se meri kada vozač pritisne taster za START a završava se ponovnim pritiskom na isti taster, po završetku vožnje. Obezbediti mogućnost da se vožnja koja traje duže od 60 minuta tarifira po povlašćenoj ceni u sve tri tarife. Podaci o ceni ispisuju se na displeju koji sadrži do 5 karaktera prikazanih pomoću 14 segmenata. Detaljinja definicija i razrada projektnog zadatka dati su na početku centralnog dela ovog rada (četvrta glava). Integrisana kola specifične namene (ASIC), proizvode se isključivo za određenog korisnika. ASIC kola fleksibilna su sa stanovišta očekivane veličine serije u kojoj će se kola proizvoditi. Naime, ASIC kola se mogu projektovati kao potpuno projektovana po narudžbini (Full Custom, FC) ili primenom predprojektovanih struktura ( Semi Custom Design) [Lit00, Pet05]. Potpuno projektovanje po narudžbini podrazumeva projektovanje do tranzistorskog nivoa, tako da je vreme projektovanja, a time i cena projektovanja velika, ali rezultiraju malom površinom čipa. Zato će fiksni troškovi koji određuju njihovu cenu biti veliki dok će proporcionalni troškovi biti relativno mali, tako da su isplativa za velike serije. Ukoliko se koriste predprojektovane strukture poznate kao standardne ćelije (Standard Cell, SC) projektovanje traje kraće, cena projektovanja je manja, ali površina čipa nije minimalna za određenu funkciju. Ovo implicira da će cena proizvodnje po čipu biti veća nego kod kola potpuno projektovanih po narudžbini. Zato se kola projektovana na bazi SC isplate za srednje veličine serija. Ukoliko se integrisana kola zasnivaju na primeni predproizvedenih struktura kao što su gejtovske matrice (Gate Array) ili more gejtova (Sea of Gates), cena fiksnih troškova biće manja nego kod primene standardnih ćelija ali će površina čipa biti veća. Na taj način kola zasnovana na predproizvedenim strukturama kvalifikuju se za manje serije proizvodnje. 2

Imajući u vidu da je potencijalno tržište integrisanog taksimetra relativno veliko čak i za malu zemlju kao što je Srbija, procenjujemo da je sasvim isplativo da se koristi metod projektovanja zasnovan na primeni standardnih ćelija. U tom cilju, koristiće se biblioteka ćelija u standarnoj CMOS tehnologiji sa tri metala AMS 0.5 μm. Tokom projektovanja koristiće se alati koje nudi Mentor Graphics u okviru The Higher Education Preograme u paketima IC Nanometer Design i Design, Verification & Test. Pojedine komponente iz ovih paketa objedinjuje alat ADK (ASIC Design Kit). Nezavisno od metoda projektovanja ASIC kola, kada se završi projektovanje lejauta, proizvođaču se šalju podaci neophodni za izradu maski i nakon proizvodnje integrisanog kola, ono se isporučuje korisniku. Ovaj rad zamišljen je u formi dnevnika aktivnosti projektanta na osnovu koga se može steći detaljan uvid u način primene Mentor Graphics alata. U tom kontekstu ovaj rad predstavlja i kratko uputstvo za korišćenje ADK alata koji obuhvata komponente za funkcionalnu verifikaciju, logičku sintezu, i fizičko projektovanje: planiranje površine, razmeštanje ćelija, povezivanje i provera pravila projektovanja. Pre početka opisa projektovanja konretnog ASIC kola, u narednoj glavi biće dat kratak opšti prikaz postupka projektovanja (design flow) digitalnog kola zasnovanog na primeni standardnih ćelija. Treća glava posvećena je opisu pojedinih komponenata ADK alata za projektovanje i njihovoj ulozi u procesu projektovanja. Kao što je rečeno, centralni deo rada posvećen je opisu projekovanja integrisanog taksimetra. Detaljno su opisani svi koraci projektovanja i postupak primene pojedinih alata. Rezultat svih aktivnosti ilustrovan je dobijenim odzivima posle verifikacije, odnosno slikama lejauta u odgovarajućoj fazi projektovanja. 3

2 Tok projektovanja ASIC kola zasnovanog na primeni standardnih ćelija Aktivnosti vezane za projektovanje digitalnog kola mogu da se ilustruju dijagramom sa Slike 1. [Pet05, Smi97]. Specifikacija projekta početak Projektovanje arhitekture Funkcionalno projektovanje pre-lejaut simulacija 4 opis projekta 1 logička sinteza 2 l ogi čko projekt ovanje Logičko projektovanje razlaganje 3 Projektovanje elektronike post-lejaut simulacija 9 plan površine 5 čip Fizičko projektovanje Fabrikacija ekstarkcija kola 8 razmeštaj 6 povezivanje 7 blok logičke ćelije fiz i čko projekt ovanje Pakovanje i testiranje kraj a) Opšti dijagram toka projektovanja b) Projektovanje na RTL nivou do automatske sinteze lejauta Slika. 1.Blok dijagram projektovanja složenog digitalnog sistema Razmotrimo aktivnosti koje su vezane za projektovanje na RTL nivou, uz pretpostavku da raspolažemo bibliotekom standardnih ćelija. Pojedine aktivnosti opisaćemo prema redosledu naznačenom na blokovima sa slike 1b. Opis projekta digitalnih kola relativno je jednostavan uz primenu jezika za opis hardvera (HDL - Hardware Description Language) i to kako u domenu ponašanja tako i u strukturnom domenu. U tu svrhu danas su naročito popularni jezici VHDL i Verilog, odnosno njihova proširenja za opis analognih i kola sa mešovitim signalima VHDL-AMS i Verilog-AMS. Logička sinteza predstavlja aktivnost tokom koje alat za sintezu tumači HDL kôd i prevodi ga u prepoznatljive logičke module. Moduli mogu biti definisani na različitim hijerarhijskim nivoima. Na RTL nivou to može biti sabirač, multiplekser i sl. Razlaganje (partitioning) podrazumeva prevođenje logičkih modula sa višeg nivoa u osnovne logičke ćelije koje se nalaze u biblioteci ćelija. (Na primer sabirač se prevodi na nivo XOR). Zato je neophodno da se opisu projekta pridruže podaci o željenoj biblioteci ćelija. 4

Pre-lejaut simulacija ima zadatak da proveri da li su ispunjeni projektni zahtevi. Potrebno je da se simulacija obavi posle svakog od prethodnih koraka. Simulacijom na osnovu HDL kôda blagovremeno se proverava opis projekta u domenu ponašanja, pre početka sinteze. Tek ako se verifikuju projektni zahtevi, ide se na sledeći korak. Posle sinteze i razlaganja dostupne su tačnije informacije o tome koje će se logičke ćelije koristiti, a onda su, iz biblioteke, dostupne i precizne informacije o kašnjenju svake ćelije. Planiranje površine predstavlja najviši hijerarhijski nivo u fizičkom domenu opisa. Pravi se raspored većih logičkih modula. Pri tome se vodi računa o tome da se logički elementi u jednom modulu taktuju istom frekvencijom. Razmatra se međusobni uticaj pojedinih modula i donose strateške odluke o organizaciji čipa. Donešene odluke značajno mogu da utiču na veličinu najdužih veza, a time i na kritično kašnjenje u kolu. Zato efekte koji mogu da proisteknu iz ove faze treba uključiti u procenu što ranije, najbolje još pre razlaganja. Razmeštaj (placement) pojedinih logičkih ćelija obavlja se sa ciljem da se minimizira površina čipa ili da se minimizira dužina svih veza (ili najduže veze) odnosno da se ne prekorače zadati dinamički parametri (kašnjenje). Pri tome, uzimaju se u obzir samo informacije o broju međusobnih veza između ćelija, a ne i njihov stvarni položaj. Povezivanje (routing) je aktivnost tokom koje se trasiraju veze između pojedinih ćelija. Tek po okončanju ove aktivnosti poznate su tačne dužine veza. Tada se dobijaju precizne informacije o kašnjenju duž veza. Ekstrakcijom parametara kola iz lejauta dostupni su podaci o parazitnim kapacitivnostima na izlazima jer se znaju dimenzije i položaji svih delova lejauta. Kao rezultat ove aktivnosti dobija se lista opisa kola na tranzistorskom nivou (net lista). Net lista sadrži sve parametre neophodne za detaljnu simulaciju ponašanja kola. Post lejaut simulacija treba da verifikuje ispravnost celog projekta. Ako rezultati ove simulacije potvrđuju specifikacije projekta, projektovanje u užem smislu je završeno. Tada mogu da se ekstrahuju podaci za izradu maski, čime je projekat spreman za izradu prototipa, odnosno programiranje, ako se radi o FPGA. Ukoliko se ne dobiju željeni rezultati treba redizajnirati kolo. U najgorem slučaju treba početi od faze razlaganja i planiranja površine sa drugačije grupisanim modulima. Uz sve navedene aktivnosti, ne treba izgubiti iz vida i proveru pravila projektovanja (provera dimenzija i međusobnih rastojanja između maski za fabrikaciju pojedinih tehnoloških slojeva). 5

3 ADK alat za projektovanje integrisanih kola ASIC Design Kit ADK, sadrži alate iz dva osnovna paketa za projektovanje ASIC kola, koje nudi firma Mentor Graphics u okviru programa namenjenog za obuku studenata. Radi se o paketima IC Nanometer Design i Design, Verification & Test. Paket IC Nanometer Design sadrži komponente namenjene za: - opis projekta u obliku logičke šeme (Design Architect -IC), - logičku verifikaciju (ADiT, Eldo, ADVance MS ) - fizičko projektovanje (IC Station ) - proveru pravila projektovanja (Calibre ) upakovane na platformi ICstudio kao što pokazuje Slika 2. Slika 2. Blokovski prikaz komponenata u okviru paketa IC Nanometer Design Da bi se automatizovao tok projektovanja prikazan u prethodnom poglavlju, neophodno je da se ovim komponentama priključi alat za automatsku logičku sintezu. U ovu svrhu Mentor Graphics nudi alat Leonardo Spectrum koji je sastavni deo paketa Design, Verification & Test. Pored toga, ovaj paket sadrži i ModelSim logički simulator. ADK objedinjuje sve navedene komponente kako bi omogućio pristup podacima, bibliotekama i dokumentaciji neophodnoj za kreiranje ASIC kola uz primenu MOSIS pravila projektovanja [http://www.mosis.org.]. Podržava pet osnovnih CMOS tehnologija od dva proizvođača i to Alcatel Microelectronics -AMI 0.5μm, AMI 1.2 μm kao i TSMC 0.35 μm, 0.25 μm i 0.18 μm (TSMC Taiwan Semiconductor Manufacturing Company). Kod projektovanja integrisanog kola namenjenog za primenu u taxi-vozilu koristiće se, kao što je već u uvodu rečeno, metod projektovanja zasnovan na primeni standardnih ćelija. Dakle, prilikom projektovanja integrisanog kola, najpre je potrebno adekvatno opisati module na nekom od jezika za opis hardvera (HDL) [Dam99]. U ovom radu korišćeni su VHDL opisi koji su prikazani u dodatku, a opis celog kola (taksimetar) dat je u prilogu B. 6

U cilju kompajliranja i simuliranja opisanih modula kao i kompletnog kola, korišćen je Model Sim SE alat. Model Sim predstavlja program pomoću koga je moguće unositi, kompajlirati i simulirati opise logičkih funkcija digitalnih kola. Sastavni je deo paketa za projektovanje integrisanih kola firme Mentor Graphics. Ovaj softverski alat, pomaže projektantu da u samom početku projektovanja uoči eventulane delove kôda koje nije moguće sintetizovati, što znatno utiče na uštedu vremena. Kompajliranje, korak koji dolazi pre simuliranja, predstavlja proveru kôda sa stanovišta grešaka. Greške koje se javljaju u opisu mogu biti sintaksne, greške vezane za pozivanje željenih biblioteka, kao i sve ostale greške koje se mogu javiti prilkom odstupanja od pravila koja su definisana jezikom za opis hardvera. Simulacija služi za proveru ispravnosti funkcionisanja prethodno kompajliranog opisa. Nakon uspešnog kompajliranja i simulacije VHDL kôdova, potrebno je izvršiti sintezu. Alat koji se koristi u te svrhe jeste Leonardo Spectrum. Rezultat sinteze dobija se u obliku dva fajla. Jedan omogućava verifikaciju rada sinetizovanog kola i drugi koji će se, kasnije, koristiti u alatima za razmeštanje i povezivanje ćelija. Pošto postoje veoma bitne stavke vezane za korisćenje ovog alata, njegov način korišćenja dat je poglavlju 4.4.1. Priprema za generisanje lejauta sprovodi se kroz dva softverska alata. Nakon sinteze modula, kako je prethodno navedeno, dobijamo dva fajla od kojih nam je jedan potreban za izradu lejauta, a to je netlista u Verilog formatu. Alat Design Architect importuje Verilog netlistu i priprema je za dalju obradu. Nakon izvršenih potrebnih akcija prelazi se u IC Station, pomoću koga se generiše lejaut čipa. S obzirom da je i ovaj alat malo komplikovaniji za korišćenje, opis načina korišćenja dat je u poglavlju 4.5.1. NAPOMENA: U radu nisu data detaljna objašnjenja o svakom alatu jer se ona mogu naći u odgovarajućim priručnicima [Adk1, Adk2, Adk3 i Adk4]. Posebno napominjem da je ADK instaliran pod UNIX operativnim sistemom. Ovo implicira da su za praćenje opisa rada alata neophodna osnovna znanja iz te oblasti. Poželjno je da korisnik alata ima određenog iskustva sa HDL dizajnom. 7

4 Projektovanje integrisanog taksimetra 4.1 Opis projektnog zadatka Kolo treba da omogući sledeće funkcije: upis vrednosti niže tarife upis vrednosti više tarife upis vrednosti vikend tarife upis vrednosti početne tarife (start) vremena promene tarife mogućnost definisanja uslova za povlašćenu vožnju upis tačnog vremena prikaz trenutne cene na 5-cifrenom displeju Prilikom početka vožnje displej treba postaviti na vrednost start tarife. Po završetku vožnje konačna cena ostaje na displeju dok se ručno ne poništi, a tada se na displeju ispisuje tekst _FREE (prva cifra sa leve strane je ugašena). Inkrementiranje cene vožnje obavlja se posle svakog minuta. Pretpostaviti da se opcije mogu proširiti time što će se svi parametri vožnje upisivati iz dispečerskog centra. 4.2 Logičko projektovanje Za veliki broj projektanata najefikasniji način projektovanja predstavlja razbijanje celokupne logike na delove koji se mogu implementirati u vidu konačnih automata. Ovom metodom direktno se utiče na smanjenje složenosti i potrošnje, ali ovakav način projektovanja podložan je greškama. [Pet05] Drugi pristup projektovanju digitalnih sistema jeste funkcionalna dekompozicija koja omogućuje modularnost digitalnog sistema, što ga čini lakše razumljivim. Međutim, ovaj pristup projektovanju ne daje optimalnu površinu i kod komplikovanijih sistema moguće su greške usled previda u njihovom međusobnom povezivanju. [Pet05] 4.2.1 Opis na sistemskom nivou ASIC kolo obrađeno u ovom radu treba da ima mogućnost, kao što je već rečeno, upisa vrednosti niže tarife, više tarife, vikend tarife i početne tarife (start). Upisivanje se vrši spolja tako da se vrednosti smeštaju u registre. Ove vrednosti su konstantne i dostupne u bilo kom vremenskom trenutku. Na isti način omogućen je upis tačnog vremena. Vremena promena tarifa definisana su u konačnom automatu (FSM) tako da je: početak niže (dnevne) tarife u 7 časova, početak više (noćne) tarife u 24 časa i početak vikend tarife u petak u 24 časa. Vikend traje do ponedeljka u 7 časova kad počinje, kao što je već napomenuto, niža (dnevna) tarifa. Takođe, kolo ima mogućnost definisanja uslova za povlašćenu vožnju. Vreme trajanja vožnje počinje da se meri od trenutka kada vozač pritisne taster za START i vožnja traje dok se vozilo ne zaustavi ponovnim pritiskom na isti taster. Prilikom početka vožnje na 5-cifrenom displeju ispisuje se 8

vrednost za start tarifu. Inkrementiranje cene vožnje obavlja se posle svakog minuta tako da je omogućen prikaz trenutne cene vožnje. U trenutku kada vreme trajanja vožnje pređe 60 minuta generiše se signal koji tekuću tarifu prevodi u povlašćenu. Do kraja vožnje zadržava se povlašćena tarifa. Nakon završetka vožnje, vozač sam određuje kada će taximetar vratiti u početno stanje, odnosno kada će omogućiti narednu vožnju. U radu je prikazan primer da se taximetar vraća u početno stanje nakon 1 minuta od završetka vožnje, što je sasvim dovoljno vremena da taksista naplati svoje usluge i da mušterija napusti vozilo. Taksista nema ograničeno vreme za ovu aktivnost ali je poželjno da je obavi što pre. Razlozi za ovu konstataciju biće dati u zaključku. U trenutku vraćanja taksimetra u početno stanje na 5-cifrenom displeju ispisuje se tekst FREE tako da je prva cifra sa leve strane ugašena. Ovaj tekst se zadržava na displeju sve dok taksista ponovo ne aktivira taster za start. O komunikaciji vozila sa dispečerskim centrom biće reči u zaključku. Blok šema projektovanog taksimetra u obliku jedinstvenog entiteta prikazana je na slici 3. Clock Reset Preset StartStop Enable(3:0) Data(7:0) Clk Res Preset StartStop Enable(3:0) Data(7:0) VrednostJ(13:0) VrednostD(13:0) VrednostS(13:0) VrednostH(13:0) VrednostDH(13:0) VrednostJ(13:0) VrednostD(13:0) VrednostS(13:0) VrednostH(13:0) VrednostDH(13:0) Slika 3. Portovi projektovanog taksimetra Kao što se može videti sa šeme, StartStop je ulazni port koji omogućava aktiviranje taksimetra i isto tako zaustavljanje taksimetra. Port Data(7:0) omogućava upisivanje potrebnih vrednosti koje su u konkretnom slučaju 50 za start tarifu, 15 za dnevnu, 20 za noćnu, 25 za vikend, za povlašćenu dnevnu 12, za povlašćenu noćnu 15, za povlašćeni vikend 20. Cene su date u dinarima. Port Enable(3:0) dozvoljava upis ovih vrednosti. Port Preset omogućava upis tačnog vremena. Izlazni portovi: VrednostJ, VrednostD, VrednostS, VrednostH, VrednostDH omogućavaju praćenje stanja taksimetra. Na slici 4. je prikazana šema kompletnog taksimetra gde se mogu videti svi blokovi a kako su projektovani pojedini blokovi biće prikazo u daljem izlaganju. 9

10 D(7:0) Q(7:0) clk en U1 registar D(7:0) Q(7:0) clk en U2 registar D(7:0) Q(7:0) clk en U3 registar D(7:0) Q(7:0) clk en U4 registar D(7:0) Q(7:0) clk en U5 registar Niza_tar(7:0) Visa_tar(7:0) Vik_tar(7:0) Pov_niza(7:0) Clk Clk Clk Clk Niza_tar(7:0) Visa_tar(7:0) Pov_niza(7:0) Pov_visa(7:0) Vred_tar(7:0) Clk Start(7:0) Start(7:0) Vred_tar(7:0) Vrednost(7:0) Data(7:0) sel(2:0) sel_2 D(7:0) Q(7:0) clk en U16 registar D(7:0) Q(7:0) clk en U17 registar Clk Clk Pov_visa(7:0) Pov_vik(7:0) A(7:0) Q(7:0) B(7:0) C(7:0) D(7:0) E(7:0) F(7:0) sel(2:0) U9 mux Vik_tar(7:0) Pov_vik(7:0) Data(7:0) Enable(3:0) A(7:0) B(7:0) sel D(7:0) U8 mux_2 Clk En C(19:0) A(3:0) B(3:0) Res U6 akumulatorski_sab Res Vrednost(7:4) Vrednost(3:0) BCD(3:0) SEGMENT_14(13:0) disable res U7 displej Konac_vred(19:16) BCD(3:0) SEGMENT_14(13:0) disable res U10 displej Konac_vred(15:12) BCD(3:0) SEGMENT_14(13:0) disable res U12 displej Konac_vred(11:8) BCD(3:0) SEGMENT_14(13:0) disable res U13 displej Konac_vred(7:4) BCD(3:0) SEGMENT_14(13:0) disable res U14 displej Konac_vred(3:0) Clk_aku Clk Int_min clk en h(3:0) g(3:0) res U24 registar_2 VCC VCC GND GND H(15:12) H(13) H(15) clk en h(3:0) g(3:0) res U25 registar_2 VCC VCC GND H(11:8) H(10) H(9) H(11) clk en h(3:0) g(3:0) res U26 registar_2 VCC VCC GND GND H(7:4) H(4) H(5) H(7) H(6) clk en h(3:0) g(3:0) res U27 registar_2 VCC VCC GND GND H(3:0) H(0) H(1) H(2) H(3) VCC H(8) Res Res Res Res Res Slob_taxi(15:12) Slob_taxi(11:8) Slob_taxi(7:4) Slob_taxi(3:0) StartStop Clk Clk Clk Clk sel x(19:0) y(19:0) z(19:0) U34 mux_a Slob_taxi(19:0) Aktiv_vred(19:0) Konac_vred(19:0) Sel_3 Sel_3 Sel_3 Sel_3 Sel_3 H(12) H(14) StartStop StartStop StartStop StartStop Res Res Res Res Sel_1 clk en h(3:0) g(3:0) res U15 registar_2 Slob_taxi(19:16) Clk Res VCC StartStop H(19:16) VCC VCC VCC H(19) H(18) H(17) En(9:0) En(0) En(1) En(2) En(3) En(4) En(5) En(6) VrednostDH(13:0) VrednostH(13:0) VrednostS(13:0) VrednostD(13:0) VrednostJ(13:0) H(16) StartStop sel1 int_min sel2 noc_voznja sel3 poc_dnevne sel(2:0) poc_nocne poc_vikend reset traj_voznje vikend U11 FSM Int_min Sel(2:0) Sel_1 Sel_2 Sel_3 Clk Res StartStop Int_min Traj_voznje Noc_voznja Poc_dnevne Poc_nocne Poc_vikend Vikend StartStop Noc_voznja Poc_dnevne Poc_nocne Poc_vikend Res Traj_voznje Vikend D(7:0) Q(7:0) clk en U20 registar D(7:0) Q(7:0) clk en U21 registar Pres_vreme(7:0) Pres_vreme(15:8) Clk Clk Clk En(7) En(8) En(9) a(3:0) en(9:0) U19 decoder_1 Clk Int_min Pres_vreme(18:0) Traj_voznje Preset noc_voznja Res poc_dnevne StartStop poc_nocne poc_vikend vikend U18 RTC_1 Preset Pres_vreme(18:16) clk g(2:0) en h(7:0) U22 registar_1 Pres_vreme(18:0) Aktiv_vred(19:0) Slika 4. Blok šema kompletnog taksimetra

4.2.2 Projektovanje pojedinih blokova Razmatranjem zadatih zahteva koje treba da ispuni integrisano kolo taksimetra, može se doći do zaključka da je jednostavnije taksimetar razdvojiti na funkcionalne blokove, odnosno uraditi funkcionalnu dekompoziciju [Pet05]. Nakon funkcionalne dekompozicije potrebno je u VHDL-u opisati sledeće blokove: Sat realnog vremena (RTC) Brojač_60 Brojač_60a Brojač_24 Brojač_7 Kontrolna_logika Blok_vikend Akumulatorski sabirač Sabirač Brojač_9 Konačni automat (FSM) Sat realnog vremena (RTC) Sat realnog vremena omogućava definisanje realnog vremena i kao što se može videti na slici 5. sastoji se iz bojača sekundi, brojača minuta, brojača sati, brojača dana, bloka vikend i kontrolne logike. Brojači obavljaju određene funkcije kao što im i samo ime kaže. Prvi brojač_60 broji sekunde i nakon svake 59-e sekunde generiše signal Int_min koji utiče na rad akumulatorskog sabirača. Funkcija akumulatorskog sabirača biće opisana u daljem izlaganju. Drugi brojač_60 broji minute i omogućava rad brojača_24 koji broji sate. Nakon brojača_24 nalazi se brojač_7 sa funkcijom određivanja dana u sedmici. Komponenta po imenu blok_vikend u kombinaciji sa brojač_24 i brojač_7 određuje trajanje vikenda. Takođe, komponenta kontrolna_logika u kombinaciji sa prethodna dva brojača određuje početak dnevne tarife, početak noćne tarife, početak vikend tarife i trajanje noćne, odnosno dnevne tarife. Drugi deo šeme predstavlja logiku za merenje dužine vožnje. Signal StartStop definiše početak vožnje a brojač_60 meri vreme tako da se nakon 60-tog minuta vožnje generiše signal Traj_vožnje što znači da vozilo prelazi u povlašćenu vožnju. 11

StartStop Int_min Clk Res U26 U1 U2 clk Cout clk Cout clk cout q1(3:0) Res M1(3:0) Res S(3:0) res q1(3:0) res Q1(3:0) res Q1(3:0) q2(7:4) M2(7:4) S(7:4) q2(3:0) preset Q2(3:0) Preset Q2(3:0) brojac_60a min(7:0) sat(7:0) brojac_60_1 brojac_24_1 Preset Preset Preset Pres_vreme(7:0) Pres_vreme(15:8) Pres_vreme(18:16) U3 clk Q(2:0) Res res preset dan(2:0) Dan(2:0) U18 brojac_7_1 dan(2:0) vikend S(7:0) sat(7:0) blok_vikend vikend StartStop U28 clk dout reset tff Res U29 clk Cout res q1(3:0) q2(3:0) X1(3:0) X2(7:4) brojac_60a Dan(2:0) S(7:0) S R U25 RS U24 dan(2:0) noc_voznja sat(7:0) poc_dnevne poc_nocne poc_vikenda Q Traj_voznje noc_voznja poc_dnevne poc_nocne poc_vikend kontrolna_logika Slika 5. Blok šema sata realnog vremena Akumulatorski sabirač Akumulatoski sabirač, kao što mu i samo ime kaže obavlja akumulatorsko sabiranje. Na slisi 6. može se videti da se sastoji iz dva sabirača koji sabiraju BCD cifre i tri brojača_9 koji omogućavaju da konačan zbir bude čak 99 999. Sabiranje počinje kada vozač pritisne taster za start a na to ukazuje signal StartStop. Vrednost kojom se akumulatorski sabirač inkrementira, određuje konačni automat. Sabiranje se vrši svakog minuta što, takođe, omogućava konačni automat čija će detaljna funkcija biti objašnjena u daljem izlaganju. Dakle, zadatak akumulatorskog sabirača je sabiranje vrednosti koje dobija. Tokom vožnje vrednosti koje akumulatorski sabirač dobija mogu da se menjaju u zavisnosti od tekuće tarife. 12

C(3:0) C(7:4) GND A(3:0) En Clk U1 Cin(0:0) c(3:0) a(3:0) cout1 en Cout b(3:0) J(3:0) add_1 clk U5 b(3:0) a(3 :0 ) Bufer U2 Cin(0:0) c(3:0) J(3:0) D(3:0) U7 a b buff_delay B(3:0) En a(3:0) cout1 en Cout b(3:0) D(3:0) brojac_9 add_1 Res Slika 6. Akumulatorski sabirač clk U6 b(3:0) a(3 :0 ) Bufer U11 U12 clk dout clk dout din din dff dff U8 U9 U10 clk cout clk cout clk cout res Q(3:0) C(11:8) res Q(3:0) C(15:12) res Q(3:0) C(19:16) brojac_9 brojac_9 Konačni automat (FSM) Konačni automat je model koji se sastoji iz konačnog broja stanja, u konkretnom slučaju 8 stanja (S0-S7). Na osnovu podataka o vremenu koje dobija iz RTC-a, u konačnom automatu definišu se pojedina stanja. Vozilo je u stanju S0 kada stoji, tj. kada je taksimetar zakočen. Stanje S1 predstavlja početak vožnje i tada se na displeju ispiše vrednost start tarife. U zavisnosti od vremena, naredno stanje može biti S2 (dnevna tarifa), S3 (noćna tarifa) ili S4 (vikend tarifa). U slučaju trajanja vožnje duže od 60 minuta prelazi se u povlašćenu vožnju koju definišu stanja S5 (povlašćena dnevna tarifa), S6 (povlašćena noćna tarifa) ili S7 (povlašćena vikend tarifa). Na osnovu stanja koje definiše konačni automat omogućen je ispravan rad akumulatorskog sabirača. Dakle, sabirač sabira vrednosti odgovarajuće tarife jer konačni automat u zavisnosti od vremena diktira tarifu. Signal Int_min omogućava da se inkrementiranje cene vrši svakog minuta, pa u skladu sa tim, i prikaz cene vožnje na displeju potpuno je sinhronizovan sa radom sabirača. Konačni automat, takođe, reguliše status vozila nakon završetka vožnje na taj način što omogućava ispisivanje teksta FREE na displeju. Može se slobodno reći da konačni automat predstavlja mozak ovog kola jer dozvoljava potrebne akcije u odgovarajićem trenutku i sa druge strane, ne dozvoljava neispravan rad čitavog kola. Na slici 7. prikazan je dijagram stanja ovog automata gde se tačno može videti koje mogućnosti automat ima. Opisan je na nivou ponašanja primenom VHDL-a i na slici 8. prikazana je njegova blok šema. 13

StartStop Int_min Noc_voznja Poc_dnevne Poc_nocne Poc_vikend Traj_voznje Vikend Res StartStop int_min noc_voznja poc_dnevne poc_nocne poc_vikend traj_voznje vikend reset sel(2:0) sel1 sel2 sel3 Sel(2:0) Sel_1 Sel_2 Sel_3 FSM Slika 7. Dijagram stanja konačnog automata Slika 8. Blok šema konačnog automata 4.3 Verifikacija Da bi se proverila funkcionalna korektnost opisa svakog bloka, potrebna je verifikacija simulacijom. U tu svrhu koristi se simulator digitalnih kola koji prihvata proveren i sintaksno ispravan VHDL opis. Veoma je važno da se VHDL opisi svih sastavnih delova integrisanog kola provere simulacijom za sve moguće kombinacije pobudnih signala. Na ovaj način potencijalne greške se blagovremeno otklanjaju. Kada se simulira celokupan opis složenog integrisanog digitalnog kola, mnogo je teže u takvoj šumi signala otkriti onaj koji je pogrešan. Zbog toga se svaka izmena u opisu funkcije bloka obavezno verifikuje simulacijom [Pet05]. Verifikacija RTC-a Na slici 9. prikazan je rezultat simulacije RTC-a za trenutak kada počinje dnevna tarifa. Dakle, u sedam sati ujutru počinje dnevna tarifa što znači da noćna vožnja više nije aktivna, signal noć_vožnja pada na nulu, a aktivira se signal poč_dnevne. Slika 9. Simulacija rada RTC-a (početak dnevne tarife) 14

Na slici 10. prikazan je rezultat simulacije RTC-a za slučaj kada počinje noćna tarifa. Kao što se može videti sa slike, u 00 sati signal poč_noćne se aktivira što znači da se prelazi na noćnu vožnju i signal noć_vožnja je od tog trenutka na jedinici. Slika 10. Simulacija rada RTC-a (početak noćne tarife) Na slici 11. prikazan je rezultat simulacije RTC-a za slučaj kada počinje vikend. Kao što se može videti sa slike, u petak u 00 sati signal poč_vikend se aktivira i od tog trenutka signal vikend je na jedinici. Slika 11. Simulacija rada RTC-a (početak vikend tarife) Na slici 12. prikazan je rezultat simulacije RTC-a za slučaj kada počinje dnevna tarifa nakon vikenda. Kao što se može videti sa slike, u ponedeljak u 07 sati ujutru signal poč_dnevne se aktivira i tog trenutka signal vikend pada na nulu. Slika 12. Simulacija rada RTC-a (početak dnevne tarife nakon vikend tarife) Na slici 13. prikazan je rezultat simulacije RTC-a za slučaj merenja trajanja vožnje i može se videti da se nakon sat vremena vožnje aktivira signal Traj_vožnje koji govori da se prelazi u povlašćenu tarifu. Slika 13. Simulacija rada RTC-a (merenje trajanja vožnje) 15

Verifikacija FSM-a Na slici 14. prikazan je rezultat simulacije FSM-a za slučaj prelaska sa dnevne na noćnu tarifu (iz stanja S2 u stanje S3) i prelaz u povlašćenu noćnu tarifu (stanje S6). Sa slike se može videti da se nakon aktiviranja signala StartStop, koji označava početak vožnje odlazi u stanje S1. U ovom stanju se uzima vrednost start tarife. Dok se nije aktivirao signal poč_noćne, tekuća tarifa bila je dnevna (stanje S2), a nakon aktiviranja ovog signala prelazi se u stanje S3 (noćna tarifa). Takođe, može se videti da se nakon aktiviranja signala traj_vožnje prelazi u stanje S6 (povlašćena noćna vožnja). Slika 14. Simulacija rada FSM-a (prelaz iz dnevne u noćnu tarifu) Na slici 15. prikazan je rezultat simulacije FSM-a za slučaj prelaska iz noćne tarife u dnevnu (iz stanja S3 u stanje S2) i prelaz u povlašćenu dnevnu tarifu (stanje S5). Signal StartStop ima istu ulogu kao u prethodnom slučaju. Na ovoj slici može se uočiti da je tekuća tarifa noćna i da se nakon aktiviranja signala poč_dnevne prelazi u dnevnu tarifu. Takođe, može se videti da se nakon aktiviranja signala traj_vožnje prelazi u povlašćenu dnevnu tarifu. Slika 15. Simulacija rada FSM-a (prelaz iz noćne u dnevnu tarifu) 16

Na slici 16. prikazan je rezultat simulacije FSM-a za slučaj prelaska iz vikend tarife u dnevnu tarifu (iz stanja S4 u stanje S2) i prelaz u povlašćenu dnevnu tarifu (stanje S5). Sa slike se može primetiti da se iz tekuće vikend tarife prelazi u dnevnu tarifu nakon aktiviranja signala poč_dnevne. I u ovom slučaju vožnja traje duže od sat vremena tako da je naredna tarifa povlašćena dnevna tarifa (stanje S5). Slika 16. Simulacija rada FSM-a (prelaz iz vikend tarife u dnevnu tarifu) Na slici 17. prikazan je rezultat simulacije FSM-a za slučaj prelaska iz dnevne tarife u vikend tarifu (iz stanja S2 u stanje S4) i prelaz na povlašćenu vikend tarifu (stanje S7). Na ovoj slici možemo uočiti obrnut raspored tarifa u odnosu na prethodnu sliku. Tekuća tarifa je dnevna (stanje S2) i prelazi se u vikend tarifu nakon aktiviranja signala poč_vikend. Zatim se aktivira signal traj_vožnje tako da je sledeća tarifa povlašćena vikend tarifa (stanje S7). Slika 17. Simulacija rada FSM-a (prelaz iz dnevne tarife u vikend tarifu) 17

Verifikacija celog kola-taksimetar Na slici 18. prikazan je rezultat simulacije taksimetra za slučaj kada počinje vožnja, odnosno kada se aktivira signal StartStop. Možemo pratiti dešavanja na izlazu akumulatorskog sabirača i na displeju. U trenutku početka vožnje vrednost akumulatorskog sabirača je 50 dinara (start tarifa). Isto stanje je i na 5-cifrenom displeju koji ima 14 segmenata tako da će u prilogu A biti data tabela za tumačenje displeja. Pošto je tekuća tarifa noćna (20 dinara) naredni iznos koji će se videti na displeju je 70 dinara. Inkrementiranje se vrši svakog minuta i kao što se može videti na slici, cena se povećava uvek za 20 dinara dok je vozilo u ovoj tarifi. Na narednoj slici može se videti nastavak akcija. Slika 18. Simulacija rada taksimetra (početak vožnje) Na slici 19. prikazan je rezultat simulacije taksimetra za nastavak vožnje čiji je početak prikazan na prethodnoj slici. Dakle, vozilo je bilo u noćnoj tarifi i kako se može videti sa slike, vožnja je trajala duže od sat vremena, tako da je vozilo prešlo u povlašćenu noćnu tarifu (16 dinara). Možemo primetiti da je vrednost na displeju pre početka povlašćene noćne tarife 1230 dinara, a prva vrednost na displeju u povlašćenoj noćnoj tarifi je 1246 dinara što nam kazuje da taksimetar ispravno radi. 18

Slika 19. Simulacija rada taksimetra (nastavak vožnje) Na slici 20. prikazan je rezultat simulacije taksimetra za nastavak vožnje, odnosno za prelazak iz povlašćene noćne vožnje u povlašćenu dnevnu vožnju. Poslednja vrednost na displeju koja je vezana za povlašćenu noćnu tarifu je 6878 dinara tako da je prva vrednost u povlašćenoj dnevnoj tarifi 6890 dinara što nam kazuje da je cena povlašćene dnevne tarife 12 dinara. I na ovaj način smo zaključili da taksimetar radi ispravno. Slika 20. Simulacija rada taksimetra (nastavak vožnje) 19

Na slici 21. prikazan je rezultat simulacije taksimetra za slučaj zaustavljanja vozila. U ovom slučaju signal StartStop pada na nulu što znači da se vozilo zaustavlja a na displeju se konačna vrednost (konačna cena) zadržava dok je taksista ručno ne poništi. U tom trenutku izlaz akumulatorskog sabirača postavljen je na vrednost nula, a na displeju se ispisuje tekst FREE (prva cifra s leve strane je ugašena). Ovakva stanja na akumulatorskom sabiraču i displeju zadržavaju se dok ne počne sledeća vožnja što će biti prikazano na sledećoj slici. Slika 21. Simulacija rada taksimetra (zaustavljanje vožnje) Na slici 22. prikazan je rezultat simulacije taksimetra za slučaj naredne vožnje. Dešavanja su ista s tim što je sada vozilo u dnevnoj tarifi čija je cena 15 dinara tako da je prva vrednost na displeju nakon prikaza start tarife 65 dinara. Dalji postupak je poznat iz gore navedenih primera. Slika 22. Simulacija rada taksimetra (naredna vožnja) 20

4.4 Logička sinteza Do sada su u VHDL-u bili opisani i verifikovani svi blokovi od kojih se sastoji integrisano kolo taksimetra. Većina tih blokova opisana je na nivou ponašanja. Dakle, proverena je funkcija i globalna struktura projekta. Sada treba sve blokove razložiti na logičke ćelije koje stoje na raspolaganju u biblioteci ćelija za tehnološki proces u kome će se realizovati projekat. Postupak prevođenja VHDL kôda u logičku šemu na nivou logičkih ćelija zove se logička sinteza. Jedan od alata koji distribuira Mentor Graphics, a koji obavlja logičku sintezu je Leonardo Spectrum. U narednom izlaganju biće detaljno objašnjen postupak korišćenja ovog alata na primeru taksimetra, odnosno, biće urađena logička sinteza na najvišem nivou (top-level). 4.4.1 Leonardo Spectrum Alat za sintezu kola, kao što je gore pomenuto, omogućava prevođenje VHDL opisa u hardver. Postupak sinteze je u potpunosti automatizovan. Potrebno je samo navesti ime i mesto gde se nalazi fajl sa VHDL opisom za koji se radi sinteza, kao i imena i mesto gde se nalaze biblioteke osnovnih logičkih ćelija. Svojim algoritmima, alat za sintezu prepoznaje karakteristične delove kôda i na osnovu biblioteke t.j. tehnologije za koju se kolo projektuje, povezuje module koji su u datoj tehnologiji dostupni. Zato je i potrebno, prilikom opisa kola, voditi računa o pravilima projektovanja za sintezu. Kao rezultat sinteze dobija se stukturni opis na logičkom nivou (nivo logičkih ćelija iz biblioteke) i to u obliku Verilog kôda. Tek nakon sinteze znaju se dinamički parametri svake ćelije, tako da mogu da se ispitaju problemi vezani za brzinu prostiranja signala. U narednom delu teksta biće prikazano kako koristiti program za sintezu VHDL kôda, a šeme dobijenih kola nakon sinteze date su u dodatku. Pozivanje programa Pozivanje programa vrši se naredbom: %leonardo, gde je % prompt signal (javljaće se i u daljem tekstu). Pojaviće se dialog box za potvrdu licence i potrebno je selektovati treću opciju (Leonardo Spectrum Level 3), ako već nije automatski selektovana i kliknuti na OK. Nakon ove akcije pojaviće se prozor prikazan na slici 4.1. 21

Slika 4.1. Početni prozor za učitavanje biblioteke odgovarajuće tehnologije Učitavanje biblioteke željene tehnologije U okviru prozora prikazanog na prethodnoj slici izabere se tab naznačen brojem 1 (Technology) i u zavisnosti od toga da li se želi projektovati ASIC ili FPGA čip, bira se i lista mogućih tehnologija. Pošto je cilj ovog rada projektovanje ASIC kola potrebno je selektovati neku od ponuđenih ASIC biblioteka (broj 2 na slici 4.1.). U radu sa studentskom verzijom paketa za projektovanje koristi se ami05(typ) tehnologija tako da je ona selektovana. U oblasti označenoj brojem 3 potrebno je uneti temperaturu (oko 27 ºC ) i odgovarajući napon napajanja kola koji će biti primenjen (obično 5V za izabranu tehnologiju). Nakon svih navedenih koraka, potrebno je učitati biblioteku klikom na polje označeno brojem 4. U gornjem desnom delu prozora program će prijaviti uspešno ili neuspešno učitanu biblioteku (verovatno će biti uspešno učitana). Učitavanje fajlova za sintezu Prelaskom na tab Input (oblast broj 5 na slici 4.2.) učitava se VHDL opis što predstavlja sledeći korak u inicijalizaciji sinteze. Neophodno je pre učitavanja fajlova za sintezu podesiti radni direktorijum (oblast broj 6 na slici 4.2.). Nakon toga može se izvršiti učitavanje fajlova. S obzirom da je ovaj projekat složen, opisan u više hijerarhijskih nivoa, potrebno je izvršiti sintezu svih hijerarhijski nižih modula, a zatim sintetizovati top-level opis sa učitanim svim ostalim makro modulima. U ovom delu biće 22

prikazan postupak sintetizovanja top-level opisa pod pretpostavkom da je završena sinteza nižih modula. Dakle, potrebno je uneti sve fajlove koji su u VHDL-u opisani na nivou ponašanja (oblast broj 7 na slici 4.2.), ali mora se voditi računa o tome da li je neka komponenta stukturno opisana tj. da li je na višem hijerarhijskom nivou od komponenata koje su opisane na nivou ponašanja. U tom slučaju uneće se njen fajl ali ne i fajlovi komponenata koji je sačinjavaju (npr. RTC ili akumulatorski sabirač, u konkretnom slučaju su na višem hijerarhijskom nivou od brojača, dff i dr.). Po završetku unosa fajlova, mišem se izabere fajl koji bi trebao da bude na najvišem nivou opisa (top-level) i desnim klikom otvara se dialog box iz koga izaberemo opciju za postavljanje fajla na top-level (u konkretnom slučaju Make TAKSI_1.vhd Top of Design). Na slici 4.2. možemo videti da je željeni fajl postavljen na prvo mesto gledano odozdo. Sada je još potrebno učitati sve unete fajlove što se može uraditi klikom na polje označeno brojem 8 na slici. Na kraju ovog poglavlja biće obašnjen postupak učitavanja jednog fajla. Slika 4.2 Učitavanje VHDL opisa 23

Definisanje vremenskih parametara Sledeći korak koji je neophodan za uspešnu sintezu je definisanje vremenskih ograničenja što je prikazano na slici 4.3. Ovaj korak obavlja se selekcijom tab-a Constraints. Postoji mogućnost definisanja sledećih kriterijuma po kojima se obavlja sinteza: Frekvencija takta Vremena kašnjenja između portova i registara Vremena kašnjenja između samih registara Vremena kašnjenja između registara i izlaznih portova U konkretnom slučaju frekvencija takta je 1 MHz ( oblast broj 9 na slici 4.3). Na kraju je potrebno kliknuti na Apply (oblast broj 10 na slici 4.3) čime je izvršena pre-optimizacija. Slika 4.3 Postavljanje vremenskih parametara sinteze 24

Optimizacija Nakon završene pre-optimizacije potrebno je izvršiti optimizaciju što je prikazano na slici 4.4. Selekcijom tab-a Optimize (oblast broj 11 na slici 4.4) obavlja se pomenuta aktivnost. Kao što se može videti na slici, selektovani su svi moduli čiji su fajlovi učitani u okviru aktivnosti učitavanja fajlova. Pošto se u ovom slučaju radi sinteza na najvišem nivou opisa, veoma je bitno da se čekira opcija za dodavanje stopica (oblast broj 12 na slici 4.4). Ovim je uspešno završena optimizacija, što se može videti u gornjem desnom delu prozora i može se preći na naredni korak. U slučaju da neki od učitanih fajlova nije odgovarajući za sintezu pojaviće se, takođe, u gornjem delu prozora komentar da postoji greška. Da bi proces mogao da se nastavi, mora se otkloniti greška. Ako se javi neko upozorenje, proces može bez problema da se nastavi jer upozorenje nije kritično. Treba još napomenuti da optimizaciju treba sprovoditi veoma pažljivo da ne bi došlo do gubitka nekih elemenata koji su važni. Tako npr, četiri redno vezana invertora mogu da budu namerno uvedena da bi kolo bilo dobro sinhronizovano. Međutim, program za sintezu ovo može da prepozna kao suvišno i da kompletnu serijsku vezu invertora pretvori u jednu direktnu vezu bez invertora.[pet05]. Slika 4.4 Postavljanje parametara optimizacije U okviru tab-a Report potrebno je definisati ime izlaznog fajla u koji će se upisati rezultati sinteze. Nakon upisivanja imena fajla potrebno je kliknuti na dugme report area. 25

Kreiranje netliste Proces korišćenja ovog alata završava se selektovanjem tab-a Output (oblast broj 14 na slici 4.5). U okviru ove aktivnosti potrebno je definisati i imenovati izlazni fajl. Treba naglasiti da ga je potrebno sačuvati i kao Verilog i kao VHDL fajl. Verilog fajl će se kasnije koristiti za razmeštaj i povezivanje standardnih ćelija iz biblioteke korišćene tehnologije, dok će se VHDL fajl koristiti za simuliranje projekta nakon sinteze tzv. Postsyntezis simulation. Veoma je bitno da se prilikom čekiranja opcije za aktiviranje Verilog fajla prihvati ponuđeno ime fajla (oblast broj 15 na slici 4.5) da u korišćenju drugih alata (npr. Design Architect) ne bi došlo do greške. Recimo, pošto se Verilog fajl koristi kao ulazni fajl u alatu Design Architect, ako nije prihvaćeno ponuđeno ime Verilog fajla u tekućem alatu, rezultat rada u Design Architect-u neće biti ispravan. Iz ovog razloga mora se voditi računa o pravilima korišćenja Leonardo Spectrum-a. Dakle, klikom na Write (oblast broj 16 na slici 4.5) ovi fajlovi biće upisani u direktorijum koji je naveden na slici 4.2 kao radni direktorijum. Poželjno je da radni direktorijum bude za jedan stepen iznad work direktorijuma, kako se ne bi mešali kodovi makro ćelija, generisane lejaut ćelije i slično. Slika 4.5 Postavljanje parametara za izlazne fajlove sinteze 26

U zavisnosti od nivoa hijerarhije kola koje se sintetizuje, moguće je definisati kakva će sadržina izlaznog fajla biti, t.j. prilikom generisanja lejauta da li će se predstavljati blokovima makroćelija ili tehnološkim ćelijama. U studentskoj verziji (SE) moguće je sagledavanje lejauta samo na nivou tehnoloških ćelija. Oblast broj 17 na sliki 4.5, omogućava projektantu da sagleda šeme date na nivou tehnoloških ćelija, makroćelija, kao i deo kola gde je najveće kašnjenje signala (u okviru pomenute oblasti, gledano sa leva na desno). Nakon sinteze, neophodno je verifikovati rad kola simulacijom, kako bi se ispitalo da li ćelija obavlja svoju funkciju. Verifikacija se radi uvek posle sinteze da bi se izbegle eventualne greške pri proizvodnji. Naravno, rezultati ove simulacije ne garantuju da će i nakon fabrikacije kolo biti potpuno ispravno, ali se ta verovatnoća značajno uvećava. Za ovu akciju poziva se novokreirani VHDL ili Verilog fajl. Kao primer rezultata simulacije prikazani su rezultati RTC-a na slikama 4.6, 4.7, 4.8. i 4.9. Slika 4.6 Simulacija rada RTC-a (početak dnevne tarife) Slika 4.7 Simulacija rada RTC-a (početak noćne tarife) Slika 4.8 Simulacija rada RTC-a (početak vikend tarife) 27

Slika 4.8 Simulacija rada RTC-a (trajanje vožnje duže od sat vremena) Može se primetiti da rezultati simulacije odgovaraju predviđenim i grafički se ne razlikuju od onih dobijenih u odeljku 4.3. Za slučaj sintetizovanja jednog modula koraci su u suštini isti, s tim što se učita samo odgovarajući VHDL fajl i naravno, nema potrebe da se čekira opcija za dodavanje stopica. Nakon uspešne verifikacije rada kola nakon sinteze, potrebno je pripremiti projekat za izradu lejauta. Priprema se obavlja pomoću Design Architect alata za modifikaciju i generisanje šema. Ovaj alat importuje Verilog netlistu i priprema je za dalju obradu. Pored digitalnih kola, u bibliotekama se mogu naći i analogne komponente. Ovaj program podržava i rad sa analognim kolima. Nakon dobijene odgovarajuće šeme, potrebno je proveriti da li šema zadovoljava sve električne i logičke norme i generisati fajlove za lejaut. U sledećem poglavlju opisani su detaljni koraci potrebni za generisanje lejauta IC station alatom. 28

4.5 Fizičko projektovanje Projektovanje čipa u fizičkom domenu izvodi se u alatu IC station, koji je, takođe, sastavni deo paketa za projektovanje integrisanih kola Mentor Graphics. 4.5.1 IC Station Do sada je svaki blok posebno opisan u VHDL, sintetizovan, a u ovoj fazi biće generisan njegov lejaut na osnovu sintetizovane netliste. Generisanje lejauta, obavlja se kroz više koraka, koji će u ovom poglavlju biti objašnjeni detaljno. Akcije koje je potrebno izvršiti u okviru ovog alata date su na dijagramu (slika 4.9).Kao što se može videti treba uraditi kreiranje ćelije, postavljanje plana površine, postavljanje standardnih ćelija i povezivanje ćelija. U daljem izlaganju biće posebno objašnjena svaka od navedenih akcija. Radi boljeg shvatanja samog procesa i pravila prilikom projektovanja lejauta, čitalac se upućuje na [Lit00]. Slika 4.9 Dijagram akcija u IC station-u 29

Pozivanje programa Pozivanje programa vrši se naredbom: %ic Pre početka izvršenja akcija sa slike 4.9 neophodno je podesiti radni direktorijum. Podešavanje se vrši kada se sa Main menija izabere: Setup->IC i nakon toga otvoriće se dialog box koji se može videti na slici 4.10. i u naznačenom delu treba podesiti odgovarajući direktorijum. Po završetku podešavanja direktorijuma prelazi se na kreiranje ćelije. Slika 4.10 Kreiranje radnog direktorijuma 30

Kreiranje ćelije Kreiranje ćelije vrši se izborom File->Cell->Create iz Main menija. Radni prozor programa sa pozvanim dialog box-om koji se zatim prikaže dat je na slici 4.11. Slika 4.11 Kreiranje makro ćelije Dialog box je potrebno popuniti na način prikazan na slici 4.12. Potrebno je u okviru cell name navesti ime ćelije (u ovom slučaju je to registar). Neophodni procesi i biblioteke smešteni su u direktorijumu space/mentor/adk3_0/technology/ic/process/. U delu koji je uokviren na slici jako je važno navesti sdl (Schematic driven Lejaut) direktorijum na koji će se IC pozivati prilikom generisanja lejauta. 31

Slika 4.12 Kreiranje makro ćelije sa definisanim parametrima Nakon kreiranja ćelije pritiskom na OK otvoriće se blanko prozor. U desnom delu nalaze se dve palete neophodne za rad: layer palette i IC palette. U slučaju da prilikom otvaranja prozora ovih paleta nema nigde u okviru prozora, mogu se čekirati opcije za njihovo postavljanje koje su naznačene na slici 4.13. Da bi se došlo do prikazane slike neophodno je da se sa Main menija izabere: Setup->Session. Slika 4.13. Postavljanje paleta 32

Naredni korak je aktiviranje ADK_edit paleta iz osnovne palete alata koja je označena brojem 18 na slici 4.14. Nakon ove akcije koraci koji slede potpuno su automatizovani. Slika 4.14. IC paleta alata Slika 4.15. Place and route paleta Planiranje površine čipa U okviru ovog dela, najpre je potrebno napraviti okvirni plan gde će se smeštati standardne ili makro-ćelije. Na slici 4.15. naznačeni su svi koraci koje treba izvršiti. Prvi korak je selektovanje Autofp (oblast broj 20 na slici 4.15) i tada se na ekranu pojavi dialog box prikazan na slici 4.16. U većini slučajeva vrednosti parametara su kao što se može videti na slici, ali može se desiti da je potrebno povećati visinu i širinu (height i width). Po završetku podešavanja parametara i klikom na OK pojaviće se generisani floorplan makro ćelije (slika 4.17). 33

Slika 4.16. Podešavanje parametara za floorplan Slika 4.17. Generisan floorplan makro-ćelije Postavljanje standardnih ćelija Sada je potrebno postaviti standardne ćelije. Ovaj korak izvršava se selektovanjem StdCel, oblast broj 21 na slici 4.15. Nakon toga pojavi se dialog box kao što je prikazano na slici 4.18. 34

Slika 4.18. Podešavanje parametara za postavljanje standardnih ćelija Neophodno je čekirati opciju Optimize placement i kliknuti na OK. Pored toga, potrebno je definisati i portove selektovanjem Ports, oblast broj 22 na slici 4.15. Zatim se pojavi dialog box kao što je prikazano na slici 4.19. Najbolje je rasporediti portove na sve četiri strane (left, right, bottom, top) i nakon klika na OK završava se podešavanje parametara neophodnih za postavljanje standardnih ćelija tako da se pojavi lejaut sa razmeštenim ćelijama i portovima (slika 4.20), nakon čega ostaje da se trasiraju veze između ćelija. Ovaj korak naziva se povezivanje. Slika 4.19. Podešavanje parametara za postavljanje portova 35

Slika 4.20. Izgled lejauta sa razmeštenim ćelijama i portovima (pre povezivanja) Povezivanje ćelija Sledeći korak jeste fizičko povezivanje komponenti kroz više slojeva metala. U primerima koji su obrađeni u ovom radu korišćena su tri sloja metalizacije sa kojih je moguće povezivanje sa spoljnim svetom. Potrebno je kliknuti na polje All, na koje ukazuje oblast broj 23 sa slike 4.15. Nakon toga, pojaviće se Routing dialog box (slika 4.21). Slika 4.21. Routing dialog box Klikom na Options aktivira se novi prozor (slika 4.22), u kome je potrebno postaviti odgovarajuće parametre. 36

Slika 4.22. Options dialog box za povezivanje komponenti Klikom na Expert Options (oblast broj 25 na slici 4.22), otvara se novi prozor, u kome treba čekirati Channel Over Cell Routing, kako je i prikazano slici 4.23. Slika 4.23.Dialog box za postavljanje expert parametara router-a Ukoliko se izabere opcija OCR Options (oblast broj 26 na slici 4.22), pojaviće prozor, prikazan na slici 4.24 u kome je moguće zadavanje vrednosti parametara. 37

Slika 4.24. Dialog box za setovanje OCR Options parametara Važno je da se Step Size (oblast broj 28 na slici 4.24) postavi na 0.5, kao i Operation Mode Type na Center Weighted (oblast broj 27 na slici 4.24), što je povezano sa Lambda parametrom [Lit00]. Potvrdom i zatvaranjem svih gore navedenih dialog boxeva, postavljeni su ispravni parametri vezani za povezivanje ćelija. U zavisnosti od veličine projekta, proces povezivanja može potrajati i nekoliko minuta. Slika 4.25 prikazuje izgled lejauta ćelije i povezivanje u ovom slučaju je trajalo nekoliko sekundi pošto je ćelija mala. Najzad, potrebno je izvršiti još jedan korak, a to je testiranje dobijenog lejauta. Svaka kockica obojena bledoplavom ili ljubičastom bojom predstavlja via-u, t.j. vezu između metala iz različitih slojeva. 38

Slika 4.25. Lejaut projektovane ćelije Moguć je prikaz layout-a sa nivoima metalizacije aktiviranjem sa Main menija: context->hierarchy->peek Area i u dialog box-u (slika 4.26) potrebno navesti broj metalizacija koji se želi videti. Na slici 4.27 može se videti izgled lejauta projektovane ćelije sa svim nivoima metalizacije. Prikaz svih generisanih ćelija korišćenih u ovom projektu nalazi se dodatku. Slika 4.26. Postavljanje broja metalizacija Slika 4.27. Lejaut ćelije sa prikazanim svim nivoima za koje je potrebna izrada maski 39

U slučaju da se radi lejaut za celo kolo (top level) neophodno je staviti potrebane stopice, pad-ove za napajanje i masu, a takođe i korner ćelije. Korner ćelije su neophodne da bi se obezbedio kontinuitet prstenova za n-well i napajanje. (U istu svrhu program sam ubacuje filler ćelije za popunjavanje praznina između standardnih ćelija u jednom nizu). Postavljanje korner ćelija može se uraditi izborom sa Main menija: Peckage->ICblocks- >Corner Cells. Zatim se otvori dialog-box koji je prikazan na slici 4.28. Korner ćelije postavljaju se na sledeći način: prvo se izabere prva naznačena oblast, a zatim u okviru Browse nađe se potrebna Corner Cells i klikom na OK ćelija će biti postavljena na odgovarajuće mesto. Postupak se ponovi i za preostale tri ćelije. Slika 4.28. Način postavljanja Corner Cells 40

Slika 4.29. Prikaz dodatnih pad-ova Da bi se došlo do potrebnih pad-ova treba izabrati: Objects->Add->Cell i nakon toga naći tehnološku biblioteku gde su i smešteni pad-ovi, kao što je prikazano na slici 4.29. ADK alat namenjen je, pre svega, studentima, tako da postoji ograničenje vezano za broj stopica, a to je maksimalno 40 stopica. S obzirom da je za ovaj projekat potrebno 92 stopice nije bilo moguće uraditi lejaut za celo kolo (top-level) tako da je dat primer kako izgleda lejaut sa pad-ovima za manju ćeliju. Na slici 4.30 mogu se videti postavljene korner ćelije, a na slici 4.31 može se videti lejaut sa svim nivoima metalizacije. 41

Slika 4.30. Postavljene Corner Cells 42

Slika 4.31. Izgled lejauta sa svim nivoima metalizacije i Corner Cells Verifikacija lejauta Projektovanje nije završeno dok se ne utvrdi da li je to dobro obavljeno. Za lejaut postoje dve vrste provera. To su provera električne šeme (Lejaut versus Schematic-LVS) i provera pravila projektovanja (Design Rule Check-DRC). Detaljnije o ovim testovima može se naći u [Lit00]. LVS test Prvo treba proveriti prekoračenja (overflow) upoređivanjem električne/logičke šeme ekstrahovane na osnovu lejauta sa šematskim, odnosno strukturnim opisom projekta. Ova aktivnost naziva se LVS verifikacija. Inače, Overflow predstavlja prekoračenje vezano za sam algoritam povezivanja (neke ćelije ostanu nepovezane). Provera se vrši izborom sa Main menija: Objects->Check->Overflows i kao rezultat ove akcije pojavi se dialog-box (slika 4.32) gde je potrebno čekirati All (naznačena oblast). Nakon toga, na lejautu će sva prekoračenja biti označena žutom bojom. Prekoračenja se mogu izbrisati izborom Edit->Delete->Selected. U slučaju da editovanje nije dozvoljeno, potrebno je kliknuti na olovku koja se nalazi u levom delu radnog prozora. Na ovaj način rešen je problem brisanja prekoračenja. U velikim projektima postoji mogućnost da nisu vidljiva sva prekoračenja, tako da se treba uraditi provera na sledeći način: Setup->Select Filter->Overflow. Ostalo je još reći na koji način je moguće otkloniti prekoračenja. Potrebno je kliknuti na OvrFlw (oblast broj 24 na slici 4.15) i uokviriti odgovarajući overflow. Ako nije moguće prekoračenja otkloniti na ovaj način mora se preći na ručno otklanjanje. 43

Slika 4.32. Čekiranje prekoračenja (overflows) Pokretanje LVS testa vrši se izborom Verifdp (LVS) polja broj 19 u IC paleti sa slike 4.14. Nakon pokretanja LVS testa pojaviće se dialog box prikazan na slici 4.33. Potrebno je uneti ime vezano za odgovarajuću ćeliju. Takođe, potrebno je u okviru Source name (oblast broj 29) ukazati na SDL (Schematic Driven Lejaut). Nakon toga treba čekirati Setap LVS (oblast broj 30) posle čega se otvara novi dialog box (slika 4.34) gde treba čekirati naznačenu oblast. Slika 4.33. Dialog box za inicijalizaciju LVS testa 44

Slika 4.34. Parametri postavljanja LVS testa Kao rezultat LVS testa dobija se izveštaj o eventualnim greškama vezanim za lejaut u vidu tekstualnog fajla. Moguće je da se javi više upozorenja jer je u pitanju studentska (Student Edition) verzija alata za projektovanje integrisanih kola koja ukazuju na greške vezane za pad-ove. Ova upozorenja je potrebno ignorisati. U slučaju da ne postoje greške izveštaj će izgledati kao na slici 4.35. 45

Slika 4.35. Izveštaj LVS testa DRC test Provera pravila projektovanja Design Rule Check (DRC), [Lit00, Pet05] predstavlja softverski alat, koji služi da utvrdi činjenicu da li je došlo do prekršenja pravila projektovanja ili ne. Softverski alat za generisanje lejauta, koji je u ovom radu opisan, koristi Lambda pravila projektovanja, gde se dimenzije svake figure na lejautu definišu kao celobrojni umnošci parametra Lambda. Provera počinje izborom DRC- >ICRules->Check. Nakon toga u Message Area može se videti koliko grešaka postoji. Da bi se videlo koje su to greške prvo se čekira First Error u okviru ICRules i belom bojom biće označena greška u okviru lejauta. Zatim se čekira Next Error i ovaj postupak se ponavlja dok se u Message Area ne pojavi poruka da nema više grešaka. Ovim testom bilo bi završeno fizičko projektovanje. Možemo reći da osnovnu strukturu layout-a čine: - središnji deo čipa koji se naziva jezgro (core) - u njemu se odvija osnovna funkcija integrisanog kola, - stopice (pad-ovi) koje su smeštene po periferiji preko kojih se, tankom žicom (bond) vezuju nožice kućišta integrisanog kola sa čipom [Pet05]. Kućište koje se u ovom slučaju može iskoristiti dato je na slici 4.36. 46

Slika 4.36. Kućište 47

5 Zaključak U radu je opisan postupak projektovanja integrisanog kola taksimetra uz pomoć Mentor Graphics alata za projektovanje. Uputstvo za korišćenje alata Model Sim-a i Design Arhitect-a, koje nije dato u ovom radu može se naći u korišćenoj literaturi. Tokom izrade ovog diplomskog rada javljali su se i problemi koji su bili rešavani na najjednostavniji mogući način. Zaključila sam da neke komponente koje su na prvi pogled jednostavne za projektovanje (npr. sabirač) predstavljaju veliki problem za konkretno kolo (taksimetar) jer je neophodan sinhronizam u kolu. Druga konstatacija vezana je za simulaciju. Tačnije, iako je simulacija nekog kola u VHDL-u uspešna, ne mora da znači da će kolo proći sintezu bez grešaka. Takođe, može se desiti da se posle sinteze ne dobije očekivani odziv. Vrlo je važno voditi računa o ovoj aktivnosti. Treba obratiti pažnju da u okviru alata Design Arhitect postoji mogućnost da se šema za jedan modul sastoji iz više delova tako da se za svaki treba uraditi provera i priprema za lejaut. IC station alat je isuviše automatizovan što može projektantu zadati dosta problema kada je potrebno neku akciju izvršiti ručno. Veoma je bitno za svaki korišćeni alat da se podese potrebni parameti kako je neophodno da ne bi došlo do neželjenih grešaka. Što se tiče pomenute konstatacije u poglavlju 4.2.1. da taksista nema ograničeno vreme za vraćanje taksimetra u početno stanje, znači da on sam određuje kada će to uraditi. To u ovom radu nije od bitnije važnosti, ali ako je u pitanju taxi-stanica taksista bi morao odmah nakon završene vožnje da obavi pomenutu aktivnost. Dakle, ovaj projekat moguće je proširiti tako što će se omogućiti komunikacija sa dispečerskim centrom. Na taj način u svakom trenutku znao bi se status vozila tako da ne bi postajala mogućnost neprijavljene vožnje. Takođe, bilo bi dozvoljeno pratiti rad više vozila, i u svakom trenutku bilo bi moguće naći slobodno vozilo baš iz tog razloga što bi ceo sistem rada bio sistematizovan i funkcionalno organizovan. Sam proces komunikacije odvijao bi se preko dispečerske stanice koja poseduje dva kanala (radni i pomoćni). Radni kanal služi za obavljanje komunikacije između operatera i taksiste. U slučaju da traženo vozilo nije slobodno, operater upućuje isto pitanje narednom vozilu, a taksista je u obavezi da potvrdi da je (ili nije) primio poruku i isto tako da po završetku vožnje prijavi do kog odredišta ide (ići će do najbližeg odredišta). Taksista, takođe, mora po dobijanju informacije od mušterije do koje adese je potrebno stići da javi operateru. U slučaju da taksisti nije poznata adresa, koristi pomoćni kanal da se konsultuje sa nekim od kolega. U vreme praznika korišćenost taxi-službe je povećana tako da komunikacija ne može najbolje da se odvija. Zahvaljujići sve većem razvoju tehnologije, ovaj problem rešen je primenom GPS-a u vozilima, tako da se u svakom trenutku može videti položaj svakog vozila. 48

6 Literatura [Lit00] Dr. Vančo B. Litovski, Projektovanje elektronskih kola: simulacija, opimizacija, testiranje, fizičko projektovanje, I izdanje, DGIP Nova Jugoslavija, Vranje, 2000. [Pet05] Dr. P. Petković, M. Sokolović, B. Anđelković, Projektovanje integrisanih kola VHDL simulacija i sinteza, Elektronski fakultet Niš, 2005. [Dam99] Dr. M. Damnjanović, Praktikum laboratorijskih vežbanja iz projektovanja i testiranja elektronskih kola i sistema. [Adk1] Designing ASICs with the ADK Design Kit and Mentor Graphics Tools, User Manual for ADK Design Kit Version 1.6., Mentor Graphics 2005. [Adk2] ModelSim Advanced Verification and Debuging SE Tutorial, Version 6.0.c. January 21, 2005. Mentor Graphics Corporation 8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777 [Adk3] Placing I/O Pads.htm, User Manual for IC Station, Mentor Graphics. Mentor Graphics Corporation 8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777. [Adk4] http://www.scudc.scu.edu/mentortu/mg_sc.html#intro, Help Files for Place and Route. 49

Prilog A. Tabela neophodna za čitanje displeja BCD 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 a b c d e f g1 g2 h i j k l m 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Prilog B. VHDL kôd taksimetra 50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

Dodatak VHDL kôdovi taksimetra Opis registra 67

Opis registra_1 68

Opis registra_2 69

Opis mux_2 70

Opis mux_a Opis bloka vikend 71

Opis kontrolne logike 72

Opis brojača_7 73

Opis brojača_9 74

Opis brojača_24 75

76

Opis brojača_60 77

78

Opis brojača_60a 79

80

Opis decodera 81

Opis displeja 82

Opis konačnog automata 83

84

85

86

Opis sabirača 87

88

Opis akumulatorskog sabirača 89

90

91

92

93

94

Opis sata realnog vremena 95

96

97

98

99

100

101

Šeme sintetizovanih modula taximetra Šema sintetizovanog registra 102

Šema sintetizovanog sabirača Šema sintetizovanog akumulatorskog sabirača 103

Šema sintetizovanog bloka vikend Šema sintetizovane kontrolne logike 104

Šema sintetizovanog brojača_7 Šema sintetizovanog brojača_9 105

Šema sintetizovanog brojača_24 106

Šema sintetizovanog brojača_60 107

Šema sintetizovanog brojača_60a Šema sintetizovanog displeja 108

Šema sintetizovanog konačnog automata 109

Šema sintetizovanog mux_2 Šema sintetizovanog mux_a 110

Šema sintetizovanog mux 111

Šema sintetizovanog realnog sata Šema sintetizovanog taximetra 112

Prikaz layout-a makro-ćelija Layout registra 113

Layout registra_2 114

Layout sabirača 115

Layout bloka vikend Layout kontrolne logike 116

Layout brojača_7 Layout brojača_9 117

Layout brojača_24 Layout brojača_60 118

Layout mux-a Layout decodera 119

Layout displeja 120

Layout displeja sa prikazom svih nivoa Layout konačnog automata 121

Layout konačnog automata sa svim nivoima 122