{"id":2320,"date":"2016-11-17T15:13:03","date_gmt":"2016-11-17T13:13:03","guid":{"rendered":"http:\/\/priit.ati.ttu.ee\/?page_id=2320"},"modified":"2017-10-25T13:25:45","modified_gmt":"2017-10-25T11:25:45","slug":"alu-ulessanne","status":"publish","type":"page","link":"http:\/\/priit.ati.ttu.ee\/?page_id=2320","title":{"rendered":"ALU \u00fclesanne"},"content":{"rendered":"<p style=\"text-align: right;\">\n    <!-- WP Last Modified by Dogan Ucar (https:\/\/www.dogan-ucar.de). -->\n    <!-- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;-->\n    <!-- 2016 - 2026 Dogan Ucar. -->Last modified: 2017-10-25 13:25:45<\/p>\n<h2>ALU disain ja s\u00fcntees<\/h2>\n<p>ALU ehk aritmeetika-loogika seade on tuttav juba <a href=\"http:\/\/www.pld.ttu.ee\/~teet\" target=\"_blank\" rel=\"noopener\">Arvutite <\/a>ainest.<\/p>\n<p>Antud praktikumi eesm\u00e4rgiks on iseseisvalt koostada VHDL keeles nelja operatsiooni teostav ning neljabitiseid arve t\u00f6\u00f6tlev ALU. Joonisel 1 on ALU struktuurskeem. ALU operatsioonid on igale tudengile ettem\u00e4\u00e4ratud ning leiab <a href=\"#task\">lehek\u00fclje l\u00f5pust<\/a>.<\/p>\n<div id=\"attachment_1180\" style=\"width: 564px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2014\/09\/joonis1.png\"><img aria-describedby=\"caption-attachment-1180\" loading=\"lazy\" class=\"wp-image-1180 size-full\" src=\"http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2014\/09\/joonis1.png\" alt=\"Joonis 1. ALU struktuurskeem.\" width=\"554\" height=\"543\" srcset=\"http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2014\/09\/joonis1.png 554w, http:\/\/priit.ati.ttu.ee\/wp-content\/uploads\/2014\/09\/joonis1-300x294.png 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/a><p id=\"caption-attachment-1180\" class=\"wp-caption-text\">Joonis 1. ALU struktuurskeem.<\/p><\/div>\n<h2>T\u00f6\u00f6 k\u00e4ik<\/h2>\n<ul>\n<li>M\u00f5ista operatsioone, mida sinu ALU peab teostama. Iga operatsioon ei pruugi teostamiseks kasutada m\u00f5lemat sisendit (A ja B).<\/li>\n<li>T\u00f6\u00f6 paremaks alustamiseks on eelnevalt juba valmis tehtud testpingi, topleveli ja funktsiooni 1 struktuur.\n<ul>\n<li><a href=\"http:\/\/priit.ati.ttu.ee\/I207\/toplevel.vhdl\" target=\"_blank\" rel=\"noopener\">OLEM<\/a> &#8211; ehk TOPLEVEL peaks sisaldama endas alamkomponente Funktsioon 1-4 ja multipleksor,;<\/li>\n<li><a href=\"http:\/\/priit.ati.ttu.ee\/I207\/testbench.vhdl\" target=\"_blank\" rel=\"noopener\">TESTPINK<\/a> &#8211; lisada teste, et k\u00f5ik funktsioonid saaks testitud v\u00e4hemalt 4 erineva andmekomplektiga;<\/li>\n<li><a href=\"http:\/\/priit.ati.ttu.ee\/I207\/func_1.vhdl\" target=\"_blank\" rel=\"noopener\">FUNKTSIOON 1<\/a> &#8211; n\u00e4idis funktsioon, v\u00e4ljund o&#8217;le omistatakse sisendi a v\u00e4\u00e4rtus.<\/li>\n<\/ul>\n<\/li>\n<li>Programmeeri ALU teostama vastavaid operatsioone.\n<ul>\n<li>ALU peab olema programmeeritud struktuurselt\u00a0(5 komponenti)\u00a0nagu n\u00e4idatud Joonisel 1.<\/li>\n<li>Funktsiooni 1 programmeerimisel v\u00f5ib kasutada teeki <strong><code class=\"vhdl\">std_logic_unsigned<\/code><\/strong> v\u00f5i\u00a0<strong><code class=\"vhdl\">std_logic_arith<\/code><\/strong>.<\/li>\n<\/ul>\n<\/li>\n<li>Programmeeri testpink nii, et iga operatsioon saaks testitud. <strong>\u00dchtlasi v\u00f5iks igal operatsioonil olla v\u00e4hemalt 4\u00a0testi.<\/strong> Soovituslik\u00a0on testida \u00fcks eriolukord (summeerides nulle) ja \u00fcks tavaline (2+2=4).<\/li>\n<li>Koostada n\u00f5utud vormis aruanne, mis peab sisaldama sisulist selgitust ALU t\u00f6\u00f6p\u00f5him\u00f5ttest ning teostatavatest operatsioonidest. ALU koodi copy-paste ilma p\u00f5hjaliku selgitusega = 0 punkti. Aruandes peaks olema eelk\u00f5ige olulisemad tudengi programmeeritud l\u00f5igud koodist ning nende selgitused lisaks \u00fcldisele \u00fclesande-ALU t\u00f6\u00f6p\u00f5him\u00f5tte\/kasutuse selgitusele. Funktsiooni 4 selgituseks lisada enda v\u00e4ljaarvutatud funktsiooni t\u00f5ev\u00e4\u00e4rtustabel.<\/li>\n<\/ul>\n<h2>\u00dclesannete kirjeldused<\/h2>\n<ol>\n<li>Funktsioon 1\n<ul>\n<li>A cmp B (v\u00f5rdlustehe) &#8211; Sisendite v\u00f5rdlemine. Kui A &gt; B v\u00e4ljund 0010, kui A = B v\u00e4ljund 0000, kui A &lt; B v\u00e4ljund 0001.<\/li>\n<li>A + B (aritmeetiline liitmine) &#8211; Sisendite A ja B summeerimine, \u00fclekannet madalamast j\u00e4rgust ei ole ning lippu \u00fclet\u00e4itumise kohta ei ole vaja.<\/li>\n<li>A &#8211; B (aritmeetiline lahutamine) &#8211; Sisendi B lahutamine sisendist A. Lihtsuse huvides olgu A alati suurem kui B, mis t\u00e4hendab, et laenulippu kasutada vaja ei ole.<\/li>\n<li>A, B cnt 1 &#8211; Sisenditest A ja B \u00fchtede loendamine. N\u00e4iteks A = 1100 ja B = 0111, siis v\u00e4ljund = 5.<\/li>\n<li>A, B cnt 0 &#8211; Sisenditest A ja B nullide loendamine. N\u00e4iteks A = 1100 ja B = 0111, siis v\u00e4ljund = 3.<\/li>\n<\/ul>\n<\/li>\n<li>Funktsioon 2\n<ul>\n<li>shr A (nihe paremale) &#8211; Sisendi A nihutamine \u00fchev\u00f5rra paremale ning vasakult tuleb sisse v\u00e4\u00e4rtus 0. N\u00e4iteks A = 0110 -&gt; shr (A) = 0011.<\/li>\n<li>shl A (nihe vasakule) &#8211; Sisendi A nihutamine \u00fchev\u00f5rra vasakule ning paremalt tuleb sisse v\u00e4\u00e4rtus 0. N\u00e4iteks A = 0110 -&gt; shl (A) = 1100.<\/li>\n<li>rol A (ringnihe vasakule) &#8211; Sisendi A nihutamine \u00fchev\u00f5rra vasakule ning paremalt tuleb sisse sisendi A k\u00f5ige k\u00f5rgem bitt. N\u00e4iteks A = 1001 -&gt; rol (A) = 0011.<\/li>\n<li>ror A (ringnihe paremale) &#8211; Sisendi A nihutamine \u00fchev\u00f5rra paremale ning vasakult tuleb sisse sisendi A k\u00f5ige madalam bit. N\u00e4iteks A = 1001 -&gt; ror (A) = 1100.<\/li>\n<\/ul>\n<\/li>\n<li>Funktsioon 3 &#8211; NB! B sisendi \u00fclemisi bitte peab eirama!\n<ul>\n<li>clr A, B (seada s\u00f5na A B-nda biti v\u00e4\u00e4rtuseks &#8216;0&#8217;) &#8211; Sisend B saab omada v\u00e4\u00e4rtusi (xx t\u00e4histab, et vastavate bittide v\u00e4\u00e4rtus meid ei huvita) xx00, xx01, xx10, xx11, mis m\u00e4\u00e4ravad \u00e4ra, mitmes bitt A-st keeratakse nulliks. N\u00e4iteks A = 1111, B = xx10 (k\u00fcmnendkoodis 2, ehk siis kolmas bitt), clr A, B = 1011.<\/li>\n<li>set A, B (seada s\u00f5na A B-nda biti v\u00e4\u00e4rtuseks &#8216;1&#8217;) &#8211; Sisend B saab omada v\u00e4\u00e4rtusi (xx t\u00e4histab, et vastavate bittide v\u00e4\u00e4rtus meid ei huvita) xx00, xx01, xx10, xx11, mis m\u00e4\u00e4ravad \u00e4ra, mitmes bitt A-st keeratakse \u00fcheks. N\u00e4iteks A = 0000, B = xx11 (k\u00fcmnendkoodis 3, ehk siis neljas bitt), set A, B = 1000.<\/li>\n<li>xor A, B (inverteerida s\u00f5na A B-nda biti v\u00e4\u00e4rtus) &#8211; Sisend B saab omada v\u00e4\u00e4rtusi (xx t\u00e4histab, et vastavate bittide v\u00e4\u00e4rtus meid ei huvita) xx00, xx01, xx10, xx11, mis m\u00e4\u00e4ravad \u00e4ra, mitmes bitt A-st keeratakse \u00fcmber. N\u00e4iteks A = 0110, B = xx01 (k\u00fcmnendkoodis 1, ehk siis teine bitt inverteeritakse), xor A, B = 0100.<\/li>\n<\/ul>\n<\/li>\n<li>Funktsioon 4\n<ul>\n<li>Programmeerida v\u00e4ljund O vastavalt tudengi <a href=\"http:\/\/www.diskmat.ee\/itk\/kaug\/itkodo.htm\" target=\"_blank\" rel=\"noopener\">harjutustunni kodut\u00f6\u00f6 \u00fclesande funktsiooniga<\/a>. Sisendina kasutada sisendit A, sisend B j\u00e4\u00e4b kasutamata. V\u00e4ljund v\u00f5ib olla nii t\u00f5ev\u00e4\u00e4rtustabeli p\u00f5hine kui ka loogika funktsioon (minimeeritud lahendus ei ole n\u00f5utud).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>\u00dclesannete tabel<\/h2>\n<p><a name=\"task\"><\/a><br \/>\n<iframe src=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vToBy1SjHZUEJl6zGoWvOP-CO-ECwKqlS_GZ1l6D7IiwM0khgon7Dno5rDOH1fJ1OcUAdP1HonxiulW\/pubhtml?gid=1975937204&amp;single=true&amp;widget=true&amp;headers=false\" width=\"1200\" height=\"1600\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ALU disain ja s\u00fcntees ALU ehk aritmeetika-loogika seade on tuttav juba Arvutite ainest. Antud praktikumi eesm\u00e4rgiks on iseseisvalt koostada VHDL keeles nelja operatsiooni teostav ning neljabitiseid arve t\u00f6\u00f6tlev ALU. Joonisel 1 on ALU struktuurskeem. ALU operatsioonid on igale tudengile ettem\u00e4\u00e4ratud ning leiab lehek\u00fclje l\u00f5pust. T\u00f6\u00f6 k\u00e4ik M\u00f5ista operatsioone, mida sinu ALU peab teostama. Iga operatsioon [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1075,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2320"}],"collection":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2320"}],"version-history":[{"count":23,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2320\/revisions"}],"predecessor-version":[{"id":2534,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2320\/revisions\/2534"}],"up":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/1075"}],"wp:attachment":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}