Bilaga VI

VHDL-kod till PLD

-- PLD adresskodning till olika enheter i DITAMA2

-- Grupp 9

 

library ieee;

use ieee.std_logic_1164.all;

ENTITY ADRESS IS

        PORT (

                             clk: in                   std_logic;

                             I: in std_logic_vector(3 downto 0);

                             U: out std_logic_vector(7 downto 0)

                             );

 

ATTRIBUTE pin_numbers OF ADRESS : ENTITY IS

"clk:1 I(0):2 I(1):3 I(2):4 I(3):5 "

&                          "U(0):23 U(1):22 U(2):21 U(3):20 U(4):19 U(5):18 U(6):17 U(7):16";

 

END ADRESS;

 

ARCHITECTURE beteende OF ADRESS IS

 

BEGIN

             process(clk)

             BEGIN

                   IF rising_edge(clk) THEN

                             IF I = "0000" THEN U<="01011000"; --Ingenting enablat-utgangslage,STANDBY

                             ELSIF I = "0001" THEN U<="01011001"; --Display RS=0, Enable=1

                             ELSIF I = "0010" THEN U<="01011010"; --Display RS=1

                             ELSIF I = "0011" THEN U<="01011011"; --Display RS=1, E=1

                             ELSIF I = "0100" THEN U<="01001100"; --medd1 REC. /WE-minne, /CS-AD

                             ELSIF I = "0101" THEN U<="00001100"; --medd1 REC. /CS-minne, /WE-minne, /CS-AD

                             ELSIF I = "0110" THEN U<="11001100"; --medd2 REC. /WE-minne, /CS-AD

                             ELSIF I = "0111" THEN U<="10001100"; --medd2 REC. /CS-minne, /WE-minne, /CS-AD

                             ELSIF I = "1000" THEN U<="01110100"; --medd1 PLAY. /OE-minne, /CS-DA

                             ELSIF I = "1001" THEN U<="00110100"; --medd1 PLAY. /CS-minne, /OE-minne, /CS-DA

                             ELSIF I = "1010" THEN U<="11110100"; --medd2 PLAY. /OE-minne, /CS-DA

                             ELSIF I = "1011" THEN U<="10110100"; --medd2 PLAY. /CS-minne, /OE-minne, /CS-DA

                             ELSE U<="01011000"; --Ingenting enablat, STANDBY. Om nagonting annat mot

                             END IF;                            --formodan skulle dyka in i PLDn

                   END IF;

              END process;

END beteende;