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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [projects/] [ac701_a200t_core/] [src/] [top/] [ac701_a200t_core.vhd] - Diff between revs 47 and 52

Only display areas with differences | Details | Blame | View Log

Rev 47 Rev 52
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Title       : ac701_a200t_core
-- Title       : ac701_a200t_core
-- Author      : Dmitry Smekhov
-- Author      : Dmitry Smekhov
-- Company     : Instrumental Systems
-- Company     : Instrumental Systems
-- E-mail      : dsmv@insys.ru
-- E-mail      : dsmv@insys.ru
--
--
-- Version     : 1.0
-- Version     : 1.0
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Description :        Проверка ядра PCI Express на модуле AC701 
-- Description :        Проверка ядра PCI Express на модуле AC701 
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
--      Version 1.0 17.02.2014
--      Version 1.0 17.02.2014
--                              Создан из ml605_lx240t_core
--                              Создан из ml605_lx240t_core
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
 
 
package ac701_a200t_core_pkg is
package ac701_a200t_core_pkg is
 
 
component ac701_a200t_core is
component ac701_a200t_core is
        generic (
        generic (
                is_simulation   : integer:=0     -- 0 - синтез, 1 - моделирование ADM
                is_simulation   : integer:=0     -- 0 - синтез, 1 - моделирование ADM
        );
        );
        port(
        port(
                ---- PCI-Express ----
                ---- PCI-Express ----
                pci_exp_txp         : out std_logic_vector(3 downto 0);
                pci_exp_txp         : out std_logic_vector(3 downto 0);
                pci_exp_txn         : out std_logic_vector(3 downto 0);
                pci_exp_txn         : out std_logic_vector(3 downto 0);
                pci_exp_rxp         : in std_logic_vector(3 downto 0);
                pci_exp_rxp         : in std_logic_vector(3 downto 0);
                pci_exp_rxn         : in std_logic_vector(3 downto 0);
                pci_exp_rxn         : in std_logic_vector(3 downto 0);
 
 
                sys_clk_p           : in std_logic;
                sys_clk_p           : in std_logic;
                sys_clk_n           : in std_logic;
                sys_clk_n           : in std_logic;
                sys_reset_n         : in std_logic;
                sys_reset_n         : in std_logic;
 
 
                ---- Светодиоды ----
                ---- Светодиоды ----
                gpio_led0                       : out std_logic;
                gpio_led0                       : out std_logic;
                gpio_led1                       : out std_logic;
                gpio_led1                       : out std_logic;
                gpio_led2                       : out std_logic;
                gpio_led2                       : out std_logic;
                gpio_led3                       : out std_logic;
                gpio_led3                       : out std_logic;
                gpio_led4                       : out std_logic
                gpio_led4                       : out std_logic
 
 
        );
        );
end component;
end component;
 
 
end package;
end package;
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_unsigned.all;
 
 
 
 
library unisim;
library unisim;
use unisim.vcomponents.all;
use unisim.vcomponents.all;
 
 
 
 
use work.adm2_pkg.all;
use work.adm2_pkg.all;
use work.cl_ac701_pkg.all;
use work.cl_ac701_pkg.all;
use work.trd_main_v8_pkg.all;
use work.trd_main_v8_pkg.all;
use work.trd_pio_std_v4_pkg.all;
use work.trd_pio_std_v4_pkg.all;
use work.trd_admdio64_out_v4_pkg.all;
use work.trd_admdio64_out_v4_pkg.all;
use work.trd_admdio64_in_v6_pkg.all;
use work.trd_admdio64_in_v6_pkg.all;
use work.trd_test_ctrl_m1_pkg.all;
use work.trd_test_ctrl_m1_pkg.all;
 
 
 
 
entity ac701_a200t_core is
entity ac701_a200t_core is
        generic (
        generic (
                is_simulation   : integer:=0     -- 0 - синтез, 1 - моделирование ADM
                is_simulation   : integer:=0     -- 0 - синтез, 1 - моделирование ADM
        );
        );
        port(
        port(
                ---- PCI-Express ----
                ---- PCI-Express ----
                pci_exp_txp         : out std_logic_vector(3 downto 0);
                pci_exp_txp         : out std_logic_vector(3 downto 0);
                pci_exp_txn         : out std_logic_vector(3 downto 0);
                pci_exp_txn         : out std_logic_vector(3 downto 0);
                pci_exp_rxp         : in std_logic_vector(3 downto 0);
                pci_exp_rxp         : in std_logic_vector(3 downto 0);
                pci_exp_rxn         : in std_logic_vector(3 downto 0);
                pci_exp_rxn         : in std_logic_vector(3 downto 0);
 
 
                sys_clk_p           : in std_logic;
                sys_clk_p           : in std_logic;
                sys_clk_n           : in std_logic;
                sys_clk_n           : in std_logic;
                sys_reset_n         : in std_logic;
                sys_reset_n         : in std_logic;
 
 
                ---- Светодиоды ----
                ---- Светодиоды ----
                gpio_led0                       : out std_logic;
                gpio_led0                       : out std_logic;
                gpio_led1                       : out std_logic;
                gpio_led1                       : out std_logic;
                gpio_led2                       : out std_logic;
                gpio_led2                       : out std_logic;
                gpio_led3                       : out std_logic;
                gpio_led3                       : out std_logic;
                gpio_led4                       : out std_logic
                gpio_led4                       : out std_logic
 
 
        );
        );
end ac701_a200t_core;
end ac701_a200t_core;
 
 
 
 
architecture ac701_a200t_core of ac701_a200t_core is
architecture ac701_a200t_core of ac701_a200t_core is
 
 
 
 
 
 
---- Тактовая частота внутренней шины ----
---- Тактовая частота внутренней шины ----
signal  clk                             : std_logic;
signal  clk                             : std_logic;
 
 
---- 0 - Сброс для тетрады MAIN ----
---- 0 - Сброс для тетрады MAIN ----
signal  reset_main              : std_logic;
signal  reset_main              : std_logic;
 
 
---- 0 - Сброс для всех тетрад кроме MAIN ----
---- 0 - Сброс для всех тетрад кроме MAIN ----
signal  reset                   : std_logic;
signal  reset                   : std_logic;
 
 
---- Шина адреса для подключения к узлу начального тестирования тетрады MAIN ----
---- Шина адреса для подключения к узлу начального тестирования тетрады MAIN ----
signal trd_host_adr             : std_logic_vector( 31 downto 0 ):=(others=>'0');
signal trd_host_adr             : std_logic_vector( 31 downto 0 ):=(others=>'0');
 
 
---- Шина данных, через которую производиться запись в регистры тетрады ----
---- Шина данных, через которую производиться запись в регистры тетрады ----
signal trd_host_data    : std_logic_array_16x64;
signal trd_host_data    : std_logic_array_16x64;
 
 
---- Шина данных, через которую производиться запись в регистры тетрады ----            
---- Шина данных, через которую производиться запись в регистры тетрады ----            
signal trd_host_cmd_data        : std_logic_array_16x16;
signal trd_host_cmd_data        : std_logic_array_16x16;
 
 
                ---- Комада управления для каждой тетрады ----
                ---- Комада управления для каждой тетрады ----
signal trd_host_cmd         : std_logic_array_16xbl_cmd;
signal trd_host_cmd         : std_logic_array_16xbl_cmd;
 
 
---- Выходы региста DATA от каждой тетрады ----
---- Выходы региста DATA от каждой тетрады ----
signal trd_data                 : std_logic_array_16x64:=(others=>(others=>'0'));
signal trd_data                 : std_logic_array_16x64:=(others=>(others=>'0'));
 
 
---- Выходы регистров STATUS, CMD_ADR, CMD_DATA от каждой тетрады ----
---- Выходы регистров STATUS, CMD_ADR, CMD_DATA от каждой тетрады ----
signal trd_cmd_data             : std_logic_array_16x16:=(others=>(others=>'1'));
signal trd_cmd_data             : std_logic_array_16x16:=(others=>(others=>'1'));
 
 
---- Запросы DMA от каждой тетрады
---- Запросы DMA от каждой тетрады
signal trd_drq                  : std_logic_array_16xbl_drq:=(others=>(others=>'0'));
signal trd_drq                  : std_logic_array_16xbl_drq:=(others=>(others=>'0'));
 
 
---- Запросы прерываения от каждой тетрады ----
---- Запросы прерываения от каждой тетрады ----
signal trd_irq                  : std_logic_array_16xbl_irq:=(others=>'0');
signal trd_irq                  : std_logic_array_16xbl_irq:=(others=>'0');
 
 
---- Сброс FIFO от каждой тетрады ----
---- Сброс FIFO от каждой тетрады ----
signal trd_reset_fifo   : std_logic_array_16xbl_reset_fifo:=(others=>'0');
signal trd_reset_fifo   : std_logic_array_16xbl_reset_fifo:=(others=>'0');
 
 
---- Запросы DMA от тетрады MAIN (после маршрутизации) ----
---- Запросы DMA от тетрады MAIN (после маршрутизации) ----
signal trd_main_drq             : std_logic_array_16xbl_drq:=(others=>(others=>'0'));
signal trd_main_drq             : std_logic_array_16xbl_drq:=(others=>(others=>'0'));
 
 
---- Запросы прерываения от тетрады MAIN (после маршрутизации) ----
---- Запросы прерываения от тетрады MAIN (после маршрутизации) ----
signal trd_main_irq             : std_logic_array_16xbl_irq:=(others=>'0');
signal trd_main_irq             : std_logic_array_16xbl_irq:=(others=>'0');
 
 
---- Регистры управления DMA ----
---- Регистры управления DMA ----
signal trd_main_sel_drq : std_logic_array_16x6:=(others=>(others=>'0'));
signal trd_main_sel_drq : std_logic_array_16x6:=(others=>(others=>'0'));
 
 
signal  test_mode               : std_logic;
signal  test_mode               : std_logic;
 
 
---- Комада управления для каждой тетрады ----
---- Комада управления для каждой тетрады ----
signal trd_trd_cmd          : std_logic_array_16xbl_cmd;
signal trd_trd_cmd          : std_logic_array_16xbl_cmd;
 
 
---- Флаги FIFO ----
---- Флаги FIFO ----
signal trd_flag_rd          : std_logic_array_16xbl_fifo_flag;
signal trd_flag_rd          : std_logic_array_16xbl_fifo_flag;
 
 
 
 
signal  di_mode1                : std_logic_vector( 15 downto 0 );
signal  di_mode1                : std_logic_vector( 15 downto 0 );
signal  di_data                 : std_logic_vector( 63 downto 0 );
signal  di_data                 : std_logic_vector( 63 downto 0 );
signal  di_data_we              : std_logic;
signal  di_data_we              : std_logic;
signal  di_flag_wr              : bl_fifo_flag;
signal  di_flag_wr              : bl_fifo_flag;
signal  di_start                : std_logic;
signal  di_start                : std_logic;
signal  di_fifo_rst             : std_logic;
signal  di_fifo_rst             : std_logic;
signal  di_clk                  : std_logic;
signal  di_clk                  : std_logic;
 
 
signal  do_mode1                : std_logic_vector( 15 downto 0 );
signal  do_mode1                : std_logic_vector( 15 downto 0 );
signal  do_data                 : std_logic_vector( 63 downto 0 );
signal  do_data                 : std_logic_vector( 63 downto 0 );
signal  do_data_cs              : std_logic;
signal  do_data_cs              : std_logic;
signal  do_flag_rd              : bl_fifo_flag;
signal  do_flag_rd              : bl_fifo_flag;
signal  do_start                : std_logic;
signal  do_start                : std_logic;
signal  do_fifo_rst             : std_logic;
signal  do_fifo_rst             : std_logic;
signal  do_clk                  : std_logic;
signal  do_clk                  : std_logic;
 
 
signal  clk200                  : std_logic;
signal  clk200                  : std_logic;
signal  freq0                   : std_logic;
signal  freq0                   : std_logic;
signal  freq1                   : std_logic;
signal  freq1                   : std_logic;
signal  freq2                   : std_logic;
signal  freq2                   : std_logic;
 
 
signal  led_h1                  : std_logic;
signal  led_h1                  : std_logic;
signal  led_h2                  : std_logic;
signal  led_h2                  : std_logic;
signal  led_h3                  : std_logic;
signal  led_h3                  : std_logic;
signal  led_h4                  : std_logic;
signal  led_h4                  : std_logic;
 
 
signal  led_h1_p                : std_logic;
signal  led_h1_p                : std_logic;
signal  led_h2_p                : std_logic;
signal  led_h2_p                : std_logic;
signal  led_h3_p                : std_logic;
signal  led_h3_p                : std_logic;
signal  led_h4_p                : std_logic;
signal  led_h4_p                : std_logic;
 
 
 
 
signal  tp1                             : std_logic;
signal  tp1                             : std_logic;
signal  tp2                             : std_logic;
signal  tp2                             : std_logic;
signal  tp3                             : std_logic;
signal  tp3                             : std_logic;
 
 
signal  px                              : std_logic_vector( 3 downto 1 );
signal  px                              : std_logic_vector( 3 downto 1 );
 
 
signal  clk30k                  : std_logic;
signal  clk30k                  : std_logic;
 
 
----------------- Константы ----------------------------------------
----------------- Константы ----------------------------------------
constant rom_main:  bl_trd_rom:=
constant rom_main:  bl_trd_rom:=
(
(
        0=>ID_MAIN,                      -- Идентификатор тетрады
        0=>ID_MAIN,                      -- Идентификатор тетрады
        1=>ID_MODE_MAIN,                -- Модификатор тетрады
        1=>ID_MODE_MAIN,                -- Модификатор тетрады
        2=>VER_MAIN,                    -- Версия тетрады
        2=>VER_MAIN,                    -- Версия тетрады
        3=>RES_MAIN,                    -- Ресурсы тетрады
        3=>RES_MAIN,                    -- Ресурсы тетрады
        4=>FIFO_MAIN,                   -- Размер FIFO, иммитируется FIFO 256x64
        4=>FIFO_MAIN,                   -- Размер FIFO, иммитируется FIFO 256x64
        5=>FTYPE_MAIN,                  -- Тип FIFO
        5=>FTYPE_MAIN,                  -- Тип FIFO
        6=>x"0100",                     -- Подключение тетрады
        6=>x"0100",                     -- Подключение тетрады
        7=>x"0001",                     -- Номер экземпляра
        7=>x"0001",                     -- Номер экземпляра
    8=>x"4953",                         -- Сигнатура ПЛИС ADM
    8=>x"4953",                         -- Сигнатура ПЛИС ADM
        9=>x"0200",                     -- Версия ADM
        9=>x"0200",                     -- Версия ADM
        10=>x"0100",                    -- Версия прошивки ПЛИС
        10=>x"0100",                    -- Версия прошивки ПЛИС
        11=>x"0000",                    -- Модификация прошивки ПЛИС
        11=>x"0000",                    -- Модификация прошивки ПЛИС
        12=>"0000000011000011", -- Используемые тетрады
        12=>"0000000011000011", -- Используемые тетрады
        13=>x"0000",                    -- Ресурсы ПЛИС
        13=>x"0000",                    -- Ресурсы ПЛИС
        14=>x"0000",                    -- Не используется
        14=>x"0000",                    -- Не используется
        15=>x"0000",                    -- Не используется
        15=>x"0000",                    -- Не используется
        16=>x"5507",                    -- Идентификатор базового модуля
        16=>x"5507",                    -- Идентификатор базового модуля
        17=>x"0200",                    -- Версия базового модуля
        17=>x"0200",                    -- Версия базового модуля
        18=>x"0000",                    -- Идентификатор субмодуля
        18=>x"0000",                    -- Идентификатор субмодуля
        19=>x"0000",                    -- Версия субмодуля
        19=>x"0000",                    -- Версия субмодуля
        20=>x"0107",                    -- Номер сборки прошивки
        20=>x"0001",                    -- Номер сборки прошивки
        31 downto 21 => x"0000" );
        31 downto 21 => x"0000" );
 
 
 
 
constant rom_dio_in:  bl_trd_rom:=
constant rom_dio_in:  bl_trd_rom:=
(
(
        0=>ID_DIO_IN,                    -- Идентификатор тетрады 
        0=>ID_DIO_IN,                    -- Идентификатор тетрады 
        1=>ID_MODE_DIO_IN,              -- Модификатор тетрады
        1=>ID_MODE_DIO_IN,              -- Модификатор тетрады
        2=>VER_DIO_IN,                  -- Версия тетрады
        2=>VER_DIO_IN,                  -- Версия тетрады
        3=>RES_DIO_IN,                  -- Ресурсы тетрады
        3=>RES_DIO_IN,                  -- Ресурсы тетрады
        4=>FIFO_DIO_IN,                 -- Размер FIFO
        4=>FIFO_DIO_IN,                 -- Размер FIFO
        5=>FTYPE_DIO_IN,                -- Тип FIFO
        5=>FTYPE_DIO_IN,                -- Тип FIFO
        6=>x"010D",                             -- Подключение тетрады
        6=>x"010D",                             -- Подключение тетрады
        7=>x"0001",                     -- Номер экземпляра
        7=>x"0001",                     -- Номер экземпляра
        31 downto 8 => x"0000");-- резерв
        31 downto 8 => x"0000");-- резерв
 
 
constant rom_dio_out:  bl_trd_rom:=
constant rom_dio_out:  bl_trd_rom:=
(
(
        0=>ID_DIO_OUT,                   -- Идентификатор тетрады 
        0=>ID_DIO_OUT,                   -- Идентификатор тетрады 
        1=>ID_MODE_DIO_OUT,             -- Модификатор тетрады
        1=>ID_MODE_DIO_OUT,             -- Модификатор тетрады
        2=>VER_DIO_OUT,                 -- Версия тетрады                                                        
        2=>VER_DIO_OUT,                 -- Версия тетрады                                                        
        3=>RES_DIO_OUT,                 -- Ресурсы тетрады
        3=>RES_DIO_OUT,                 -- Ресурсы тетрады
        4=>FIFO_DIO_OUT,                -- Размер FIFO
        4=>FIFO_DIO_OUT,                -- Размер FIFO
        5=>FTYPE_DIO_OUT,               -- Тип FIFO
        5=>FTYPE_DIO_OUT,               -- Тип FIFO
        6=>x"0C01",                             -- Подключение тетрады
        6=>x"0C01",                             -- Подключение тетрады
        7=>x"0001",                     -- Номер экземпляра
        7=>x"0001",                     -- Номер экземпляра
        31 downto 8 => x"0000");-- резерв               
        31 downto 8 => x"0000");-- резерв               
 
 
 
 
constant rom_test_ctrl:  bl_trd_rom:=
constant rom_test_ctrl:  bl_trd_rom:=
(
(
        0=>ID_TEST,                              -- Идентификатор тетрады 
        0=>ID_TEST,                              -- Идентификатор тетрады 
        1=>ID_MODE_TEST,                -- Модификатор тетрады
        1=>ID_MODE_TEST,                -- Модификатор тетрады
        2=>VER_TEST,                    -- Версия тетрады
        2=>VER_TEST,                    -- Версия тетрады
        3=>RES_TEST,                    -- Ресурсы тетрады
        3=>RES_TEST,                    -- Ресурсы тетрады
        4=>FIFO_TEST,                   -- Размер FIFO
        4=>FIFO_TEST,                   -- Размер FIFO
        5=>FTYPE_TEST,                  -- Тип FIFO
        5=>FTYPE_TEST,                  -- Тип FIFO
        6=>x"0000",                             -- Подключение тетрады
        6=>x"0000",                             -- Подключение тетрады
        7=>x"0001",                     -- Номер экземпляра
        7=>x"0001",                     -- Номер экземпляра
        31 downto 8 => x"0000");-- резерв               
        31 downto 8 => x"0000");-- резерв               
 
 
 
 
constant trd_rom        : std_logic_array_16xbl_trd_rom :=
constant trd_rom        : std_logic_array_16xbl_trd_rom :=
(
(
        0 => rom_main,
        0 => rom_main,
        1 => rom_test_ctrl,
        1 => rom_test_ctrl,
        2 => rom_empty,
        2 => rom_empty,
        3 => rom_empty,
        3 => rom_empty,
        4 => rom_empty,
        4 => rom_empty,
        5 => rom_empty,
        5 => rom_empty,
        6 => rom_dio_in,
        6 => rom_dio_in,
        7 => rom_dio_out,
        7 => rom_dio_out,
        others=> rom_empty      );
        others=> rom_empty      );
 
 
begin
begin
 
 
xled0:  obuf_s_16 port map( gpio_led0, '1' );
xled0:  obuf_s_16 port map( gpio_led0, '1' );
xled1:  obuf_s_16 port map( gpio_led1, led_h1_p );
xled1:  obuf_s_16 port map( gpio_led1, led_h1_p );
xled2:  obuf_s_16 port map( gpio_led2, led_h2_p );
xled2:  obuf_s_16 port map( gpio_led2, led_h2_p );
xled3:  obuf_s_16 port map( gpio_led3, led_h3_p );
xled3:  obuf_s_16 port map( gpio_led3, led_h3_p );
xled4:  obuf_s_16 port map( gpio_led4, led_h4_p );
xled4:  obuf_s_16 port map( gpio_led4, led_h4_p );
 
 
led_h1_p  <= not led_h1;
led_h1_p  <= not led_h1;
led_h2_p  <= not led_h2;
led_h2_p  <= not led_h2;
led_h3_p  <= not led_h3;
led_h3_p  <= not led_h3;
led_h4_p  <= not led_h4;
led_h4_p  <= not led_h4;
 
 
 
 
tp1 <= not tp1 when rising_edge( clk );
tp1 <= not tp1 when rising_edge( clk );
tp2 <= px(2);
tp2 <= px(2);
tp3 <= clk30k;
tp3 <= clk30k;
 
 
--btp1: obuf_f_16 port map( btp(1), tp1 );
--btp1: obuf_f_16 port map( btp(1), tp1 );
--btp2: obuf_f_16 port map( btp(2), tp2 );
--btp2: obuf_f_16 port map( btp(2), tp2 );
--btp3: obuf_f_16 port map( btp(3), tp3 );
--btp3: obuf_f_16 port map( btp(3), tp3 );
--
--
 
 
 
 
 
 
amb: cl_ac701
amb: cl_ac701
        generic map(
        generic map(
 
 
                CLKOUT6_DIVIDE  => 4,           -- 4 - частота системной шины 250 МГц
                CLKOUT6_DIVIDE  => 4,           -- 4 - частота системной шины 250 МГц
 
 
                ---- Константы тетрад ----
                ---- Константы тетрад ----
                trd_rom                 => trd_rom,
                trd_rom                 => trd_rom,
                ---- Разрешение чтения из регистра DATA ----
                ---- Разрешение чтения из регистра DATA ----
                trd_in                  => "0000000001000001",
                trd_in                  => "0000000001000001",
                ---- Разрешение чтения из регистра STATUS ----
                ---- Разрешение чтения из регистра STATUS ----
                trd_st                  => "0000000011000011",
                trd_st                  => "0000000011000011",
 
 
                is_simulation   => is_simulation        -- 0 - синтез, 1 - моделирование ADM
                is_simulation   => is_simulation        -- 0 - синтез, 1 - моделирование ADM
        )
        )
        port map(
        port map(
        ---- PCI-Express ----
        ---- PCI-Express ----
                txp                             => pci_exp_txp,
                txp                             => pci_exp_txp,
                txn                             => pci_exp_txn,
                txn                             => pci_exp_txn,
 
 
                rxp                             => pci_exp_rxp,
                rxp                             => pci_exp_rxp,
                rxn                             => pci_exp_rxn,
                rxn                             => pci_exp_rxn,
 
 
                mgt100_p                => sys_clk_p,   -- тактовая частота 100 MHz от PCI_Express
                mgt100_p                => sys_clk_p,   -- тактовая частота 100 MHz от PCI_Express
                mgt100_n                => sys_clk_n,
                mgt100_n                => sys_clk_n,
 
 
 
 
                bperst                  => sys_reset_n, -- 0 - сброс                                               
                bperst                  => sys_reset_n, -- 0 - сброс                                               
 
 
                p                               => px,
                p                               => px,
 
 
                led_h1                  => led_h1,      -- 0 - светится светодиод H1
                led_h1                  => led_h1,      -- 0 - светится светодиод H1
                led_h2                  => led_h2,      -- 0 - светится светодиод H2 
                led_h2                  => led_h2,      -- 0 - светится светодиод H2 
                led_h3                  => led_h3,      -- 0 - светится светодиод H3 
                led_h3                  => led_h3,      -- 0 - светится светодиод H3 
                led_h4                  => led_h4,      -- 0 - светится светодиод H4
                led_h4                  => led_h4,      -- 0 - светится светодиод H4
 
 
                ---- Внутренняя шина ----
                ---- Внутренняя шина ----
                clk_out                 => clk,                 -- тактовая частота
                clk_out                 => clk,                 -- тактовая частота
                reset_out               => reset_main,  -- 0 - сброс
                reset_out               => reset_main,  -- 0 - сброс
                test_mode               => test_mode,   -- 1 - тестовый режим
                test_mode               => test_mode,   -- 1 - тестовый режим
                clk30k                  => clk30k,              -- тактовая частота 30 кГц
                clk30k                  => clk30k,              -- тактовая частота 30 кГц
                clk200_out              => clk200,              -- тактовая частота 200 МГц
                clk200_out              => clk200,              -- тактовая частота 200 МГц
 
 
                ---- Шина адреса для подключения к узлу начального тестирования тетрады MAIN ----               
                ---- Шина адреса для подключения к узлу начального тестирования тетрады MAIN ----               
                trd_host_adr    => trd_host_adr( 15 downto 0 ),
                trd_host_adr    => trd_host_adr( 15 downto 0 ),
 
 
                ---- Шина данных, через которую производиться запись в регистры тетрады ----            
                ---- Шина данных, через которую производиться запись в регистры тетрады ----            
                trd_host_data   => trd_host_data,
                trd_host_data   => trd_host_data,
 
 
                ---- Шина данных, через которую производиться запись в регистры тетрады ----            
                ---- Шина данных, через которую производиться запись в регистры тетрады ----            
                trd_host_cmd_data=>trd_host_cmd_data,
                trd_host_cmd_data=>trd_host_cmd_data,
 
 
                ---- Комада управления для каждой тетрады ----          
                ---- Комада управления для каждой тетрады ----          
                trd_host_cmd    => trd_host_cmd,
                trd_host_cmd    => trd_host_cmd,
 
 
                ---- Выходы региста DATA от каждой тетрады ----
                ---- Выходы региста DATA от каждой тетрады ----
                trd_data                => trd_data,
                trd_data                => trd_data,
 
 
                ---- Выходы регистров STATUS, CMD_ADR, CMD_DATA от каждой тетрады ----
                ---- Выходы регистров STATUS, CMD_ADR, CMD_DATA от каждой тетрады ----
                trd_cmd_data    => trd_cmd_data,
                trd_cmd_data    => trd_cmd_data,
 
 
                ---- Запросы DMA от каждой тетрады ----
                ---- Запросы DMA от каждой тетрады ----
                trd_drq                 => trd_drq,
                trd_drq                 => trd_drq,
 
 
                ---- Запросы DMA от тетрады MAIN (после маршрутизации) ----
                ---- Запросы DMA от тетрады MAIN (после маршрутизации) ----
                trd_main_drq    => trd_main_drq,
                trd_main_drq    => trd_main_drq,
 
 
                ---- Регистры управления DMA ----
                ---- Регистры управления DMA ----
                trd_main_sel_drq=> trd_main_sel_drq,
                trd_main_sel_drq=> trd_main_sel_drq,
 
 
                ---- Сброс FIFO от каждой тетрады ----
                ---- Сброс FIFO от каждой тетрады ----
                trd_reset_fifo  => trd_reset_fifo,
                trd_reset_fifo  => trd_reset_fifo,
 
 
                ---- Запросы прерываения от тетрады MAIN (после маршрутизации) ----
                ---- Запросы прерываения от тетрады MAIN (после маршрутизации) ----
                trd_main_irq    => trd_main_irq
                trd_main_irq    => trd_main_irq
 
 
        );
        );
 
 
 
 
 
 
main: trd_main_v8
main: trd_main_v8
        port map
        port map
        (
        (
 
 
                -- GLOBAL
                -- GLOBAL
                reset                   => reset_main,
                reset                   => reset_main,
                clk                             => clk,
                clk                             => clk,
 
 
                -- T0            
                -- T0            
                adr_in                  => trd_host_adr( 6 downto 0 ),
                adr_in                  => trd_host_adr( 6 downto 0 ),
                data_in                 => trd_host_data(0),
                data_in                 => trd_host_data(0),
                cmd_data_in     => trd_host_cmd_data(0),
                cmd_data_in     => trd_host_cmd_data(0),
 
 
                cmd                             => trd_host_cmd(0),
                cmd                             => trd_host_cmd(0),
 
 
                data_out                => trd_data(0),
                data_out                => trd_data(0),
                cmd_data_out    => trd_cmd_data(0),
                cmd_data_out    => trd_cmd_data(0),
 
 
                bx_drq                  => trd_drq(0),                   -- управление DMA
                bx_drq                  => trd_drq(0),                   -- управление DMA
 
 
                test_mode               => test_mode,
                test_mode               => test_mode,
                test_mode_init  => '1',
                test_mode_init  => '1',
 
 
                b1_irq                  => trd_irq(1),
                b1_irq                  => trd_irq(1),
                b2_irq                  => trd_irq(2),
                b2_irq                  => trd_irq(2),
                b3_irq                  => trd_irq(3),
                b3_irq                  => trd_irq(3),
                b4_irq                  => trd_irq(4),
                b4_irq                  => trd_irq(4),
                b5_irq                  => trd_irq(5),
                b5_irq                  => trd_irq(5),
                b6_irq                  => trd_irq(6),
                b6_irq                  => trd_irq(6),
                b7_irq                  => trd_irq(7),
                b7_irq                  => trd_irq(7),
 
 
 
 
                b1_drq                  => trd_drq(1),
                b1_drq                  => trd_drq(1),
                b2_drq                  => trd_drq(2),
                b2_drq                  => trd_drq(2),
                b3_drq                  => trd_drq(3),
                b3_drq                  => trd_drq(3),
                b4_drq                  => trd_drq(4),
                b4_drq                  => trd_drq(4),
                b5_drq                  => trd_drq(5),
                b5_drq                  => trd_drq(5),
                b6_drq                  => trd_drq(6),
                b6_drq                  => trd_drq(6),
                b7_drq                  => trd_drq(7),
                b7_drq                  => trd_drq(7),
 
 
 
 
                int1                    => trd_main_irq(1),
                int1                    => trd_main_irq(1),
 
 
                drq0                    => trd_main_drq(0),
                drq0                    => trd_main_drq(0),
                drq1                    => trd_main_drq(1),
                drq1                    => trd_main_drq(1),
                drq2                    => trd_main_drq(2),
                drq2                    => trd_main_drq(2),
                drq3                    => trd_main_drq(3),
                drq3                    => trd_main_drq(3),
 
 
                reset_out               => reset,
                reset_out               => reset,
 
 
                fifo_rst_out    => trd_reset_fifo(0),
                fifo_rst_out    => trd_reset_fifo(0),
 
 
                -- Синхронизация
                -- Синхронизация
                b_clk                   => (others=>'0'),
                b_clk                   => (others=>'0'),
 
 
                b_start                 => (others=>'0'),
                b_start                 => (others=>'0'),
 
 
                -- SYNX
                -- SYNX
                sn_rdy0                 => '0',
                sn_rdy0                 => '0',
                sn_rdy1                 => '0',
                sn_rdy1                 => '0',
                sn_start_en     => '0',
                sn_start_en     => '0',
                sn_sync0                => '0'
                sn_sync0                => '0'
 
 
                );
                );
 
 
 
 
 
 
 
 
 
 
dio_in: trd_admdio64_in_v6
dio_in: trd_admdio64_in_v6
        port map(
        port map(
                -- GLOBAL
                -- GLOBAL
                reset                           => reset,               -- 0 - сброс
                reset                           => reset,               -- 0 - сброс
                clk                                     => clk,                 -- тактовая частота
                clk                                     => clk,                 -- тактовая частота
 
 
                -- Управление тетрадой
                -- Управление тетрадой
                cmd_data_in             => trd_host_cmd_data(6),
                cmd_data_in             => trd_host_cmd_data(6),
                cmd                                     => trd_host_cmd(6),
                cmd                                     => trd_host_cmd(6),
 
 
                data_out2                       => trd_data(6),
                data_out2                       => trd_data(6),
                cmd_data_out2           => trd_cmd_data(6),
                cmd_data_out2           => trd_cmd_data(6),
 
 
 
 
                bx_irq                          => trd_irq(6),                  -- 1 - прерывание от тетрады
                bx_irq                          => trd_irq(6),                  -- 1 - прерывание от тетрады
                bx_drq                          => trd_drq(6),                  -- управление DMA
                bx_drq                          => trd_drq(6),                  -- управление DMA
 
 
                mode1                           => di_mode1,                    -- регистр MODE1
                mode1                           => di_mode1,                    -- регистр MODE1
 
 
                fifo_rst                        => di_fifo_rst,                                 -- 0 - сброс FIFO (выход)
                fifo_rst                        => di_fifo_rst,                                 -- 0 - сброс FIFO (выход)
 
 
                start                           => di_start,                    --  1 - разрешение работы (MODE0[5])
                start                           => di_start,                    --  1 - разрешение работы (MODE0[5])
 
 
                -- Запись FIFO                                  
                -- Запись FIFO                                  
                data_in             => di_data,                 -- данные для записи в FIFO
                data_in             => di_data,                 -- данные для записи в FIFO
                data_wr             => di_data_we,              -- 1 - строб записи
                data_wr             => di_data_we,              -- 1 - строб записи
                flag_wr                         => di_flag_wr,          -- флаги FIFO, синхронно с clk_wr
                flag_wr                         => di_flag_wr,          -- флаги FIFO, синхронно с clk_wr
                clk_wr                          => di_clk               -- тактовая частота записи в FIFO
                clk_wr                          => di_clk               -- тактовая частота записи в FIFO
        );
        );
 
 
trd_reset_fifo(6) <= di_fifo_rst;
trd_reset_fifo(6) <= di_fifo_rst;
 
 
 
 
 
 
dio_out: trd_admdio64_out_v4
dio_out: trd_admdio64_out_v4
        port map(
        port map(
 
 
                -- GLOBAL
                -- GLOBAL
                reset                           => reset,               -- 0 - сброс
                reset                           => reset,               -- 0 - сброс
                clk                                     => clk,                 -- тактовая частота
                clk                                     => clk,                 -- тактовая частота
 
 
                -- Управление тетрадой
                -- Управление тетрадой
                data_in                         => trd_host_data(7),
                data_in                         => trd_host_data(7),
                cmd_data_in             => trd_host_cmd_data(7),
                cmd_data_in             => trd_host_cmd_data(7),
 
 
                cmd                                     => trd_host_cmd(7),
                cmd                                     => trd_host_cmd(7),
 
 
                cmd_data_out2           => trd_cmd_data(7),
                cmd_data_out2           => trd_cmd_data(7),
 
 
 
 
                bx_irq                          => trd_irq(7),                  -- 1 - прерывание от тетрады
                bx_irq                          => trd_irq(7),                  -- 1 - прерывание от тетрады
                bx_drq                          => trd_drq(7),                  -- управление DMA
                bx_drq                          => trd_drq(7),                  -- управление DMA
 
 
                mode1                           => do_mode1,    -- регистр MODE1
                mode1                           => do_mode1,    -- регистр MODE1
 
 
                fifo_rst                        => do_fifo_rst,                 -- 0 - сброс FIFO
                fifo_rst                        => do_fifo_rst,                 -- 0 - сброс FIFO
                start                           => do_start,                    --  1 - разрешение работы (MODE0[5])
                start                           => do_start,                    --  1 - разрешение работы (MODE0[5])
 
 
                -- Чтение из FIFO
                -- Чтение из FIFO
                data_out                        => do_data,                     -- шина данных FIFO
                data_out                        => do_data,                     -- шина данных FIFO
                data_cs                 => do_data_cs,          -- 0 - чтение данных
                data_cs                 => do_data_cs,          -- 0 - чтение данных
                flag_rd                 => do_flag_rd,          -- флаги FIFO
                flag_rd                 => do_flag_rd,          -- флаги FIFO
                clk_rd                  => do_clk                                                       -- тактовая частота чтения данных
                clk_rd                  => do_clk                                                       -- тактовая частота чтения данных
 
 
           );
           );
 
 
trd_reset_fifo(7) <= do_fifo_rst;
trd_reset_fifo(7) <= do_fifo_rst;
 
 
freq0 <= clk;
freq0 <= clk;
freq1 <= '0';
freq1 <= '0';
freq2 <= '0';
freq2 <= '0';
 
 
 
 
test_ctrl: trd_test_ctrl_m1
test_ctrl: trd_test_ctrl_m1
        generic map(
        generic map(
                SystemFreq      => 2000         -- значение системной тактовой частоты
                SystemFreq      => 2000         -- значение системной тактовой частоты
        )
        )
        port map(
        port map(
                -- GLOBAL
                -- GLOBAL
                reset                   => reset,               -- 0 - сброс
                reset                   => reset,               -- 0 - сброс
                clk                             => clk,                 -- тактовая частота
                clk                             => clk,                 -- тактовая частота
 
 
                -- Управление тетрадой
                -- Управление тетрадой
                cmd_data_in     => trd_host_cmd_data(1),
                cmd_data_in     => trd_host_cmd_data(1),
 
 
                cmd                             => trd_host_cmd(1),
                cmd                             => trd_host_cmd(1),
 
 
                cmd_data_out2   => trd_cmd_data(1),
                cmd_data_out2   => trd_cmd_data(1),
 
 
 
 
                bx_irq                  => trd_irq(1),                  -- 1 - прерывание от тетрады
                bx_irq                  => trd_irq(1),                  -- 1 - прерывание от тетрады
                bx_drq                  => trd_drq(1),                  -- управление DMA
                bx_drq                  => trd_drq(1),                  -- управление DMA
 
 
                ---- DIO_IN ----
                ---- DIO_IN ----
                di_clk                  => di_clk,                      -- тактовая частота записи в FIFO
                di_clk                  => di_clk,                      -- тактовая частота записи в FIFO
                di_data                 => di_data,                     -- данные        out
                di_data                 => di_data,                     -- данные        out
                di_data_we              => di_data_we,          -- 1 - запись данных
                di_data_we              => di_data_we,          -- 1 - запись данных
                di_flag_wr              => di_flag_wr,          -- флаги FIFO
                di_flag_wr              => di_flag_wr,          -- флаги FIFO
                di_fifo_rst             => di_fifo_rst,         -- 0 - сброс FIFO
                di_fifo_rst             => di_fifo_rst,         -- 0 - сброс FIFO
                di_mode1                => di_mode1,            -- регистр MODE1
                di_mode1                => di_mode1,            -- регистр MODE1
                di_start                => di_start,            -- 1 - разрешение работы (MODE0[5])
                di_start                => di_start,            -- 1 - разрешение работы (MODE0[5])
 
 
                ---- DIO_OUT ----
                ---- DIO_OUT ----
                do_clk                  => do_clk,                      -- тактовая частота чтения из FIFO
                do_clk                  => do_clk,                      -- тактовая частота чтения из FIFO
                do_data                 => do_data,                     -- данные  in
                do_data                 => do_data,                     -- данные  in
                do_data_cs              => do_data_cs,          -- 0 - чтение данных
                do_data_cs              => do_data_cs,          -- 0 - чтение данных
                do_flag_rd              => do_flag_rd,          -- флаги FIFO
                do_flag_rd              => do_flag_rd,          -- флаги FIFO
                do_fifo_rst             => do_fifo_rst,         -- 0 - сброс FIFO
                do_fifo_rst             => do_fifo_rst,         -- 0 - сброс FIFO
                do_mode1                => do_mode1,            -- регистр MODE1
                do_mode1                => do_mode1,            -- регистр MODE1
                do_start                => do_start,            -- 1 - разрешение работы (MODE0[5])
                do_start                => do_start,            -- 1 - разрешение работы (MODE0[5])
 
 
                clk_sys                 => clk200,              -- опорная тактовая частота
                clk_sys                 => clk200,              -- опорная тактовая частота
                clk_check0              => freq0,               -- измеряемая частота, вход 0
                clk_check0              => freq0,               -- измеряемая частота, вход 0
                clk_check1              => freq1,               -- измеряемая частота, вход 0
                clk_check1              => freq1,               -- измеряемая частота, вход 0
                clk_check2              => freq2                -- измеряемая частота, вход 0
                clk_check2              => freq2                -- измеряемая частота, вход 0
 
 
            );
            );
 
 
 
 
end ac701_a200t_core;
end ac701_a200t_core;
 
 

powered by: WebSVN 2.1.0

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