Gå til innhold

Hjelp med finne feil i VHDL-kode


Anbefalte innlegg

Har ett program som skal vise klokkeslett på LCD-display, dette er programmert i VHDL, med QUARTUS 5.

Koden:

 

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.ALL;

ENTITY lab3 IS
PORT
(
 clk      	: IN	STD_LOGIC;
 reset_disp    	: IN	STD_LOGIC;
 reset_klokke    : IN	STD_LOGIC;
 q      	: IN	STD_LOGIC_VECTOR(9 downto 0));
END lab3;

ARCHITECTURE a OF lab3 IS

component timer_24 is
Port(clk,reset  :IN std_logic;
   sek9,sek5,min9,min5,time9,time2  :BUFFER std_logic_vector ( 3 downto 0));
end component;

component clk_div IS

PORT
(
 clock_25Mhz    : IN	STD_LOGIC;
 clock_1MHz    : OUT	STD_LOGIC;
 clock_100KHz  	: OUT	STD_LOGIC;
 clock_10KHz    : OUT	STD_LOGIC;
 clock_1KHz    : OUT	STD_LOGIC;
 clock_100Hz    : OUT	STD_LOGIC;
 clock_10Hz    : OUT	STD_LOGIC;
 clock_1Hz    : OUT	STD_LOGIC);

END component;

TYPE STATE_TYPE IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,
     s10,s11,s12,s13,s14,s15,s16,
     s17,s18,s19,s20,s21);

SIGNAL state            : STATE_TYPE;
signal sek99, sek55, min99, min55, time99, time22  	: std_logic_vector (3 downto 0);
signal klokke            : std_logic;

BEGIN

u1: clk_div PORT MAP (clock_25MHz => clk, clock_10Hz => klokke);
u2: timer_24 port map (clk=> klokke, reset => reset_klokke, sek9 => sek99,
        sek5 => sek55, min9 => min99 ,min5 => min55, 
        time9 => time99, time2 => time22);

PROCESS (clk, reset)
BEGIN
 IF reset_disp = '0' THEN
 	state <= s0;
 ELSE 
 
 IF clk'EVENT AND clk = '1' THEN
 	
 	CASE state IS
   WHEN s0 => s1;
   WHEN s1 => s2;
   WHEN s2 => s3;
   WHEN s3 => s4;
   WHEN s4 => s5;
   WHEN s5 => s6;
   WHEN s6 => s7;
   WHEN s7 => s8;
   WHEN s8 => s9;
   WHEN s9 => s10;
   WHEN s10 => s11;
   WHEN s11 => s12;
   WHEN s12 => s13;
   WHEN s13 => s14;
   WHEN s14 => s15;
   WHEN s15 => s16;
   WHEN s16 => s17;
   WHEN s17 => s18;
   WHEN s18 => s19;
   WHEN s19 => s20;
   WHEN s20 => s21;
   WHEN s21 => s13;
   
   	
   	
 	END CASE;
 END IF;
END PROCESS;

WITH state SELECT
 q	<=	"0000111000"  WHEN	s0,
   "0000001110"  WHEN	S1,
   "0000000110"  WHEN	S2,
   "1001001011"  WHEN	S3,  --k
   "1001001100"  WHEN  S4,  --L
   "1001001111"  WHEN	S5,  --O  
   "1001001011"  WHEN	S6,  --k
   "1001001011"  WHEN	S7,  --k
   "1001111110"  WHEN	S8,  --A
   "1001100000"  WHEN	S9,  --SPACE/MELLOMROM
   "1001000101"  WHEN	S10, --E
   "1001010010"  WHEN	S11, --R
   "1000111010"  WHEN	s12, --:
   "0011000000"  WHEN	S13, --LINJESKIFT
   "100011" & time22  WHEN  s14, --Time1
   "100011" & time99  WHEN	s15, --Time2
   "1000111010"  WHEN	s16, --: 
   "100011" & min55	WHEN  s17, --min1
   "100011" & min99  WHEN  s18, --min2
   "1000111010"  WHEN	s19, --: 
   "100011" & sek55  WHEN  s20, --sek1
   "100011" & sek99  WHEN  s21, --sek2
   
   
   

END a;

 

Feilmeldingen ligger som vedllagt bilde.

Hva er feilen??

post-19689-1130413349_thumb.jpg

Endret av Furyfax
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...