|
Next: Mixer Unit
Up: Control Board
Previous: Output Assign Module
  Contents
Transport Control Module
The VHDL code for the transport control decode GAL is shown below:
-----------------------------------------------------------------------------
-- DACS : Distributed Audio Control System
--
-- Copyright (C) 1997 Stephen Scott Richardson
-----------------------------------------------------------------------------
-- File: transp.vhd
-- Date: 03.13.97
-- Target: Atmel ATF16V8B
-----------------------------------------------------------------------------
-- Transport control board pbus address decoding GAL
--
-- pbus addx function dir (from uC)
-- ==================================================
-- 0x17 7 segment 1 ena out
-- 0x18 7 segment 2 ena out
-- 0x19 7 segment 3 ena out
-- 0x20 led enable out
-- 0x33 button nena in
-- 0x50 encoder nena in
-----------------------------------------------------------------------------
ENTITY transp_decode IS
PORT (
addx_in : IN bit_vector (6 DOWNTO 0);
nlatch_in : IN bit;
nread_write_in : IN bit;
seg7_1_ena_out : OUT bit;
seg7_2_ena_out : OUT bit;
seg7_3_ena_out : OUT bit;
led_ena_out : OUT bit;
btn_nena_out : OUT bit;
enc_nena_out : OUT bit;
nsense_out : OUT bit
);
-- Force package and pinout
ATTRIBUTE part_name of transp_decode:entity is "C16V8";
ATTRIBUTE pin_numbers of transp_decode:entity is
"nread_write_in:1 nlatch_in:2 addx_in(0):3 addx_in(1):4
addx_in(2):5 addx_in(3):6 addx_in(4):7 addx_in(5):8
addx_in(6):9 nsense_out:12 led_ena_out:13 seg7_3_ena_out:14
enc_nena_out:15 btn_nena_out:16 seg7_2_ena_out:17
seg7_1_ena_out:18";
END transp_decode;
ARCHITECTURE behavior OF transp_decode IS
BEGIN
PROCESS (nlatch_in, addx_in, nread_write_in)
BEGIN
IF nlatch_in = '0' AND nread_write_in = '1'
AND addx_in = "0010111" THEN
-- pbus 0x17
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '1'; -- 7seg 1 ena ACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
ELSIF nlatch_in = '0' AND nread_write_in = '1'
AND addx_in = "0011000" THEN
-- pbus 0x18
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '1'; -- 7seg 2 ena ACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
ELSIF nlatch_in = '0' AND nread_write_in = '0'
AND addx_in = "0110011" THEN
-- pbus 0x33 (read)
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '0'; -- btn nena ACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
ELSIF nlatch_in = '0' AND nread_write_in = '0'
AND addx_in = "1010000" THEN
-- pbus 0x50 (read)
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '0'; -- enc nena ACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
ELSIF nlatch_in = '0' AND nread_write_in = '1'
AND addx_in = "0011001" THEN
-- pbus 0x19
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '1'; -- 7seg 3 ena ACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
ELSIF nlatch_in = '0' AND nread_write_in = '1'
AND addx_in = "0100000" THEN
-- pbus 0x20
nsense_out <= '0'; -- pbus nsense ACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '1'; -- led ena ACTIVE
ELSE
-- not active
nsense_out <= '1'; -- pbus nsense INACTIVE
seg7_1_ena_out <= '0'; -- 7seg 1 ena INACTIVE
seg7_2_ena_out <= '0'; -- 7seg 2 ena INACTIVE
btn_nena_out <= '1'; -- btn nena INACTIVE
enc_nena_out <= '1'; -- enc nena INACTIVE
seg7_3_ena_out <= '0'; -- 7seg 3 ena INACTIVE
led_ena_out <= '0'; -- led ena INACTIVE
END IF;
END PROCESS;
END behavior;
The pinout for the transport control decode GAL is shown below:
C16V8A
__________________
nread_write_in =| 1| |20|* not used
nlatch_in =| 2| |19|* not used
addx_in_0 =| 3| |18|= seg7_1_ena_out
addx_in_1 =| 4| |17|= seg7_2_ena_out
addx_in_2 =| 5| |16|= btn_nena_out
addx_in_3 =| 6| |15|= enc_nena_out
addx_in_4 =| 7| |14|= seg7_3_ena_out
addx_in_5 =| 8| |13|= led_ena_out
addx_in_6 =| 9| |12|= nsense_out
not used *|10| |11|* not used
__________________
Steve Richardson
2000-07-06
|
Table of Contents
[Whole document in PDF 1.9MB]
[more photos and information]
|