Till KTH:s startsida Till KTH:s startsida

VHDL-program med Quartus (sw)

sw VHDL-program med Quartus

  

pdf  QuartusTutor.pdf

quartussoftware.gif

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)

dontbuyx.gif

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.

newprojectwizard.gif


Introduction 
Klicka på Next.

newprojwizard.gif


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.

newprojwizard1.gif


Add files 
Vi har inga filer att lägga till projektet, så vi går vidare med Next.

addfiles.gif


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.

devicesettings.gif


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.

edasetting.gif


Summary, sammanfattning. 
Här ser Du en sammanfattning av dina val, avsluta "Wizard" med Finish.

newprojwisardsummary.gif



Projektet har skapats

quartuscodelockproject.gif


VHDL-koden

newvhdlfile.gif

Skapa en blank fil för VHDL-koden. FileNewVHDL 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;

  vhdlfile  lockmall.vhd   ( text.gif lockmall.txt)

vhdlsaveas.gif

Observera att entity i VHDL-filen ska matcha projektets Top Level Entity!

Spara filen med: FileSave As och som VHDL-fil. Namnet kan vara codelock.vhd (eller annat). 
Add File to current project skall vara förbockat!


Analysis and Synthesis

analysesynthesisicon.gif

analysesynthesis.gif

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.


analysesynthesisok.gif


Start Compilation

startcompilation.gif

startcompilation.gif

Start Compilation kör hela verktygskedjan.

compilationsuccess.gif

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

Lärare William Sandqvist skapade sidan 3 november 2014

Lärare William Sandqvist ändrade rättigheterna 3 november 2014

Kan därmed läsas av alla och ändras av alla inloggade användare.