OpenCores
URL https://opencores.org/ocsvn/avr_hp/avr_hp/trunk

Subversion Repositories avr_hp

[/] [avr_hp/] [trunk/] [rtl/] [rtl_s3_cm4/] [io_adr_dec.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tobil
--************************************************************************************************
2
-- Internal I/O registers decoder/multiplexer for the AVR core
3
-- Version 1.11
4
-- Modified 05.06.2003
5
-- Designed by Ruslan Lepetenok
6
--************************************************************************************************
7
 
8
library IEEE;
9
use IEEE.std_logic_1164.all;
10
 
11
use WORK.AVRuCPackage.all;
12
 
13
entity io_adr_dec_cm4 is port (
14
                cp2_cml_1 : in std_logic;
15
                cp2_cml_2 : in std_logic;
16
 
17
          adr          : in std_logic_vector(5 downto 0);
18
          iore         : in std_logic;
19
          dbusin_ext   : in std_logic_vector(7 downto 0);
20
          dbusin_int   : out std_logic_vector(7 downto 0);
21
 
22
          spl_out      : in std_logic_vector(7 downto 0);
23
          sph_out      : in std_logic_vector(7 downto 0);
24
          sreg_out     : in std_logic_vector(7 downto 0);
25
          rampz_out    : in std_logic_vector(7 downto 0));
26
end io_adr_dec_cm4;
27
 
28
architecture RTL of io_adr_dec_cm4 is
29
 
30
signal dbusin_int_cml_out :  std_logic_vector ( 7 downto 0 );
31
signal dbusin_ext_cml_2 :  std_logic_vector ( 7 downto 0 );
32
signal dbusin_ext_cml_1 :  std_logic_vector ( 7 downto 0 );
33
signal spl_out_cml_2 :  std_logic_vector ( 7 downto 0 );
34
signal sph_out_cml_2 :  std_logic_vector ( 7 downto 0 );
35
signal sreg_out_cml_2 :  std_logic_vector ( 7 downto 0 );
36
signal sreg_out_cml_1 :  std_logic_vector ( 7 downto 0 );
37
 
38
begin
39
 
40
 
41
 
42
process(cp2_cml_1) begin
43
if (cp2_cml_1 = '1' and cp2_cml_1'event) then
44
        dbusin_ext_cml_1 <= dbusin_ext;
45
        sreg_out_cml_1 <= sreg_out;
46
end if;
47
end process;
48
 
49
process(cp2_cml_2) begin
50
if (cp2_cml_2 = '1' and cp2_cml_2'event) then
51
        dbusin_ext_cml_2 <= dbusin_ext_cml_1;
52
        spl_out_cml_2 <= spl_out;
53
        sph_out_cml_2 <= sph_out;
54
        sreg_out_cml_2 <= sreg_out_cml_1;
55
end if;
56
end process;
57
dbusin_int <= dbusin_int_cml_out;
58
 
59
 
60
-- SynEDA CoreMultiplier
61
-- assignment(s): dbusin_int
62
-- replace(s): dbusin_ext, spl_out, sph_out, sreg_out
63
 
64
dbusin_int_cml_out <= spl_out_cml_2   when (adr=SPL_Address  and iore='1') else
65
              sph_out_cml_2  when  (adr=SPH_Address  and iore='1') else
66
              sreg_out_cml_2 when  (adr=SREG_Address  and iore='1') else
67
              rampz_out when (adr=RAMPZ_Address and iore='1') else
68
              dbusin_ext_cml_2;
69
 
70
end RTL;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.