59
ELEKTRONSKI FAKULTET U NIŠU Katedra za ELEKTRONIKU Predmet: PROJEKTOVANJE VLSI SE M M I INAR S S K K I I RAD Profesor: Prof.dr. MilunkaDamnjanović Student: Negovan Stanković Broj indeksa: 9793

UPRAVLJANJE MEŠALICOM ZA BETON u VHDL-u

Embed Size (px)

DESCRIPTION

Projektovanje čipa u FPGA tehnologiji pomoću jezika za opis hardwera VHDL. Pomoću čipa se vrši upravljanje mešalicom za beton . Proces rada mešalice se na ovaj način automatizije.

Citation preview

ELEKTRONSKI FAKULTET U NIU Katedra za ELEKTRONIKU Predmet: PROJEKTOVANJE VLSI

SEMINARSKI RAD

Profesor: Prof.dr. MilunkaDamnjanovi Student: Negovan Stankovi Broj indeksa: 9793

1.PROJEKTNI ZADATAK

Projektovati integrisani sistem ija je funkcija upravljanje mealicom za beton. Mealici su dostupna tri tipa peska (razliite granulacije), cementni prah i voda. Zapreminski odnos komponenata u smei za beton moe se zadati spolja kao celobrojni umnoak zapremine osnovnog kontejnera koji se nalazi na otvoru za toenje sastojaka betona. Kapacitet mealice je maksimalno 50 jedinica peska i cementa plus odgovarajua koliina vode. Mealica prvo uzima pesak i cement, pa posle meanja u trajanju od 1 min, uzme vodu i sve mea jo 5 minuta. Posle toga, beton je spreman, ali ako nije pritisnuto dugme za toenje betona, nastavlja sa meanjem sve dok sedugme ne pritisne. Startovanje mealice vri radnik. ip treba da bude testabilan. Raspored pinova usvojiti proizvoljno. Rad treba da sadri opis funkcije svakog bloka na VHDL-u, emu implementacije koja je rezultat opisa, talasne oblike napona koji dokazuju ispravnost implementacije, projekat layout-a, i tekstualna objanjenja.

PREDMETNI NASTAVNIK, Prof.dr Milunka Damnjanovi

2

2.UVOD

U uvodnom delu bie uvedeni osnovni pojmovi i opisane najvanije aktivnosti koje obuhvata sloena delatnost projektovanja elektronskih kola. U procesu projektovanja elektronskih kola se na osnovu opisa eljene funkcije kola generie potpuna dokumentacija za proizvodnju istog. Kolo moe da bude opisano u tri domena: ponaanja, strukture i u fizikom domenu. Kada kaemo ponaanje mislimo na nain kako kolo (ili sistem) i njegovi delovi reaguje u odnosu sa njegovom okolinom. Drugim reima, ponaanjem zovemo preslikavanje ulaza u izlaz. Rezultat projektovanja projekat, u ovom sluaju, predstavlja funkcionalni opis koji sadri pomenuto preslikavanje. Kada kaemo struktura mislimo na skup komponenata koje se povezuju i koje ine sistem. Drugim reima, struktura predstavlja arhitekturu datog sistema kada se iskazuje kao veza svojih elemenata. Za opis strukture esto se koristi tzv. netlista. Netlista je, u stvari, spisak veza kojima su pojedinano pridrueni elementi. Ponekad se koristi i njen komplement: spisak elemenata sa oznakama veza na njihovim prikljucima. Najzad, kada kaemo fiziki domen, govorimo o opisu naina kako e sistem biti proizveden. Akronim VHDL oznaava Very Hihg Speed Integrated Ciruits Hardware Description Language. VHDL moe da se primenjuje u svim fazama projektovanja: opis, verifikaciju (simulaciju), sintezu i dokumentovanje. Osnovna prednost jeste mogunost jednostavnog opisa projekta na viim nivoima apstrakcije. Nastao je iz potrebe da se popravi komunikacija me u projektantima koji rade na razvoju istog integrisanog kola. Budui da razvoj tehnologije namee nove zahteve jeziku IEEE komitet za standardizaciju svakih pet godina razmatra primedbe koje stiu od korisnika VHDL-a kako bi se poveala efikasnost jezika. Postoji vie naina da se opie ista funkcija a da automatska sinteza rezultira istovetnim hardverom. Pri tome neki od opisa su krai a neki dui. Pored toga, zavisno od primenjinih konstrukcija i naredbi, istu funkciju mogu da realizuju razliiti hardveri, pri emu su jedni jednostavniji od drugih. Naravno, postoje i potpuno neeljene kategorije opisa, a to su one koje ne daju eljenu funkciju kola. Da bi se one eliminisale, neophodno je simulacijom verifikovati opis pre njegovog prevo enja u hardver. Postoje tri stila opisa projekta u VHDL-u. To su: - Strukturni opis (structural) - Opis toka podataka (data flow) - Opis ponaanja (behavioral) Strukturni opis podrazumeva da nam je struktura arhitekture sistema na nivou logikih blokova poznata. Opis ponaanja ne razlikuje se mnogo od opisa toka podataka, naroito kada su u pitanju manja kola. Zasniva se na algoritamskom opisu bloka pri emu se koristi definisanje procesa da bi se opisale sekvencijalne aktivnosti. Slino drugim programskim jezicima i u VHDL-u balansiranje izme u fleksibilnosti i mogunosti zahteva odre enu disciplinu od strane korisnika time to uvodi striktna pravila. Ona se odnose na nain deklarisanja tipova signala i na pravila koja definiu nain opisa i mesto pojavljivanja odre enih naredbi. Iako ova pravila na prvi pogled mogu da izgledaju zamreno, njihova prava prednost dolazi do izraaja kod opisa sloenih kola.

3

3.ARHITEKTURA SISTEMA I PRINCIP RADA

Slika1. blok dijagram sitema

4

Struktura sistema upravljanja mealicom za beton je prikazana blok dijagramom na slici1. Princip rada je sledei:Prvo se vri upis podataka u RAM iz raunara preko RS232 konektora . Kada se raunar prikljui na RS232 onda signal DCD dobija vrednost logike nule, dok se preko signala RXD podaci upisuju u RAM na nain kako je to odra eno u bloku upis_u_ram. Podaci koji se upisuju predstavljaju broj kontejnera sastojaka za spremanje betona. Sistem je napravljen tako da se mogu koristiti 8 razliitih kombinacija za spremanje betona. Za svaku kombinaciju potrebno je znati broj kontejnera za pesak tipa1, pesak tipa2, pesak tipa3, cementa i vode. Za broj kontejnera za svaki sastojak omoguen je memorijski prostor od 8 bita. Za svaku kombinaciju omoguen je memorijski prostor od od 8 bajta sa tim da pored 5 bajta koji su iskoriteni za smetanje informacije o sastojcima za spremanje betona postoje i 3 bajta u kojima se ne smeta nikakva informacija. Dakle za 8 kombinacija zauzetost memorije je 64 bajta. Kada je informacija o broju kontejnera sastojaka za spremanje betona uskladitena u memoriji onda se moe pristupiti odabiranju odre ene kombinacije za spremanje. To se vri pomou bloka odabir_spremanja pritiskom na eljeni taster. Kada je eljeni taster pritisnut na izlazu datog bloka signal req se dovodi na logiku jedinicu i magistrala code dobija odgovarajuu vrednost. Ovim poinje proces isitavanja memorije i postavljanje podataka o broju kontejnera u registre. Code predstavlja tri adresna bita memorije (5:3) dok se ostala 3 adresna bita (2:0) dobijaju kao izlaz iz bloka counter_4_bit. Razlog tome je to da je za isitavanje memorije potrebno 2 takta i to je ura eno upravo pomou ovog brojaa. Isitavanje iz memorije je mogue dok broja izbroji do 9, posle toga se preko 2 multipleksera i d flip flopa signal OE dovodi na logiku nulu ime je itanje sadraja memorije onemogueno. Kada je informacija o broju kontejnera smetena u 5 registra, respektivno za svaki sastojak, pomou konanog automata koji je opisan u bloku fsm1 vri se kontrola ubacivanja sadrine kontejnera u bubanj mealice. Konani automat upravlja tajmerom1, tajmerom2,komparatorom1,komparatorom2,komparatorom3, asinhronim brojaem koji broji kontejnere i asinhronim brojaem koji broji sastojke. Komparator1 daje logiku jedinicu na izlazu kada se ubaci poslednji sadraj iz kontejnera u mealicu za bilo koji sastojak.Posle ubacivanja peska u bubanj mealice komparator2 je na logikoj jedinici i kada se u bubanj mealice ubaci poslednji sadraj iz kontejnera za cement aktivira se signal start_rotate kojim se startuje motor za rotiranje bubnja mealice a ujedno i startuje tajmer1 koji broji u trajanju od jednog minuta i onda alje signal za ubacivanje vode u bubanj mealice. Kada se poslednji sadraj kontejnera vode sipa u bubanj onda se aktivira tajmer2, koji broji pet minuta i posle toga se aktivira signal ready koji signalizira da je beton spreman. Bubanj se i dalje okree a istovar mealice se inicira signalom empty_mixer. Princip funkcionisanja blokova pojedinano i njihov HDL kod bie prikazan i objanjen kasnije.

5

Globalni sistem sa svim ulaznim i izlaznim signalima prikazan je na slici2.

Slika2.globalni prikaz upravljake jedinice mealice

Upravljaka jedinica ima 9 ulaznih signala i 6 izlaznih signala.

Ulazni signali su sledei: Clk globalni takt signal za sinhronizaciju procesa upravljake jedinice; Rst globalni signal za resetovanje sistema; DCD signal koji oznaava da li je prikljuen sistem na PC preko RS232 konektora; RXD signal pomou kog se vri upis u RAM sistema;

- TASTER magistrala pomou koje se vri odabiranje odre ene kombinacije za spremanje betona; Empty signal koji oznaava kada je kontejner prazan; Full signal koji oznaava kada je kontejner pun; 6

-

Empty_mixer signal za pranjenje mealice kada je beton spreman; Test signal za testiranje ispravnosti sistema;

Izlazni signali su sledei: Ispravnost signal koji je u testabilnom reimu u stanju logike jedinice kada je sistem ispravan; Neispravnost signal koji je u testabilnom reimu u stanju logike nule kada je sistem ispravan; Ready signal koji signalizira kada je beton spreman; Req_empty signal kojim se zahteva pranjenje kontejnera; Req_fill signal kojim se zahteva punjenje kontejnera; Start_rotate signal kojim se startuje motor za okretanje bubnja mealice;

-

-

7

4.OPIS U VHDL-u I ULOGA BLOKOVA SISTEMA PONAOSOB

4.1.UPIS_U_RAM

Blok upis_u_ram se sastoji od vie pod blokova koji su prikazani na slici3. Njihova uloga je da generiu ulazne signale za upis podataka u memoriju. Princip rada ovog bloka je sledei: Podaci za upis se dopremaju bit po bit signalom RXD. Blok UART_Receiver prihvata ovu informaciju i na izlazu smeta paralelno prihvaene bajtove i signalom received oznaava kada se sledei bajt pojavio na izlazu SBUF. Blok prijem_za_ram prihvata bajt za upis i ukoliko je signal OE u stanju logike nule kao i signal DC taj bajt postavlja na izlaznu magistralu Data_upis. U bloku addr_upisa vri se odre ivanje adrese memorije za upis podataka na taj nain to se pri svakom primljenom batu adresa povea za jedana signal load_upis je u stanju logike jedinice im je signal DCD u stanju logike nule. Upis u memoriju je mogu samo ukoliko je signal OE na logikoj nuli odnosno ukoliko nije u toku itanje sadraja memorije i ukoliko je signal DCD u stanju logike nule odnosno ukoliko je raunar povezan na RS232 port.

Slika3.upis u ram 4.1.1. UART_Receiver 8

library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; -- clk=4.194304MHz -- signal Rst_n aktivan 0 -- Baud Rate=19200 bita/sec entity T51_UART_Receiver is port( SBUF: out std_logic_vector(7 downto 0); SC_Wr, Rst_n, Clk: in std_logic; Received : out std_logic; RXD: in std_logic ); end T51_UART_Receiver; architecture T51_UART_Receiver of T51_UART_Receiver is signal RX_ShiftReg: std_logic_vector(7 downto 0); signal RX_Filtered : std_logic; signal RX_Bit_Cnt: integer range 0 to 10; signal Baud16R: std_logic; signal BR_Tick_Cnt : std_logic_vector(3 downto 0); signal Bit_Phase: std_logic_vector(3 downto 0); signal Data_in: std_logic_vector(7 downto 0); begin Data_in'0'); -- Baud Rate tick -- signal Baud16R - 16x veci takt nego sto je Baud Rate BR_tick: process (Clk, Rst_n) begin if Rst_n = '0' then BR_Tick_Cnt '0', RADDR0 => address(0), RADDR1 => address(1), RADDR2=> address(2), RADDR3 => address(3), RADDR4 => address(4), RADDR5 => address(5), RADDR6 => address(6), RADDR7 => address(7), RBLKB => w_nr, RCLKS => r_clk, RDB => w_nr, WADDR0 => address(0), WADDR1 => address(1), WADDR2 => address(2), WADDR3 => address(3), WADDR4 => address(4), WADDR5 => address(5), WADDR6 => address(6), WADDR7 => address(7), WBLKB=> r_nw, WCLKS => w_clk, WRB => r_nw, DO0 => data1(0), DO1 => data1(1), DO2 => data1(2), DO3 => data1(3), DO4 => data1(4), DO5 => data1(5), DO6 => data1(6), DO7 => data1(7) );

end verzija_256B;

23

4.10. reg1b Registar u kome se smeta informacija o broju kontejnera za odgovarajui material. Imamo 5 ovakvih registara, za svaki materijal po jedan.

library IEEE; use IEEE.STD_LOGIC_1164.all; entity reg1B is port( CLK :in STD_LOGIC; EN : in STD_LOGIC; RST : in STD_LOGIC; B_IN : in STD_LOGIC_VECTOR(7 downto 0); B_OUT : out STD_LOGIC_VECTOR(7 downto 0) ); end reg1B;

architecture reg1B of reg1B is signal temp : STD_LOGIC; begin process (en,rst,clk) is begin if rst='1'then B_out