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_wishbone.vhd] - Diff between revs 38 and 40

Show entire file | Details | Blame | View Log

Rev 38 Rev 40
Line 3... Line 3...
-- Title       : pcie_core64_wishbone
-- Title       : pcie_core64_wishbone
-- 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.4
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Description :  Контроллер PCI Express
-- Description :  Контроллер PCI Express
--                                Модификация Wishbone - Spartan-6 PCI Express v1.1 x1
--                                Модификация Wishbone - Spartan-6 PCI Express v1.1 x1
Line 90... Line 90...
use work.core64_type_pkg.all;
use work.core64_type_pkg.all;
use work.pcie_core64_m6_pkg.all;
use work.pcie_core64_m6_pkg.all;
use work.core64_pb_wishbone_pkg.all;
use work.core64_pb_wishbone_pkg.all;
use work.block_pe_main_pkg.all;
use work.block_pe_main_pkg.all;
 
 
 
library unisim;
 
use unisim.vcomponents.all;
 
 
entity pcie_core64_wishbone is
entity pcie_core64_wishbone is
generic
generic
(
(
    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";  -- версия модуля
Line 171... Line 174...
signal  reset                   : std_logic;
signal  reset                   : std_logic;
signal  dcm_rst                 : std_logic;
signal  dcm_rst                 : std_logic;
signal  reset_p                 : std_logic;
signal  reset_p                 : std_logic;
signal  reset_p_z1              : std_logic;
signal  reset_p_z1              : std_logic;
signal  reset_p_z2              : std_logic;
signal  reset_p_z2              : std_logic;
 
 
 
signal  clk62x                  : std_logic:='0';
 
signal  clk62                   : std_logic;
 
 
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
begin
begin
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Instantiate CORE64_M6 module with PB BUS:
-- Instantiate CORE64_M6 module with PB BUS:
Line 206... Line 213...
    clk_out         => clk,             -- S6 PCIE x1 module clock output
    clk_out         => clk,             -- S6 PCIE x1 module clock output
    reset_out       => reset,           -- 
    reset_out       => reset,           -- 
    dcm_rstp        => dcm_rst,         -- S6 PCIE x1 module INV trn_reset_n_c
    dcm_rstp        => dcm_rst,         -- S6 PCIE x1 module INV trn_reset_n_c
 
 
    ---- BAR1 (PB bus) ----
    ---- BAR1 (PB bus) ----
    aclk            => clk,  -- !!! same clock as clk_out
    aclk            => clk62,           -- clock for local bus
    aclk_lock       => '1',             -- 
    aclk_lock       => '1',             -- 
    pb_master       => pb_master,       --
    pb_master       => pb_master,       --
    pb_slave        => pb_slave,        -- 
    pb_slave        => pb_slave,        -- 
 
 
    ---- BAR0 (to PE_MAIN) - блоки управления ----
    ---- BAR0 (to PE_MAIN) - блоки управления ----
Line 256... Line 263...
    brd_mode        => brd_mode                 -- регистр BRD_MODE
    brd_mode        => brd_mode                 -- регистр BRD_MODE
 
 
);
);
 
 
 
 
 
clk62x <= not clk62x after 1 ns when rising_edge( clk );
 
xclk62: bufg port map( clk62, clk62x );
 
 
reset_p <= (not reset) or (not brd_mode(3));
reset_p <= (not reset) or (not brd_mode(3));
reset_p_z1 <= reset_p    after 1 ns when rising_edge( clk );
reset_p_z1 <= reset_p    after 1 ns when rising_edge( clk62 );
reset_p_z2 <= reset_p_z1 after 1 ns when rising_edge( clk );
reset_p_z2 <= reset_p_z1 after 1 ns when rising_edge( clk62 );
 
 
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Instantiate PB BUS <-> WB BUS translator module:
-- Instantiate PB BUS <-> WB BUS translator module:
--
--
PW_WB   :   core64_pb_wishbone
PW_WB   :   core64_pb_wishbone
port map
port map
(
(
    reset           => reset_p_z2,      --! 1 - сброс
    reset           => reset_p_z2,      --! 1 - сброс
    clk             => clk,                     --! тактовая частота локальной шины 
    clk             => clk62,                   --! тактовая частота локальной шины 
 
 
    ---- BAR1 ----
    ---- BAR1 ----
    pb_master       => pb_master,       --! запрос 
    pb_master       => pb_master,       --! запрос 
    pb_slave        => pb_slave,        --! ответ  
    pb_slave        => pb_slave,        --! ответ  
 
 
Line 296... Line 306...
);
);
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Module Output route:
-- Module Output route:
--
--
o_wb_clk    <= clk;  -- route from PW_WB wrk clock
o_wb_clk    <= clk62;  -- route from PW_WB wrk clock
--
--
 
 
pr_o_wb_rst: process( reset_p, clk ) begin
pr_o_wb_rst: process( reset_p, clk62 ) begin
        if( reset_p='1' ) then
        if( reset_p='1' ) then
                o_wb_rst <= '1' after 1 ns;
                o_wb_rst <= '1' after 1 ns;
        elsif( rising_edge( clk ) ) then
        elsif( rising_edge( clk62 ) ) then
                o_wb_rst <= reset_p_z2 after 1 ns;
                o_wb_rst <= reset_p_z2 after 1 ns;
        end if;
        end if;
end process;
end process;
 
 
 
 

powered by: WebSVN 2.1.0

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