VHDL-piirikuvaus Ja Simulointi Quartus II Ja ModelSim Altera Edition .

Transcription

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 1/9VHDL-piirikuvaus ja simulointi Quartus II jaModelSim Altera Edition -ohjelmillaTässä dokumentissa opastetaan, miten AUTO1010 Digitaalitekniikan perusteet -kurssin VHDLtehtävissä tarvittavia ohjelmia käytetään.Melkein kaikki toiminnot tehdään Quartus II -ohjelmassa, johon luodaan projekti. Projekti ontavallaan säiliö, joka sisältää organisoidusti tarvittavat piirikuvaukset, testipenkit, asetukset ja muuttiedostot.Seuraavassa esimerkissä kuvataan kahden sisääntulon ja yhden ulostulon piiri VHDL:llä. Piiritoteuttaa XOR-funktion.Simuloidaan piiriä tekemällä sille testipenkki VHDL:llä ja ajamalla simulaatio ModelSim AlteraEdition -ohjelmalla.Lopuksi toteutetaan piiri FPGA-piirillä käyttäen DE2-kehitysalustaa. FPGA:lla sisääntulojaohjataan valintakytkimillä ja ulostulo esitetään punaisella valodiodilla.1. Käynnistä Quartus II -ohjelma (versio 9).1.1. Jos ohjelma kysyy lisenssiä, hae lisenssitiedosto (license.dat) kansiosta: C:\altera\2. Luo uusi projekti: File - New Project Wizard.2.1. Luo omaan kansioosi uusi hakemisto my2xor ja valitse se working directoryksi. Quartusosaa myös itse luoda kansion, jos kirjoitat uuden kansionimen working directory-kohtaan.Opiskelijoiden verkkokansiot eivät välttämättä toimi (osalla toimii osalla ei), koska ilmeisestiverkkolevy ei anna Quartuksen tai ModelSimin kirjoittaa niihin uusia tiedostoja. Käytä tällöinmuistitikkua (voi olla hidas) tai C:\altera -kansiota. Jälkimmäisessä tapauksessa ota lopuksikopio tiedostoista itsellesi ja poista tiedostot koneelta.2.2. Aseta projektin ja top-levelin nimiksi myös my2xor, jolloin myöhemmin on helppo löytääoikea projekti, kun kansion ja projektin nimet ovat samat.Jos sinulla on jokin aiempi projekti, voit hakea sieltä asetukset (Use existing projectsettings ), jolloin osa myöhemmistä vaiheista jää pois.2.3. Valitse DE2-kehitysalustalla käytettävä piiri: Cyclone II: EP2C35F672C6.3. Kirjoita VHDL-kuvaus piiristä:3.1. Luo uusi VHDL-tiedosto: File - New - Design Files - VHDL File3.2. Kirjoita VHDL-koodi, esim:library IEEE;use IEEE.std logic 1164.all;entity my2xor isport(x : in std logic vector(1 downto 0);z : out std logic);

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 2/9end my2xor;architecture my2xor arch of my2xor isbeginz x(1) xor x(0);end my2xor arch;3.3. Tallenna kirjoittamasi tekstitiedosto: File - Save As, nimeä my2xor.vhd4. Tarkistetaan asetukset: Assignments - Settings:- Files: Tässä näkyvät projektissa mukana olevat tiedostot. Ainakin pitäisi my2xor.vhd olla.- Device: FPGA-piirin malli ja asetukset. Asetetaan käyttämättömät pinnit korkearesistanssiseentilaan: Device and Pin Options - Unused Pins - As input tri-stated.- EDA Tool Settings à Simulation à Toolname: ModelSim-Altera, Format for outputnetlist: VHDL, output directory: simulation/modelsim.- OK5. Käännä VHDL-kuvaus: Start Analysis & Synthesis. (Ks. Kuva 1.) Korjaa tarvittaessa virheet.Kuva 1. VHDL-kuvauksen kääntäminen ja vastaava pikavalintapainike (ympyröity).6. Tutkitaan käännösraporttia.- VHDL-kuvauksen toteuttaminen vie yhden logiikkaelementin ja kolme liitintä.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 3/9- Tutkitaan piirikaaviota (Kuva 2): Tools - Netlist Viewers - RTL Viewer. Tämä eivälttämättä ole lopullinen, optimointien jälkeinen toteutus, mutta mahdollistaa visuaalisentarkistuksen, että piiri oikeanlainen.z 0x[1.0]zKuva 2. Quartus II:n luoma piirikaavio.- Optimoidun tuloksen näkee toisesta kuvaajast: Tools - Netlist Viewers - Technology MapViewer (Post-Mapping).7. Kerrotaan Quartukselle, missä simulaattoriohjelma on.7.1. Etsi ModelSim-Altera-ohjelman käynnistyskuvake. Avaa siitä hiiren oikealla painikkeellavalikko ja avaa Properties. Kopioi Target-kohdasta .exe -tiedoston hakemistopolku kuvan 3mukaisesti.Kuva 3. Exe-tiedoston hakemistopolun kopioiminen.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 4/97.2. Avaa Quartuksesta Tools à Opions.7.3. Mene välilehdelle EDA Tool Options.7.4. Liitä ModelSim-Alteran osoite oikeaan kohtaan (ks. Kuva 4).Kuva 4. ModelSim-Alteran hakemistopolun lisääminen.8. Simuloidaan piiri:8.1. Luodaan ensin ModelSimiä varten hakemistorakenne. Valitse Tools à Run EDASimulation Tool à EDA RTL Simulation. Quartus käynnistää ModelSimin automaattisesti. Tälläkertaa voit sulkea ModelSimin välittömästi.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 5/9Kuva 5. ModelSimin käynnistys Quartuksesta.8.2. Kirjoitetaan VHDL-testipenkki.8.3. Luo uusi VHDL-tiedosto: File - New - Design Files - VHDL File8.4. Kirjoita VHDL-koodi, esim:library ieee;use ieee.std logic 1164.all;entity my2xor tb isend my2xor tb;architecture arch of my2xor tb iscomponent my2xor isport(x : in std logic vector(1 downto 0);z : out std logic);end component;signal x test : std logic vector(1 downto 0);signal z test : std logic;constant period : time : 10 ns;beginu1 : my2xor port map(x test, z test);testi: process

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 6/9beginx test "00";wait for period;x test "01";wait for period;x test "10";wait for period;x test "11";wait for period;wait;end process;end arch;8.5. Tallenna testipenkki kansioon ./simulation/modelsim nimellä my2xor tb.vhd.8.6. Muuta asetuksiin, mikä testipenkki on käytössä (Kuva 6): Assignments à Settings àEDA Tool Settings à Simulation: NativeLink setting: Compile test bench.Hae oikea testipenkkitiedosto: Test Benches à New . Anna testipenkin nimeksi:my2xor tb. Anna top levelin nimeksi: my2xor tb. Design instance name in test bench:u1.Hae testipenkkitiedosto my2xor tb.vhd ja paina Add (Katso Kuva 7). Paina kolmesti OK.Kuva 6. Testipenkin asettaminen asetuksiin.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 7/9Kuva 7. Testipenkin tietojen syöttäminen8.7. Käynnistetään simulointi (ModelSim ei saa olla auki):Tools à Run EDA Simulation Tool à EDA RTL Simulation.Jos testipenkissä on syntaksivirheitä, niitä voi korjata joko ModelSimissä tai Quartuksessa.8.8. Paina – -merkkiä (zoom out), kunnes kuva on sopiva (Kuva 8). Tarkista simulaation tulos.8.9. Sulje ModelSim.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 8/9Kuva 8. Simulaation tulos.

Janne KoljonenVaasan yliopistoAUTO1010 Digitaalitekniikan perusteetQuartus II ja ModelSim: VHDL-simulointiPäivitetty: 5.12.2014Sivu: 9/9Simulointi on nyt valmis. Seuraavat vaiheet liittyvät FPGA-syntetisointiin.’9. Konfiguroidaan VHDL-kuvauksen porttien ja FPGA-piirin liittimien (nastojen) välinenvastaavuus:9.1. Assignments - Pin Planner: (Node name, Location):- (x(0), PIN N25),- (x(1), PIN N26),- (z, PIN AE23).On myös kaksi muuta tapaa määritellä porttien ja FPGA-liittimien vastaavuus, kuin määritellä nePin Plannerissä (tapa 1).Tapa 2: VHDL-attribuutitKirjoitetaan arkkitehtuuriin esim. seuraavasti:attribute chip pin : string;attribute chip pin of x : signal is "N26, N25";attribute chip pin of z : signal is "AE23";Tapa 3: csv-tiedosto (comma separated values)csv-tiedosto, jossa määritellään tietyn kehitysalustan FPGA-liittimien nimet löytyy esimerkiksikehitysalustan mukana tulevalta CD:ltä. Tiedoston voi ladata Quartus-projektiin kohdasta:Assignments à Import Assignments.Tiedostossa annetaan kullekin nastalle VHDL-nimi sekä FPGA-nastan nimi. Jos siis käyttää csvtiedoston mukaisia nimiä Top Level VHDL -entiteetissä, porttien ja nastojen yhteyttä ei tarvitseenää erikseen määrittää.Nyt portti x:n tilalle pitäisi määritellä SW : in std logic vector(1 downto 0);ja portti z:n tilalle pitäisi määritellä LEDR : in std logic vector(0 downto 0);Eli yksittäinen bittikin pitää käsitellä vektorina.10. Tehdään syntetisoitava käännös: Processing - Start Compilation.11. Ohjelmoidaan kuvaus FPGA-piirille: Tools - Programmer. Valitse Hardware-valikosta USBblaster ja paina Start.12. Testaa DE2-pöydällä piirin toiminta.

Quartus II ja ModelSim: VHDL-simulointi - Tutkitaan piirikaaviota (Kuva 2):Tools - Netlist Viewers - RTL Viewer. Tämä ei välttämättä ole lopullinen, optimointien jälkeinen toteutus, mutta mahdollistaa visuaalisen tarkistuksen, että piiri oikeanlainen. Kuva 2.Quartus II:n luoma piirikaavio.