TKT-1220 Tietokonearitmetiikka I PC-harjoitus 1

Samankaltaiset tiedostot
TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet

VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

MyTheatre asennus ja kanavien haku

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

SQL Server 2005 Express Edition tietokannan asennusohje

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Let Me Hack It -kurssilla tarvittavat ohjelmat ja välineet

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

TEHTÄVÄ 1.1 RATKAISUOHJEET

Väylään liitettävä laite: Pheonix Contact ILB PB DI8 DIO8

Office ohjelmiston asennusohje

MITEN KIRJAUDUN ADOBE CONNECTIIN?

Pelaajan tietojen lisääminen

Pedacode Pikaopas. Web-sovelluksen luominen

Päivitysohje Opus Dental

Virustorjuntaohjelman F-Secure 5.54 asennus kotikoneelle

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

SSH Secure Shell & SSH File Transfer

Käyttöopas RoofCon Viewer

WL54AP2. Langattoman verkon laajennusohje WDS

Johdatus ohjelmointiin

TKT224 KOODIN KOON OPTIMOINTI

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

1 Muutokset piirilevylle

MASSER Loader V2.00. käyttö- ja asennusohje

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

OHJE 1(6) Windowsin ääniasetukset Jos äänet eivät kuulu ConnectPro:ssa, Skypessä tai muussa ohjelmassa,

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen

MITEN KIRJAUDUN ADOBE CONNECTIIN?

Syötetään tehtävät ja kestot - Task Name ja Duration kentät - puurakenteen saamiseksi käytetään vihreitä nuolia (ylävalikossa) Indent, Outdent

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA

Javan asennus ja ohjeita ongelmatilanteisiin

OCAD KOULUTUS ALITTELIJOILLE OCAD PERUSTEET

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

TUTA Q2 Tallentava valvontakamera Asennusohje

Wordfast Classic 5.5 Asentaminen 1 (10)

Liikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.

OHJEET HOPSIN TEKEMISEEN KYVYT- PALVELUSSA:

CLS verkkolisenssin asennusohje (2018 ) sivu 1

Ennen varmenteen asennusta varmista seuraavat asiat:

Air Sync Käyttöopas. Air Syncin lataaminen. Virran kytkentä ja katkaisu On/Off Air Sync

Visma Fivaldi selainohjeet Internet Explorer

Finnish. Osien nimet. Tarkistuslaiteyksikkö. Sähkökaapelin tarkistuslaite. Vaihtokytkimen tarkistuslaite SM-EC79 HAKEMISTO

Etusivu 1. Näkymä ja aktivointi 2. Tee partituuripohja 3. Tee nuotteja 4. Sanat, sointumerkit Pikkukappale. Pikkukappale

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

VATT Talouden rakenteet. Ohje: Pdf-dian liittäminen PowerPoint -esitykseen. Sisällys:

Lue ohjeet huolellisesti ennen laitteen käyttöä.

Viljo-Praktiikka ja Kirjanpito -ohjelman versio 3.05 asennusohje vanhan version 2.08 tai aikaisemman käyttäjät

TW- EAV510 JA TW- LTE REITITIN: WDS- VERKKO

LP-levyn digitointi Audacity-ohjelmalla

Asetyylisalisyylihapon energiaprofiili. - Konformaatioisomeria

Autotallin ovi - Tehtävänanto

AUTOCAD-TULOSTUSOHJE. Tällä ohjeella selitetään Autocadin mittakaavatulostuksen perusasiat (mallin mittayksikkönä millimetrit)

Share-työkalu (AC 9.1)

ArchiCad:istä Inventoriin ja NC-jyrsin mallin teko

Viljo-Praktiikka ja Kirjanpito -ohjelman versio 3.05 asennusohje uudet käyttäjät

REITTIHÄRVELIN KÄYTTÖOHJE (ESIM. ILTARASTIEN YHTEYDESSÄ)

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Jypelin käyttöohjeet» Ruutukentän luominen

AdobeConnect peruskäyttövinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus

Turo Id MIKROPROSESSORIJÄRJESTELMÄN SUUNNITTELU FPGA:LLA

Fortum Fiksu Etäohjattava roiskeveden kestävä sähkökytkin (IP44) Käyttöohjeet

Keskellä ruutua kuvan yläpuolella linkki on call diabeteksen hallintaohjelmisto. Klikkaa sitä

Netsor Webmailin käyttöohje

AirPatrol WiFin käyttöohje V1.0

LP-levyn digitointi Audacity-ohjelmalla

CEM DT-3353 Pihtimittari

Web Services tietokantaohjelmoinnin perusteet

MEM-O-MATIC järjestelmä

Kombinatorisen logiikan laitteet

Tulostinajurin ja paperikoon konfigurointiohjeet AutoCad ohjelmille

CADS Planner Electric perusteet

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

PIKAOHJE Tuulimittaus WS2-WTN + D-LINE

Ohjelmistopäivitysohje

Tehtävä 6. MIAC-pohjainen valo/moottoriohjaus

CLS VERKKOLISENSSIN ASENNUSOHJE sivu 1

erasmartcardkortinlukijaohjelmiston

1. NetBeans-ohjelman asennus ja käyttöönotto pva

HP ProBook 430 G5 kannettavien käyttöönotto

Ohje: Adobe Connect kokoukseen tai -opetukseen osallistuvalle

Turvapainike. Käyttöohje

Henkilö- ja koulutusrekisterin asennusohje

Windows 8 -kurssi. Kurssista

Käyttöohje Lyhyt esittely DecoStudy-palveluun.

NOOX XCIO Bluetooth 4.0 stereokuulokkeet

ASIO-OHJE HENKILÖSTÖLLE.

McAfee VirusScan Enterprice asennus

Transkriptio:

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 1 Tehtävä 1: Sekventiaalisen right-shift-kertolaskijan tutkiminen Tämä tehtävä esittelee kahden kertolaskijan eroja FPGA-piirillä. Pyri vastaamaan kysymyksiin lyhyesti. Pura kurssin sivulta ladattava tiedostopaketti (aritmetiikka_fpga_1.zip) tekemääsi hakemistoon kotihakemistosi alle. Avaa terminaali (Apuohjelmat -> Terminaali) ja käynnistä Quartus antamalla seuraavat komennot: source /share/tktprog/altera/quartus-12.0-sp2/qii.sh quartus & Avaa projekti (File -> Open Project) aritmetiikka_fpga_1. Avaa projektin tiedostoista (Files-välilehti) aritmetiikka_fpga_1.bdf, joka on projektin ylimmän tason suunnittelu. Ensimmäinen kertolaskija on yksinkertainen yhden bitin kerrallaan skannaava sekventiaalinen right-shiftalgoritmia käyttävä kertoja (mul.vhd), toinen kaksi bittiä kerrallaan skannaava (mul2scan.vhd). Kertolaskijat sytyttelevät status-ledejä kertomisen edetessä. Havainnollistuksen vuoksi yhteenlaskua ja shiftausta ei tehdä samalla kellojaksolla vaan vuorotellen. Lisäksi kertojilla on kahden kellojakson lisäviive (yksi ylimääräinen kellojakso alussa ja yksi lopussa). Ylimmän tason suunnittelussa generoidaan havainnollinen 5 hertsin kellosignaali, joka syötetään kertolaskijalohkolle. Halutessasi voit tutustua kertolaskijoiden VHDL-koodiin. 1.1 Kuinka monta kellojaksoa yllä esitellyltä 1-bittisesti skannaavalta kertojalta kestää kertoa kaksi 8-bittistä lukua? 1.2 Kuinka paljon nopeampi kaksi bittiä kerrallaan skannaava teoriassa on? Käännä projekti valitsemalla Processing -> Start Compilation (CTRL + L). Kun käännös on valmis, laita virta FPGA-lautaan ja avaa Tools -> Programmer ja klikkaa start. Voit joutua valitsemaan Hardware setupista USB-Blaster-vaihtoehdon ja/tai irrottamaan FPGA-laudan USB-johdon koneesta muutamaksi sekunniksi.

Kokeile kertolaskijan toimivuus muutamilla erityyppisillä lähtöarvoilla. 8-bittiset syötearvot annetaan kytkimillä SW0 - SW7 ja SW8 - SW15. Syötearvot näkyvät myös 7-segmentti-LED-näytöillä heksadesimaalimuodossa. SW17 on alhaalla aktiivinen reset. KEY0-painokytkin antaa kertolaskijalle aloituskäskyn. Punaiset ledit syttyvät yksi kerrallaan aina, kun yksi bitti on käsitelty ja tehdään shiftaus. 7-segmenttinäytöillä HEX0-HEX3 näkyy kertolaskijan lähtö eli peräkkäin liitetyt AC- ja B-rekisterit. Kun kertolasku on valmis, syttyy vihreä led LEDG8. Tutustu Compilation Reportiin ja ota ylös, montako logiikkaelementtiä suunnittelu yhteensä vaati (Fitter - > Summary). Valitsemalla Tools -> Chip Planner näet, miten Fitter sijoitteli logiikkaelementit FPGApiirille. (Osa logiikkaelementeistä toteuttaa oheistoimintoja kuten LED-näyttöjen ohjausta.) Sulje Chip Planner. Nyt poista ylimmän tason suunnittelusta kertolaskijalohko "mul" ja lisää tilalle 2 bittiä kerrallaan skannaava (radix-4) kertolaskija: klikkaa kakkosnäppäimellä suunnittelua, Insert -> Symbol -> project -> mul2scan. Käännä projekti taas ja ohjelmoi se uudelleen FPGA-laudalle. 1.3 Mitä havaitset kertolaskun valmistumisnopeudessa ja miksi? 1.4 Kuinka monta logiikkaelementtiä suunnittelussa oli 1-bittisesti skannaavalla kertolaskijalla, entä 2-bittisesti skannaavalla? 1.5 Mistä ero johtuu? FPGA:lla porttiviiveiden lisäksi reititysviiveellä on suuri merkitys kytkennän maksiminopeuteen, sillä reitityksen on oltava muunneltava ja se kiertää useiden ohjelmoitavien reititinlohkojen kautta. Nämä reitittimet ovat ikään kuin multipleksereitä, joilla on oma viiveensä. Koska 2-bittisesti skannaava kertolaskija on loogisesti hieman monimutkaisempi, se ei välttämättä kykene aivan samaan kellotaajuuteen kuin 1-bittisesti skannaava. Seuraavaksi kokeillaan, millä kellotaajuuksilla kertolaskijat lakkaavat toimimasta tai alkavat toimia väärin.

Pidä 2 bittiä skannaava kertolaskija suunnittelussa ja poista kellosignaalin välistä "kellojakaja"-lohko. Tuplaklikkaa kellogen-lohkoa ja klikkaa 3 kertaa next. Säädä kellon jakajaa (clock division factor) ja kertojaa (clock multiplication factor) siten, että saat taajuudeksi (Actual settings) 500 MHz, joka on Quartuksen tukema maksimiarvo. Klikkaile Finish ja anna korvata vanha kellogen-lohko uudella. Käännä jälleen projekti ja katso Compilation Reportista, mitä ajoitusanalysaattorilla on sanottavaa. Se ilmoittaa kriittisen polun rikkovan kiikun setup-aikaa ja arvionsa siitä, mikä olisi suurin toimiva kellotaajuus. Ohjelmoi tästä huolimatta suunnittelu FPGA-kortille. 1.6 Mikä on arvioitu maksimikellotaajuus? 1.7 Muuttele em. tavalla kellokerrointa kääntäen projekti aina uudestaan ja etsi 50 MHz:n tarkkuudella kellotaajuus, jolla suunnittelu toimii oikein FPGA:lla. Kokeile muutamaa erityyppistä lähtöarvoa ja varmista että oikea tulos tulee joka kerta. Vaihda mul2scanin tilalle taas yhden bitin kerrallaan skannaava lohko ("mul") ja tee sama testi (etsi 50 MHz tarkkuudella suurin kellotaajuus.) Jos 500 MHz, suurin Quartuksen tukema arvo, vielä toimii, voit joutua huijaamaan Quartusta saadaksesi suurempia kellotaajuuksia käyttöösi. Tuplaklikkaa kellogen-lohkoa ja ensimmäisellä sivulla vastaa kysymykseen inclock0:n taajuudesta 25 MHz. Tämä ei vaikuta oikeaan kellotaajuuteen, vaan esim. multiplication factor 12 tuottaa nyt 600 MHz:n kellon, vaikka Actual Settings -kohdassa lukeekin 300 MHz. (Huom. nyt ajoitusanalysaattori ei osaa laskea oikein maksimikellotaajuutta.)

1.8 Millä kellotaajuudella yhden bitin kerrallaan skannaava kertolaskija vielä toimii? 1.9 Mikä on kertolaskijoiden throughput suurimmalla toimivalla kellotaajuudellaan, ts. kuinka monta laskutoimitusta sekunnissa kertolaskijat pystyvät suorittamaan? 1.10 Luottaisitko oikeassa tilanteessa piirin toimintaan näillä kellotaajuuksilla, vai noudattaisitko ajoitusanalysaattorin arviota kriittisen polun viiveestä? Miksi/miksi et? Tehtävä 2: Kombinatorinen kertolaskija ja FPGA:n sisäinen kertolaskija Edellisen tehtävän sekventiaalisen kertolaskijan lisäksi kertolaskija voidaan toteuttaa myös kombinatorisena, jolloin kertolaskuoperaatio ei vie useita kellojaksoja, mutta kriittinen polku on pidempi, mikä johtaa pidempään läpimenoviiveeseen ja pienempään maksimikellotaajuuteen. Nykyaikaisissa FPGA-piireissä on ns. hard macroja eli kiinteitä, monimutkaisempia logiikkayksiköitä, joita tarvitaan usein. Tyypillisimmät tällaiset yksiköt ovat muisti- ja kertolaskijayksiköt. Yksiköt ovat hyvin optimoituja, ja koska ne ovat kiinteitä, ei niiden sisäisestä rakenteesta koidu ylimääräistä reititystai logiikkaviivettä kuten muuten FPGA:lla. Edellisessä tehtävässä purkamassasi paketissa annetaan valmiina kombinatorinen, 5-bittinen kertolaskija comb_5bit_mul.vhd, ja koodi, joka saa synteesityökalun käyttämään sisäistä kertolaskijaa, embedded_mul.vhd. Käynnistä Quartus kuten edellisessä tehtävässä. Avaa projekti comb_vs_emb, joka löytyy samasta hakemistosta edellisen tehtävän tiedostojen kanssa. Projekti sisältää vain lähdetiedostot ilman graafista näkymää ja ilman ylintä tasoa. Klikkaa oikealla näppäimellä tiedostoa comb_5bit_mul.vhd Files-välilehdellä ja valitse Set as Top-Level Entity. Tämä tekee 5-bittisestä kombinatorisesta kertolaskijasta ylimmän tason suunnittelun. Käännä projekti (compile design, CTRL + L). Kun käännös on valmis, tutki Compilation Reportia. 2.1 Kuinka monta logiikkaelementtiä (LE) tarvitaan tähän 5-bittiseen kombinatoriseen kertojaan? Ota esille Timing Analyzer -> tpd nähdäksesi listan kriittisimmistä poluista ajoituksen näkökulmasta. Kriittinen polku, joka heikoimpana lenkkinä määrittää samalla koko kertolaskijan viiveen, on ensimmäisenä listassa. 2.2 Mikä on tämän kertolaskijan viive? Seuraavaksi tutustumme, mitä FPGA-piirille tarkalleen ottaen menee ja mistä viiveet siis johtuvat. Quartuksessa on muutama työkalu, joilla polkuja voidaan tarkastella. RTL Viewer: Avaa RTL Viewer valitsemalla Tools -> Netlist Viewers -> RTL Viewer. RTL Viewer näyttää synteesityökalun VHDL-koodin perusteella tekemän digitaalilogiikan. Lohkojen sisään pääsee tuplaklikkaamalla. Chip Planner: Avaa Chip Planner valitsemalla Tools -> Chip Planner (Floorplan and chip editor). Chip Planner näyttää koko FPGA-piirin ja logiikkaelementtien sijainnin siellä. Valitsemalla "Task: Post- Compilation Editing" (ikkunan oikeasta yläkulmasta) voit nähdä myös reititetyt johtimet keltaisina. Zoomaa lähemmäs tutustuaksesi siihen, miten Fitter (eli Place & Route) on sijoitellut ja reitittänyt logiikkaelementit piirille. Logiikkaelementtiinkin pääsee sisälle. Kun Compilation Reportin ajoitusanalysaattorin polkulistassa klikkaat jotakin polkua, vaikkapa kriittistä polkua, hiiren kakkosnäppäimellä, voit Locate-toiminnon avulla etsiä polun em. työkalujen avulla piiriltä. Kokeile etsiä kriittinen polku RTL Vieweristä ja Chip Plannerista tämän toiminnon avulla.

Seuraavaksi klikkaa kakkosnäppäimellä projektin tiedostoista embedded_mul.vhd:tä ja tee siitä Top- Level Entity. Nyt synteesityökalu käyttää sitä suunnitteluna, ja aiempi vhdl-tiedosto yksinkertaisesti jää käyttämättä. Käännä projekti jälleen (CTRL + L). 2.3 Kuinka monta logiikkaelementtiä tarvitaan, kun käytetään sisäänrakennettua kertolaskijaa? 2.4 Kuinka monta sisäänrakennettua kertolaskijaa piiriin jää vielä jäljelle? 2.5 Mikä on tämän kertolaskijan viive? Katso vielä RTL Vieweristä ja Chip Plannerista, miltä tämäntyyppinen kertolaskija näyttää. 2.6 Kumpaa kertojaa sinä käyttäisit?