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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [adm/] [cl_ac701/] [rtl/] [ctrl_adsp_v2_decode_data_cs.vhd] - Blame information for rev 47

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 47 dsmv
---------------------------------------------------------------------------------------------------
2
--
3
-- Title       : ctrl_adsp_v2_decode_data_cs
4
-- Author      : Dmitry Smekhov,Ilya Ivanov
5
-- Company     : Instrumental System
6
--
7
-- Version     : 1.1
8
---------------------------------------------------------------------------------------------------
9
--
10
-- Description :  Модуль декодирования сигналов чтения из тетрады для Virtex2
11
--
12
---------------------------------------------------------------------------------------------------
13
--
14
--      Version 1.1 17.06.2005
15
--                              Удалены атрибуты RLOC и компоненты FMAP
16
--
17
---------------------------------------------------------------------------------------------------
18
 
19
library IEEE;
20
use IEEE.STD_LOGIC_1164.all;
21
use ieee.std_logic_arith.all;
22
 
23
-- synopsys translate_off
24
library ieee;
25
use ieee.vital_timing.all;
26
-- synopsys translate_on
27
 
28
library unisim;
29
use unisim.VCOMPONENTS.all;
30
 
31
 
32
entity ctrl_adsp_v2_decode_data_cs is
33
        generic(
34
                trd                     : in integer;                   -- номер тетрады
35
                reg                     : in integer                    -- номер регистра
36
                                                                                        -- 0 - STATUS
37
                                                                                        -- 1 - DATA
38
                                                                                        -- 2 - CMD_ADR
39
        );
40
        port (
41
                reset           : in std_logic;                 -- 0 - сброс
42
                clk                     : in std_logic;                 -- тактовая частота
43
                cmd_data_en     : in std_logic;                 -- 1 - разрешение декодирования CMD_DATA
44
                adr                     : in std_logic_vector( 4 downto 0 );     -- шина адреса
45
                rd                      : in std_logic;                                                 -- 0 - чтение данных
46
                data_cs         : out std_logic                                                 -- 0 - чтение данных
47
        );
48
end ctrl_adsp_v2_decode_data_cs;
49
 
50
 
51
architecture ctrl_adsp_v2_decode_data_cs of ctrl_adsp_v2_decode_data_cs is
52
 
53
signal cs0      : std_logic;    -- 1 - совпадение номера тетрады
54
signal cs1      : std_logic;    -- 0 - чтение данных
55
 
56
component fmap is
57
        port(
58
                i1, i2, i3, i4  : in std_logic;
59
                o                               : in std_logic
60
        );
61
end component;
62
 
63
--attribute rloc        : string;
64
--attribute rloc        of fmap : component is "X0Y0";
65
----attribute rloc      of xcs1 : label is "R0C0.S0";
66
--attribute rloc        of xd   : label is "X0Y0";
67
 
68
begin
69
 
70
-- дешифрация регистров STATUS, DATA, CMD_ADR
71
gen0: if( reg/=3 ) generate
72
 
73
cs0 <='1' when adr( 4 downto 2 )=conv_std_logic_vector( trd, 3 ) else '0';
74
 
75
 
76
cs1 <='0' when   adr( 1 downto 0 )=conv_std_logic_vector( reg, 2 )
77
                                and rd='0' and  cs0='1'
78
                                else '1'  after 1 ns;
79
--xcs0: fmap port map( o=>cs0, i1=>adr(2), i2=>adr(3), i3=>adr(4), i4=>'0' );
80
 
81
end generate;
82
 
83
-- дешифрация регистра CMD_ADR
84
gen3: if( reg=3 ) generate
85
 
86
cs0 <='1' when adr( 4 downto 2 )=conv_std_logic_vector( trd, 3 )
87
                           and cmd_data_en='1' else '0';
88
 
89
 
90
cs1 <='0' when   adr( 1 downto 0 )=conv_std_logic_vector( reg, 2 )
91
                                and rd='0' and  cs0='1'
92
                                else '1'  after 1 ns;
93
--xcs0: fmap port map( o=>cs0, i1=>adr(2), i2=>adr(3), i3=>adr(4), i4=>cmd_data_en );
94
 
95
end generate;
96
 
97
--xcs1: fmap port map( o=>cs1, i1=>cs0, i2=>rd, i3=>adr(0), i4=>adr(1) );
98
xd:       fd   port map( q=>data_cs, c=>clk, d=>cs1 );
99
 
100
 
101
end ctrl_adsp_v2_decode_data_cs;

powered by: WebSVN 2.1.0

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