[Coco] [Color Computer] USB project

jdaggett at gate.net jdaggett at gate.net
Sat Jul 30 08:10:16 EDT 2005


James

FF80 to FF8F is decoded with the following Boolean Eq. using a 12 input and gate 
and 4 invertors.

A15*A14*A13*A12*A11*A10*A9*A8*A7*/A6*/A5*A4

where "*" is and function and "/" is not function


Asynchronous VHDL code is 

--FILE NAME: IO_control.vhdl
--ENTITY NAME: IO_control
--ARCHITECTURE NAME: behavioral
--REVISION: alpha 0.1	7/25/2005
--
--DESCRIPTION: decodes the address range for the 8 IO select pins. 
--                          The user IO peripheral will use the lower four bits of the 16 bit 
--                          address and the appropriate IO select line to map the peripheral 
--                          device. 
--    Circuit uses 11 LUTs. 
--
-- AUTHOR: James Daggett
-- PROJECT: COCO3 in a Chip.  
-- NOTES: Written for synthesis using XST.
-- HISTORY:
--*****************************************************************************
--  to dos:  Since these outputs will ultimately go to an IOB pin the 'OFF' in the IOB 
--  will latch the IO selects on the rising edge of the E clock. Then pass to the 
OBUF.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity IO_control is
    Port ( MPU_address : in std_logic_vector(15 downto 4);
           Eclk : in std_logic;
           IO_FF00 : out std_logic;
           IO_FF10 : out std_logic;
           IO_FF20 : out std_logic;
           IO_FF30 : out std_logic;
           IO_FF40 : out std_logic;
           IO_FF50 : out std_logic;
           IO_FF60 : out std_logic;
           IO_FF70 : out std_logic);
end IO_control;

architecture Behavioral of IO_control is

-- signal declarations
signal A15 : std_logic;    
signal A14 : std_logic;
signal A13 : std_logic;
signal A12 : std_logic;
signal A11 : std_logic;
signal A10 : std_logic;
signal A9  : std_logic;
signal A8  : std_logic;
signal A7  : std_logic;
signal A6  : std_logic;
signal A5  : std_logic;
signal A4  : std_logic;			

begin

--signal assignments
A15 <= MPU_address(15);
A14 <= MPU_address(14);
A13 <= MPU_address(13);
A12 <= MPU_address(12);
A11 <= MPU_address(11);
A10 <= MPU_address(10);
A9  <= MPU_address(9);
A8  <= MPU_address(8);
A7  <= MPU_address(7);
A6  <= MPU_address(6);
A5  <= MPU_address(5);
A4  <= MPU_address(4);


IO_FF00 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and (not A6) and (not A5) and (not A4);

IO_FF10 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and (not A6) and (not A5) and A4;

IO_FF20 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and (not A6) and A5 and (not A4);

IO_FF30 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and (not A6) and A5 and A4;

IO_FF40 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and A6 and (not A5) and (not A4);

IO_FF50 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and A6 and (not A5) and A4;

IO_FF60 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and A6 and A5 and (not A4);

IO_FF70 <=  A15 and A14 and A13 and A12 and A11 and A10 and A9 and A8 and 
(not A7) and A6 and A5 and A4;

end Behavioral;

from my Coco 3  on a chip project. Code is synthesizable for Xilinx XST 
synthesizer. Should synthesize and drop into any Xilinx part. In a Spartan2e it only 
takes up 11 LUTs (Lookup Tables), the building blocks of FPGAs.

james

On 30 Jul 2005 at 3:09, James Diffendaffer wrote:

To:             	ColorComputer at yahoogroups.com
From:           	"James Diffendaffer" <jdiffendaffer at yahoo.com>
Date sent:      	Sat, 30 Jul 2005 03:09:44 -0000
Subject:        	Re: [Coco] [Color Computer] USB project
Copies to:      	Send reply to:  	ColorComputer at yahoogroups.com,
	CoCoList for Color Computer Enthusiasts 
<coco at maltedmedia.com>
	<mailto:coco-
request at maltedmedia.com?subject=unsubscribe>
	<mailto:coco-
request at maltedmedia.com?subject=subscribe>

> The chip uses a full byte address range just for it's registers.
> (example FF80-FF8F) That's a lot if I don't want it to interfere with
> anything else.





More information about the Coco mailing list