Dave, sorry for late reply.
Here is the code: entity Main is Port ( btn : in std_logic_vector(3 downto 0); sel : in std_logic_vector(7 downto 0);
TXD : out std_logic := '1'; RXD : in std_logic := '1'; led : out std_logic_vector(7 downto 0); CLK : in std_logic; RST : in std_logic := '0'; ann : out std_logic_vector(3 downto 0); lcdout : out std_logic_vector(7 downto 0)); end Main;
architecture Behavioral of Main is
------------------------------------------------------------------------
-- Component Declarations
------------------------------------------------------------------------ component UARTcomponent Port ( TXD : out std_logic := '1'; RXD : in std_logic; CLK : in std_logic; --Master Clock DBIN : in std_logic_vector (7 downto 0); --Data Bus in DBOUT : out std_logic_vector (7 downto 0);--Data Bus out RDA : inout std_logic; --Read Data Available TBE : inout std_logic := '1'; --Transfer Bus Ready RD : in std_logic; --Read Strobe WR : in std_logic; --Write Strobe PE : out std_logic; --Parity Error Flag FE : out std_logic; --Frame Error Flag OE : out std_logic; --Overwrite Error Flag RST : in std_logic := '0'); --Master Reset end component;
component LCDcomponent Port ( an3 : out std_logic; an2 : out std_logic; an1 : out std_logic; an0 : out std_logic; lcddisplay : out std_logic_vector(7 downto 0); datain : in std_logic_vector(7 downto 0)); end component;
------------------------------------------------------------------------
-- Local Type Declarations
------------------------------------------------------------------------
type mainState is ( idle, receive, initSendX, sendX, waitSendX, initSendY, sendY, waitSendY);
-- type sendStates is (
-- sendX,
-- sendY,
-- sendDir,
-- sendAction,
-- sendIdle);
-- signal sendState, sendNextState : sendStates := sendIdle;
------------------------------------------------------------------------
-- Signal Declarations
------------------------------------------------------------------------ signal dbInSig : std_logic_vector(7 downto 0); signal dbOutSig: std_logic_vector(7 downto 0); signal rdaSig : std_logic; signal tbrSig : std_logic; signal rdSig : std_logic; signal wrSig : std_logic; signal peSig : std_logic; signal feSig : std_logic; signal oeSig : std_logic;
signal state : mainState := idle; signal stNext : mainState; signal X : std_logic_vector(7 downto 0) := "00110010"; signal Y : std_logic_vector(7 downto 0) := "00110100"; signal direction: std_logic_vector(2 downto 0) := "110"; signal action : std_logic_vector(1 downto 0) := "11";
signal UARTReady : std_logic := '0'; signal clock : std_logic := '0'; signal reset : std_logic := '0'; signal dataReady : std_logic := '0';
shared variable send : std_logic := '0';
------------------------------------------------------------------------
-- Module Implementation
------------------------------------------------------------------------
begin
LCD: LCDcomponent port map ( an3 => ann(3), an2 => ann(2), an1 => ann(1), an0 => ann(0), lcddisplay => lcdout, datain => dbOutSig);
UART: Uartcomponent port map ( TXD => TXD, RXD => RXD, CLK => CLK, DBIN => dbInSig, DBOUT=> dbOutSig, RDA => rdaSig, TBE => tbrSig, RD => rdSig, WR => wrSig, PE => peSig, FE => feSig, OE => oeSig, RST => RST);
SET_DATA: process(btn, sel) begin if btn(0) = '1' then --reset reset