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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [ds_dma64/] [pcie_src/] [components/] [pcie_core/] [pcie_core64_m5.vhd] - Diff between revs 2 and 46

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 46
Line 3... Line 3...
-- Title       : pcie_core64_m5
-- Title       : pcie_core64_m5
-- 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.1
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Description :  Контроллер шины PCI Express 
-- Description :  Контроллер шины PCI Express 
--                                Модификация 4 - Virtex 6 PCI Express 2.0 x4 
--                                Модификация 4 - Virtex 6 PCI Express 2.0 x4 
Line 15... Line 15...
--                                Включает pcie_core64_m4, block_pe_main, core64_pb_transaction
--                                Включает pcie_core64_m4, block_pe_main, core64_pb_transaction
--                                Реализует шину LC_BUS 
--                                Реализует шину LC_BUS 
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
 
--  Version 1.1         17.02.2014
 
--                                      Добавлена поддержка Artix 7 - pcie_core64_m10
 
--
 
-------------------------------------------------------------------------------
 
--
--  Version 1.0         15.08.2011
--  Version 1.0         15.08.2011
--                                      Создан из pcie_core64_m2 v1.0
--                                      Создан из pcie_core64_m2 v1.0
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 
 
Line 29... Line 34...
package pcie_core64_m5_pkg is
package pcie_core64_m5_pkg is
 
 
--! контроллер PCI-Express 
--! контроллер PCI-Express 
component pcie_core64_m5 is
component pcie_core64_m5 is
        generic (
        generic (
 
                CORE_NAME               : in string:="pcie_core64_m4";
                Device_ID               : in std_logic_vector( 15 downto 0 ):=x"0000"; -- идентификатор модуля
                Device_ID               : in std_logic_vector( 15 downto 0 ):=x"0000"; -- идентификатор модуля
                Revision                : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия модуля
                Revision                : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия модуля
                PLD_VER                 : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия ПЛИС
                PLD_VER                 : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия ПЛИС
 
 
                refclk                  : integer:=100;         --! Значение опорной тактовой частоты [МГц]
                refclk                  : integer:=100;         --! Значение опорной тактовой частоты [МГц]
Line 92... Line 98...
use work.block_pe_main_pkg.all;
use work.block_pe_main_pkg.all;
 
 
--! контроллер PCI-Express 
--! контроллер PCI-Express 
entity pcie_core64_m5 is
entity pcie_core64_m5 is
        generic (
        generic (
 
                CORE_NAME               : in string:="pcie_core64_m4";
                Device_ID               : in std_logic_vector( 15 downto 0 ):=x"0000"; -- идентификатор модуля
                Device_ID               : in std_logic_vector( 15 downto 0 ):=x"0000"; -- идентификатор модуля
                Revision                : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия модуля
                Revision                : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия модуля
                PLD_VER                 : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия ПЛИС
                PLD_VER                 : in std_logic_vector( 15 downto 0 ):=x"0000"; -- версия ПЛИС
 
 
                refclk                  : integer:=100;         --! Значение опорной тактовой частоты [МГц]
                refclk                  : integer:=100;         --! Значение опорной тактовой частоты [МГц]
Line 143... Line 150...
end pcie_core64_m5;
end pcie_core64_m5;
 
 
 
 
architecture pcie_core64_m5 of pcie_core64_m5 is
architecture pcie_core64_m5 of pcie_core64_m5 is
 
 
 
component pcie_core64_m10 is
 
        generic (
 
                DEVICE_ID                       : in std_logic_vector := x"5507";       --! значение регистра DeviceID 
 
                refclk                          : in integer:=100;                              --! Значение опорной тактовой частоты [МГц]
 
                is_simulation           : in integer:=0;                         --! 0 - синтез, 1 - моделирование 
 
                interrupt_number        : in std_logic_vector( 1 downto 0 ):="00"        -- номер INTx: 0 - INTA, 1 - INTB, 2 - INTC, 3 - INTD 
 
 
 
        );
 
 
 
        port (
 
 
 
                ---- PCI-Express ----
 
                txp                             : out std_logic_vector( 3 downto 0 );
 
                txn                             : out std_logic_vector( 3 downto 0 );
 
 
 
                rxp                             : in  std_logic_vector( 3 downto 0 );
 
                rxn                             : in  std_logic_vector( 3 downto 0 );
 
 
 
                mgt250                  : in  std_logic; --! тактовая частота 250 MHz или 100 МГц от PCI_Express
 
 
 
                perst                   : in  std_logic;        --! 0 - сброс                                              
 
 
 
                px                              : out std_logic_vector( 7 downto 0 );    --! контрольные точки 
 
 
 
                pcie_lstatus    : out std_logic_vector( 15 downto 0 ); -- регистр LSTATUS
 
                pcie_link_up    : out std_logic;        -- 0 - завершена инициализация PCI-Express
 
 
 
 
 
                ---- Локальная шина ----                          
 
                clk_out                 : out std_logic;        --! тактовая частота 250 MHz              
 
                reset_out               : out std_logic;        --! 0 - сброс
 
                dcm_rstp                : out std_logic;        --! 1 - сброс DCM 266 МГц
 
 
 
                ---- BAR0 - блоки управления ----
 
                bp_host_data    : out std_logic_vector( 31 downto 0 );   --! шина данных - выход 
 
                bp_data                 : in  std_logic_vector( 31 downto 0 );  --! шина данных - вход
 
                bp_adr                  : out std_logic_vector( 19 downto 0 );   --! адрес регистра 
 
                bp_we                   : out std_logic_vector( 3 downto 0 );    --! 1 - запись в регистры 
 
                bp_rd                   : out std_logic_vector( 3 downto 0 );   --! 1 - чтение из регистров блока 
 
                bp_sel                  : out std_logic_vector( 1 downto 0 );    --! номер блока для чтения 
 
                bp_reg_we               : out std_logic;                        --! 1 - запись в регистр по адресам   0x100000 - 0x1FFFFF 
 
                bp_reg_rd               : out std_logic;                        --! 1 - чтение из регистра по адресам 0x100000 - 0x1FFFFF 
 
                bp_irq                  : in  std_logic;                        --! 1 - запрос прерывания 
 
 
 
                ---- BAR1 ----  
 
                aclk                    : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
 
                aclk_lock               : in std_logic;                         --! 1 - захват частоты
 
                pb_master               : out type_pb_master;           --! запрос 
 
                pb_slave                : in  type_pb_slave                     --! ответ  
 
 
 
 
 
 
 
        );
 
end component;
 
 
---- BAR0 - блоки управления ----
---- BAR0 - блоки управления ----
signal  bp_host_data    : std_logic_vector( 31 downto 0 );       --! шина данных - выход 
signal  bp_host_data    : std_logic_vector( 31 downto 0 );       --! шина данных - выход 
signal  bp_data                 : std_logic_vector( 31 downto 0 );  --! шина данных - вход
signal  bp_data                 : std_logic_vector( 31 downto 0 );  --! шина данных - вход
signal  bp_adr                  : std_logic_vector( 19 downto 0 );       --! адрес регистра внутри блока 
signal  bp_adr                  : std_logic_vector( 19 downto 0 );       --! адрес регистра внутри блока 
signal  bp_we                   : std_logic_vector( 3 downto 0 );        --! 1 - запись в регистры 
signal  bp_we                   : std_logic_vector( 3 downto 0 );        --! 1 - запись в регистры 
Line 167... Line 229...
 
 
signal  bp0_data                : std_logic_vector( 31 downto 0 );
signal  bp0_data                : std_logic_vector( 31 downto 0 );
 
 
begin
begin
 
 
 
gen_m4: if( CORE_NAME="pcie_core64_m4" ) generate
 
 
core: pcie_core64_m4
core: pcie_core64_m4
        generic map(
        generic map(
                refclk                  => refclk,                              --! Значение опорной тактовой частоты [МГц]
                refclk                  => refclk,                              --! Значение опорной тактовой частоты [МГц]
                is_simulation   => is_simulation                --! 0 - синтез, 1 - моделирование 
                is_simulation   => is_simulation                --! 0 - синтез, 1 - моделирование 
Line 218... Line 281...
                bp_irq                  => bp_irq
                bp_irq                  => bp_irq
 
 
 
 
        );
        );
 
 
 
end generate;
 
 
 
 
 
gen_m10: if( CORE_NAME="pcie_core64_m10" ) generate
 
 
 
core: pcie_core64_m10
 
        generic map(
 
                DEVICE_ID                       => Device_ID,                   --! значение регистра DeviceID 
 
                refclk                          => refclk,                              --! Значение опорной тактовой частоты [МГц]
 
                is_simulation           => is_simulation                --! 0 - синтез, 1 - моделирование 
 
        )
 
        port map(
 
 
 
                ---- PCI-Express ----
 
                txp                               => txp,
 
                txn                               => txn,
 
 
 
                rxp                               => rxp,
 
                rxn                               => rxn,
 
 
 
                mgt250                    => mgt250,
 
 
 
                perst                     => perst,
 
 
 
                px                                => px,
 
 
 
                pcie_lstatus      => pcie_lstatus,
 
                pcie_link_up      => pcie_link_up,
 
 
 
 
 
                ---- Локальная шина ----                          
 
                clk_out                  => clk250,
 
                reset_out                => reset,
 
                dcm_rstp                 => dcm_rstp,
 
 
 
                ---- BAR1 ----
 
                aclk                    => clk,
 
                aclk_lock               => clk_lock,
 
                pb_master               => pb_master,
 
                pb_slave                => pb_slave,
 
 
 
 
 
                ---- BAR0 - блоки управления ----
 
                bp_host_data    => bp_host_data,
 
                bp_data                 => bp_data,
 
                bp_adr                  => bp_adr,
 
                bp_we                   => bp_we,
 
                bp_rd                   => bp_rd,
 
                bp_sel                  => bp_sel,
 
                bp_reg_we               => bp_reg_we,
 
                bp_reg_rd               => bp_reg_rd,
 
                bp_irq                  => bp_irq
 
 
 
 
 
        );
 
 
 
end generate;
 
 
reset_out <= reset;
reset_out <= reset;
clk250_out   <= clk250;
clk250_out   <= clk250;
 
 
bp_data <= bp0_data when bp_sel="00" else (others=>'0');
bp_data <= bp0_data when bp_sel="00" else (others=>'0');
 
 

powered by: WebSVN 2.1.0

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