4. Miniprojekt
Naredi digitalni sistem, ki v realnem času računa enačbo krožnice in prikazuje točke znotraj kroga s podanim polmerom na VGA monitorju.
4.1 Izračun krožnice
Naloga
Komponento za računanje enačb kroga naredi na osnovi kvadrirnika z vodilom AXI.
- med zunanje priključke dodaj poleg vodila AXI še signale za povezavo s komponento VGAsinh: rgbin, xy, en in rgb
- napiši proces, ki ugotovi ali se točka (x,y) nahaja znotraj kroga s polmerom a: x*x + y+y < a*a
Signale za koordinate točke izlušči iz vhodnega vektorja xy in jih kvadriraj. Polmer naj bo povezan na register vodila AXI in v kodi naj se izračuna kvadrat (a2), kot pri vaji s kvadrirnikom.
- definiraj logiko za določitev barve izhodne točke: če se točka nahaja znotraj kvadrata na zaslonu (en='1') in še znotraj kroga, naj gre na izhod rgb neka konstantna vrednost (npr. "111111"), sicer pa naj izhod dobi vrednost vhoda rgbin.
Simulacija komponente
- preveri delovanje komponente s simulacijo. Uporabi testno strukturo test_krog.vhd.
Preglej signale na časovnem poteku simulacije, opazuj izhod rgb, ko se koordinata x spreminja med -8 in 8 in preglej vsebino izhodne datoteke slika.txt.
Poišči primeren izsek simulacije in shrani zaslonsko sliko za poročilo.
- Naredi sintezo komponente krog in si zapiši zasedenost vezja (Utilisation Report), posebej število LUT in registrov,
- zapakiraj vezje v komponento IP
4.2 Sistem
Naloga
Naredi celoten sistem in napiši kratek testni program za preizkus delovanja.
Poročilo
Napiši kratko poročilo, ki naj vsebuje:
- opis komponente krog in izsek iz VHDL kode, kjer se izvaja proces izračuna enačne broga in izhoda rgb.
- predstavitev delovanja komponente na izseku simulacije s komentarji in opis zasedenosti vezja po sintezi komponente.
- predstavitev sheme testnega sistema s kratko razlago.
- izsek iz programa v jeziku C s katerim ste preverili delovanje na razvojnem sistemu in kratka razlaga.