[Home](index.html) | Quartus | [Blink](blink.htm) | [Simulacija](modelsim.htm) # Osnove programa Quartus Prime Predstavili bomo najbolj osnovne korake idelave RTL projekta v programu Intel Quartus Prime. V mapi projekta so poleg izvorne kode (.vhd) še vsaj tri ključne datoteke: * projekt.qpf, glavna datoteka z opisom projekta, * projekt.qsf, nastavitve FPGA, definicije priključkov, vključene datoteke... * de0.sdc, uporabniške nastavitve: parametri ure ## Nov projekt Prikazali bomo uporabo orodja Quartus na primeru projekta z opisom seštevalnika. Projekt za FPGA na razvojni plošči je najbolje začeti s predlogo, kjer so definirani parametri vezja in omejitve. Na lokalnem disku naredi novo mapo (npr. c:\projekt\add) in kopiraj v mapo datoteke iz predloge projekta za razvojno ploščo DE0 Nano: [DE0_sistem.zip](DE0_sistem.zip). Z dvoklikom na **sistem.qpf** odpri program Quartus. Pomembno je, da pred odpiranjem programa razširimo (odpakiramo) datoteke v mapo na disku - če poženemo Quartus kar z dvoklikom znotraj datoteke ZIP, projekta ne bomo odprli z vsemi nastavitvami! Najprej nastavi ime glavne entitete: odpri Assignments > Settings, poišči General in v Top-level entity vnesi `add`. ![](./img/Quartus_set1.png) Nato klikni New in izberi VHDL file, tako da se odpre urejevalnik, kamor vnesi opis vezja. Za začetek si bomo pomagali s čarovnikom Edit > Insert Template. Odpri VHDL > Full Designs > Arithmetic > Adders > Unsigned Adder in klikni gumb **Insert** in zapri okno. V urejevalniku spremeni ime vezja iz unsigned_adder v add in shrani datoteko kot add.vhd. ```vhdl -- Quartus Prime VHDL Template -- Unsigned Adder library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity add is generic ( DATA_WIDTH : natural := 8 ); port ( a : in unsigned ((DATA_WIDTH-1) downto 0); b : in unsigned ((DATA_WIDTH-1) downto 0); result : out unsigned ((DATA_WIDTH-1) downto 0) ); end entity; architecture rtl of add is begin result <= a + b; end rtl; ``` Pred prevajanjem projekta preverimo ali imamo v orodju Quartus vse prav nastavljeno: ime glavne entitete se mora ujemati z imenom entity v datoteki in imenom datoteke v projektu. Če želimo preveriti katere datoteke so v projektu, izberemo v oknu Projekt Navigator opcijo Files: ![](./img/navigator.png) Pogosta začetniška zmota je, da orodje Quartus prevaja datoteko, ki je trenutno odprta v urejevalniku. V resnici se prevedejo le datoteke, ki so vključene v projekt. Če imamo v urejevalniku datoteko, ki ni vključena v projekt, jo dodamo z izbiro Project > Add Current File to Project. Datoteke odstranimo iz projekta z desnim klikom na ime datoteke in izbiro Remove File from Project. ## Analiza in sinteza vezja Prevajanje vezija je zahteven proces in traja dolgo, zato je smiselna izvedba prevajanja po korakih in preverjanje delovanja s [simulacijo](modelsim.htm). Cilj prevajanja je prevorba datotek z opisom vezja (*.vhd) v datoteke za nastavitev programirljivega vezja (*.sof, SRAM Object File). Potek prevajanja je sestavljen iz: * Analysis & Synthesis, analiza opisa vezja, sinteza gradnikov RTL, optimizacija in tehnološka preslikava * Fitter, preslikava gradnikov v elemente vezja FPGA in povezovanje * Assembler, izdelava datoteke za programiranje Kadar želimo le preveriti ali je opis vezja brez napak in primeren za sintezo, izberemo korak prevajanja: Start Analysis & Synthesis (Ctrl+K). Program javi morebitne napake v oknu Messages (okno odpremo in zapremo z **alt+3**). Po tem koraku lahko pregledamo gradnike na nivoju RTL iz katerih bo sestavljeno vezje: Tools > Netlist Viewers > RTL Viewer. ![](./img/quartus_rtl.png) Celotno prevajanje izvedemo s Processing > Start Compilation (Ctrl+L).