Ändringar mellan två versioner
Här visas ändringar i "VHDL-program med Quartus (sw)" mellan 2014-11-03 12:22 av William Sandqvist och 2014-11-03 12:23 av William Sandqvist.
Visa < föregående | nästa > ändring.
VHDL-program med Quartus (sw)
sw VHDL-program med Quartus
[IMAGE] QuartusTutor.pdf
[IMAGE]
Välj rätt programversion - i skolan finns flera olika installerade under startmenyn!
Altera 13.0.1.232 Web edition\ Quartus II Web Edition 13.0.1.232\ Quartus II 13.0sp1 (32bit)
[IMAGE]
Starta Quartus. Du behöver ingen licens och inte heller köpa något. Blir Du inte direkt erbjuden att starta New Project Wizard, så kan Du även välja det alternativet från File-menyn.
[IMAGE]
Introduction Klicka på Next.
[IMAGE]
Project Name and Directory
I skolan måste hela projektet ligga i en mapp på ditt H:\, tex. H:\MAXwork (hemma på ditt C:\, tex. C:\MAXwork)Name: codelockTop-Level Entity: codelock(OBS namnet codelock måste "matcha" det namn Du senare anger som entity i din VHDL-fil)
Gå vidare med Next.
[IMAGE]
Add files Vi har inga filer att lägga till projektet, så vi går vidare med Next.
[IMAGE]
Family and Device Settings Här anger vi vilket chip vi tänker använda under laborationen.
Family: MAX3000A Available devices: EPM3032ALC44-10
Gå vidare med Next.
[IMAGE]
EDA tools setting Här kan man skapa sammanhang med programverktyg från andra leverantörer. Vi kommer att simulera med programmet ModelSim men det behöver vi inte ange. Gå vidare med Next.
[IMAGE]
Summary, sammanfattning. Här ser Du en sammanfattning av dina val, avsluta "Wizard" med Finish.
[IMAGE]
Projektet har skapats [IMAGE]
VHDL-koden [IMAGE]
Skapa en blank fil för VHDL-koden. File, New, VHDL File.
Kopiera Mall-programmet lockmall.vhd och klistra in det i Quartus texteditor.
library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity codelock is port( clk: in std_logic; K: in std_logic_vector(1 to 3); R: in std_logic_vector(1 to 4); q: out std_logic_vector(4 downto 0); UNLOCK: out std_logic ); end codelock; architecture behavior of codelock is subtype state_type is integer range 0 to 31; signal state, nextstate: state_type; begin nextstate_decoder: -- next state decoding part process(state, K, R) begin case state is when 0 => if (K = "001" and R ="0001") then nextstate <= 1; else nextstate <= 0; end if; when 1 => if (K = "001" and R = "0001") then nextstate <= 1; elsif (K = "000" and R = "0000") then nextstate <= 2; else nextstate <= 0; end if; when 2 to 30 => nextstate <= state + 1; when 31 => nextstate <= 0; end case; end process; debug_output: -- display the state q <= conv_std_logic_vector(state,5); output_decoder: -- output decoder part process(state) begin case state is when 0 to 1 => UNLOCK <= '0'; when 2 to 31 => UNLOCK <= '1'; end case; end process; state_register: -- the state register part (the flipflops) process(clk) begin if rising_edge(clk) then state <= nextstate; end if; end process; end behavior;
[IMAGE] lockmall.vhd
[IMAGE]
Observera att entity i VHDL-filen ska matcha projektets Top Level Entity!
Spara filen med: File, Save As och som VHDL-fil. Namnet kan vara codelock.vhd (eller annat). Add File to current project skall vara förbockat!
Analysis and Synthesis
[IMAGE]
[IMAGE]
När man har nyskriven kod är det onödigt att köra hela verktygskedjan, risken är stor att det kan finnas felaktigheter längs vägen.
Från början kör man bara Analysis & Synthesis.
[IMAGE]
Start Compilation
[IMAGE]
[IMAGE]
Start Compilation kör hela verktygskedjan.
[IMAGE]
Varningarna handlar om "verktyg" som saknas i vår programversion men som vi inte behöver. ( Antalet varningar kan variera lite med programversion, detta är ingen anledning till oro ).