Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "VHDL-program med Quartus (sw)" mellan 2014-11-03 10:43 av William Sandqvist och 2014-11-03 12:21 av William Sandqvist.

Visa < föregående | nästa > ändring.

VHDL-program med Quartus (sw)

VHDL-program med Quartus [IMAGE]¶

[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 ).¶