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/] [pcie_core64_m1/] [pcie_ctrl/] [core64_pb_disp.vhd] - Diff between revs 2 and 18

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

Rev 2 Rev 18
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Title       : core64_pb_disp
-- Title       : core64_pb_disp
-- Author      : Dmitry Smekhov
-- Author      : Dmitry Smekhov
-- Company     : Instrumental Systems
-- Company     : Instrumental Systems
-- E-mail      : dsmv@insys.ru
-- E-mail      : dsmv@insys.ru
--
--
-- Version     : 1.2
-- Version     : 1.2
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
-- Description :  Диспетчер шины PB_BUS 
-- Description :  Диспетчер шины PB_BUS 
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
--  Version 1.2  14.12.2011 Dmitry Smekhov
--  Version 1.2  14.12.2011 Dmitry Smekhov
--                               Исправлено формирование сигналов reg_disp_back.data_we,
--                               Исправлено формирование сигналов reg_disp_back.data_we,
--                               reg_disp_back.complete
--                               reg_disp_back.complete
--                               
--                               
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--
--
--  Version 1.1  28.09.2011 Dmitry Smekhov
--  Version 1.1  28.09.2011 Dmitry Smekhov
--                               Добавлен сигнал pb_slave.complete 
--                               Добавлен сигнал pb_slave.complete 
--
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 
 
library ieee;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
 
 
use work.core64_type_pkg.all;
use work.core64_type_pkg.all;
 
 
package core64_pb_disp_pkg is
package core64_pb_disp_pkg is
 
 
component core64_pb_disp is
component core64_pb_disp is
        port(
        port(
                --- General ---
                --- General ---
                rstp                            : in std_logic;         --! 1 - сброс 
                rstp                            : in std_logic;         --! 1 - сброс 
                clk                                     : in std_logic;         --! тактовая частота ядра - 250 MHz 
                clk                                     : in std_logic;         --! тактовая частота ядра - 250 MHz 
 
 
                ---- PB_DISP ----
                ---- PB_DISP ----
                reg_disp                        : in  type_reg_disp;            --! запрос на доступ к регистрам из BAR1 
                reg_disp                        : in  type_reg_disp;            --! запрос на доступ к регистрам из BAR1 
                reg_disp_back           : out type_reg_disp_back;       --! ответ на запрос 
                reg_disp_back           : out type_reg_disp_back;       --! ответ на запрос 
 
 
                ---- EXT_FIFO ----
                ---- EXT_FIFO ----
                ext_fifo_disp           : in  type_ext_fifo_disp;               --! запрос на доступ от узла EXT_FIFO 
                ext_fifo_disp           : in  type_ext_fifo_disp;               --! запрос на доступ от узла EXT_FIFO 
                ext_fifo_disp_back      : out type_ext_fifo_disp_back;  --! ответ на запрос
                ext_fifo_disp_back      : out type_ext_fifo_disp_back;  --! ответ на запрос
 
 
                ---- BAR1 ----  
                ---- BAR1 ----  
                aclk                            : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
                aclk                            : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
                pb_master                       : out type_pb_master;           --! запрос 
                pb_master                       : out type_pb_master;           --! запрос 
                pb_slave                        : in  type_pb_slave                     --! ответ  
                pb_slave                        : in  type_pb_slave                     --! ответ  
 
 
        );
        );
 
 
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_unsigned.all;
 
 
library unisim;
library unisim;
use unisim.vcomponents.all;
use unisim.vcomponents.all;
 
 
use work.core64_type_pkg.all;
use work.core64_type_pkg.all;
 
 
entity core64_pb_disp is
entity core64_pb_disp is
        port(
        port(
                --- General ---
                --- General ---
                rstp                            : in std_logic;         --! 1 - сброс 
                rstp                            : in std_logic;         --! 1 - сброс 
                clk                                     : in std_logic;         --! тактовая частота ядра - 250 MHz 
                clk                                     : in std_logic;         --! тактовая частота ядра - 250 MHz 
 
 
                ---- PB_DISP ----
                ---- PB_DISP ----
                reg_disp                        : in  type_reg_disp;            --! запрос на доступ к регистрам из BAR1 
                reg_disp                        : in  type_reg_disp;            --! запрос на доступ к регистрам из BAR1 
                reg_disp_back           : out type_reg_disp_back;       --! ответ на запрос 
                reg_disp_back           : out type_reg_disp_back;       --! ответ на запрос 
 
 
                ---- EXT_FIFO ----
                ---- EXT_FIFO ----
                ext_fifo_disp           : in  type_ext_fifo_disp;               --! запрос на доступ от узла EXT_FIFO 
                ext_fifo_disp           : in  type_ext_fifo_disp;               --! запрос на доступ от узла EXT_FIFO 
                ext_fifo_disp_back      : out type_ext_fifo_disp_back;  --! ответ на запрос
                ext_fifo_disp_back      : out type_ext_fifo_disp_back;  --! ответ на запрос
 
 
                ---- BAR1 ----  
                ---- BAR1 ----  
                aclk                            : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
                aclk                            : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
                pb_master                       : out type_pb_master;           --! запрос 
                pb_master                       : out type_pb_master;           --! запрос 
                pb_slave                        : in  type_pb_slave                     --! ответ  
                pb_slave                        : in  type_pb_slave                     --! ответ  
 
 
        );
        );
 
 
end core64_pb_disp;
end core64_pb_disp;
 
 
 
 
architecture core64_pb_disp of core64_pb_disp is
architecture core64_pb_disp of core64_pb_disp is
 
 
signal  reg_req_wr                      : std_logic;
signal  reg_req_wr                      : std_logic;
signal  reg_req_wr_z            : std_logic;
signal  reg_req_wr_z            : std_logic;
signal  reg_req_rd                      : std_logic;
signal  reg_req_rd                      : std_logic;
signal  reg_req_rd_z            : std_logic;
signal  reg_req_rd_z            : std_logic;
 
 
signal  pb_sel                          : std_logic;
signal  pb_sel                          : std_logic;
 
 
signal  master_data                     : std_logic_vector( 63 downto 0 );
signal  master_data                     : std_logic_vector( 63 downto 0 );
signal  master_stb0                     : std_logic;
signal  master_stb0                     : std_logic;
signal  master_stb1                     : std_logic;
signal  master_stb1                     : std_logic;
signal  master_cmd                      : std_logic_vector( 2 downto 0 );
signal  master_cmd                      : std_logic_vector( 2 downto 0 );
 
 
signal  reg_stb1                        : std_logic;
signal  reg_stb1                        : std_logic;
 
 
signal  rstpz                           : std_logic;
signal  rstpz                           : std_logic;
 
 
type stp_type is ( s0, sr1, sr2, sr3, sr5, sf1, sf2, sf3 );
type stp_type is ( s0, sr1, sr2, sr3, sr5, sf1, sf2, sf3 );
 
 
signal  stp                                     : stp_type;
signal  stp                                     : stp_type;
 
 
signal  pb_slave_stb1_z         : std_logic;
signal  pb_slave_stb1_z         : std_logic;
signal  ex_fifo_stb1_z          : std_logic;
signal  ex_fifo_stb1_z          : std_logic;
signal  ext_fifo_eot            : std_logic;
signal  ext_fifo_eot            : std_logic;
 
 
signal  master_adr                      : std_logic_vector( 31 downto 0 );
signal  master_adr                      : std_logic_vector( 31 downto 0 );
signal  dmar                            : std_logic_vector( 1 downto 0 );
signal  dmar                            : std_logic_vector( 1 downto 0 );
 
 
signal  fifo_allow_wr           : std_logic;
signal  fifo_allow_wr           : std_logic;
signal  fifo_data_en            : std_logic;
signal  fifo_data_en            : std_logic;
 
 
signal  reg_data_we_set         : std_logic;
signal  reg_data_we_set         : std_logic;
signal  reg_data_we                     : std_logic;
signal  reg_data_we                     : std_logic;
signal  reg_data_we_z1          : std_logic;
signal  reg_data_we_z1          : std_logic;
signal  reg_data_we_z2          : std_logic;
signal  reg_data_we_z2          : std_logic;
signal  reg_data_we_clr         : std_logic;
signal  reg_data_we_clr         : std_logic;
signal  reg_data_we_clr_z1      : std_logic;
signal  reg_data_we_clr_z1      : std_logic;
signal  reg_data_we_clr_z2      : std_logic;
signal  reg_data_we_clr_z2      : std_logic;
 
 
signal  reg_complete            : std_logic;
signal  reg_complete            : std_logic;
 
 
 
signal  timeout_cnt                     : std_logic_vector( 12 downto 0 );
 
signal  slave_timeout           : std_logic;
 
 
attribute tig                           : string;
attribute tig                           : string;
attribute tig   of      master_adr                              : signal is "";
attribute tig   of      master_adr                              : signal is "";
attribute tig   of      dmar                                    : signal is "";
attribute tig   of      dmar                                    : signal is "";
attribute tig   of      rstp                                    : signal is "";
attribute tig   of      rstp                                    : signal is "";
 
 
begin
begin
 
 
rstpz <= rstp after 1 ns when rising_edge( aclk );
rstpz <= rstp after 1 ns when rising_edge( aclk );
 
 
reg_req_wr <= reg_disp.request_reg_wr after 1 ns when rising_edge( aclk );
reg_req_wr <= reg_disp.request_reg_wr after 1 ns when rising_edge( aclk );
reg_req_wr_z <= reg_req_wr after 1 ns when rising_edge( aclk );
reg_req_wr_z <= reg_req_wr after 1 ns when rising_edge( aclk );
 
 
reg_req_rd <= reg_disp.request_reg_rd after 1 ns when rising_edge( aclk );
reg_req_rd <= reg_disp.request_reg_rd after 1 ns when rising_edge( aclk );
reg_req_rd_z <= reg_req_rd after 1 ns when rising_edge( aclk );
reg_req_rd_z <= reg_req_rd after 1 ns when rising_edge( aclk );
 
 
 
 
master_adr <= reg_disp.adr when pb_sel='0' else ext_fifo_disp.adr;
master_adr <= reg_disp.adr when pb_sel='0' else ext_fifo_disp.adr;
pb_master.adr <= master_adr;
pb_master.adr <= master_adr;
 
 
master_data( 31 downto 0 ) <= reg_disp.data when pb_sel='0' else ext_fifo_disp.data( 31 downto 0 );
master_data( 31 downto 0 ) <= reg_disp.data when pb_sel='0' else ext_fifo_disp.data( 31 downto 0 );
master_data( 63 downto 32 ) <= ext_fifo_disp.data( 63 downto 32 );
master_data( 63 downto 32 ) <= ext_fifo_disp.data( 63 downto 32 );
 
 
master_stb1 <= reg_stb1 or ext_fifo_disp.data_we;
master_stb1 <= reg_stb1 or ext_fifo_disp.data_we;
 
 
pb_master.data <= master_data after 1 ns when rising_edge( aclk );
pb_master.data <= master_data after 1 ns when rising_edge( aclk );
pb_master.cmd <= master_cmd;
pb_master.cmd <= master_cmd;
 
 
pb_master.stb0 <= master_stb0  after 1 ns when rising_edge( aclk );
pb_master.stb0 <= master_stb0  after 1 ns when rising_edge( aclk );
pb_master.stb1 <= master_stb1  after 1 ns when rising_edge( aclk );
pb_master.stb1 <= master_stb1  after 1 ns when rising_edge( aclk );
 
 
reg_disp_back.data <= pb_slave.data( 31 downto 0 ) after 1 ns  when rising_edge( aclk ) and pb_slave.stb1='1';
reg_disp_back.data <= pb_slave.data( 31 downto 0 ) after 1 ns  when rising_edge( aclk ) and pb_slave.stb1='1';
 
 
ext_fifo_disp_back.data    <= pb_slave.data after 1 ns  when rising_edge( aclk );
ext_fifo_disp_back.data    <= pb_slave.data after 1 ns  when rising_edge( aclk );
ext_fifo_disp_back.data_we <= pb_slave.stb1 and fifo_data_en after 1 ns  when rising_edge( aclk );
ext_fifo_disp_back.data_we <= pb_slave.stb1 and fifo_data_en after 1 ns  when rising_edge( aclk );
dmar <= pb_slave.dmar;
dmar <= pb_slave.dmar;
ext_fifo_disp_back.dmar <= dmar;
ext_fifo_disp_back.dmar <= dmar;
 
 
ext_fifo_disp_back.irq <= pb_slave.irq;
ext_fifo_disp_back.irq <= pb_slave.irq;
 
 
pb_sel <= master_cmd(2) after 1 ns;
pb_sel <= master_cmd(2) after 1 ns;
 
 
pr_state: process( aclk ) begin
pr_state: process( aclk ) begin
        if( rising_edge( aclk ) ) then
        if( rising_edge( aclk ) ) then
                case( stp ) is
                case( stp ) is
                        when s0 =>
                        when s0 =>
                                master_cmd <= "000" after 1 ns;
                                master_cmd <= "000" after 1 ns;
                                master_stb0 <= '0' after 1 ns;
                                master_stb0 <= '0' after 1 ns;
                                --reg_disp_back.complete <= '0' after 1 ns;
                                --reg_disp_back.complete <= '0' after 1 ns;
                                reg_complete <= '0' after 1 ns;
                                reg_complete <= '0' after 1 ns;
                                reg_data_we_set <= '0' after 1 ns;
                                reg_data_we_set <= '0' after 1 ns;
                                fifo_allow_wr <= '0' after 1 ns;
                                fifo_allow_wr <= '0' after 1 ns;
                                reg_stb1 <= '0' after 1 ns;
                                reg_stb1 <= '0' after 1 ns;
                                fifo_data_en <= '0' after 1 ns;
                                fifo_data_en <= '0' after 1 ns;
                                ext_fifo_disp_back.complete <= '0' after 1 ns;
                                ext_fifo_disp_back.complete <= '0' after 1 ns;
 
                                timeout_cnt <= (others=>'0') after 1 ns;
 
 
                                if( reg_req_wr_z='1' or reg_req_rd_z='1' ) then
                                if( reg_req_wr_z='1' or reg_req_rd_z='1' ) then
                                        stp <= sr1 after 1 ns;
                                        stp <= sr1 after 1 ns;
                                elsif( ext_fifo_disp.request_wr='1' or ext_fifo_disp.request_rd='1' ) then
                                elsif( ext_fifo_disp.request_wr='1' or ext_fifo_disp.request_rd='1' ) then
                                        stp <= sf1 after 1 ns;
                                        stp <= sf1 after 1 ns;
                                end if;
                                end if;
 
 
                        when sr1 => ---- Обращение к регистрам ----
                        when sr1 => ---- Обращение к регистрам ----
                                master_cmd(0) <= reg_req_wr_z after 1 ns;        -- 1 - запись
                                master_cmd(0) <= reg_req_wr_z after 1 ns;        -- 1 - запись
                                master_cmd(1) <= reg_req_rd_z after 1 ns;       -- 1 - чтение 
                                master_cmd(1) <= reg_req_rd_z after 1 ns;       -- 1 - чтение 
                                master_cmd(2) <= '0';    -- только одно 32-х разрядное слово 
                                master_cmd(2) <= '0';    -- только одно 32-х разрядное слово 
                                master_stb0 <= '1' after 1 ns;  -- строб команды
                                master_stb0 <= '1' after 1 ns;  -- строб команды
                                stp <= sr2 after 1 ns;
                                stp <= sr2 after 1 ns;
 
 
                        when sr2 =>     ---- Строб записи слова ----
                        when sr2 =>     ---- Строб записи слова ----
                                master_stb0 <= '0' after 1 ns;
                                master_stb0 <= '0' after 1 ns;
                                reg_stb1 <= reg_req_wr_z after 1 ns;
                                reg_stb1 <= reg_req_wr_z after 1 ns;
                                stp <= sr3 after 1 ns;
                                stp <= sr3 after 1 ns;
 
 
 
 
                        when sr3 =>     ---- Ожидание подтверждения команды ---
                        when sr3 =>     ---- Ожидание подтверждения команды ---
                                reg_stb1 <= '0' after 1 ns;
                                reg_stb1 <= '0' after 1 ns;
--                              if( pb_slave.stb0='1' ) then
--                              if( pb_slave.stb0='1' ) then
--                                      if( reg_req_rd_z='1' ) then
--                                      if( reg_req_rd_z='1' ) then
--                                               stp <= sr4 after 1 ns;
--                                               stp <= sr4 after 1 ns;
--                                      else
--                                      else
--                                              stp <= sr5 after 1 ns;
--                                              stp <= sr5 after 1 ns;
--                                      end if;
--                                      end if;
--                              end if;                                  
--                              end if;                                  
 
                                timeout_cnt <= timeout_cnt + 1 after 1 ns;
                                reg_data_we_set <= pb_slave.stb1 after 1 ns;
                                reg_data_we_set <= pb_slave.stb1 after 1 ns;
                                if( pb_slave.complete='1' ) then
                                if( pb_slave.complete='1' or slave_timeout='1') then
                                        stp <= sr5 after 1 ns;
                                        stp <= sr5 after 1 ns;
                                end if;
                                end if;
 
 
 
 
--                      when sr4 => ---- Ожидание данных ----
--                      when sr4 => ---- Ожидание данных ----
--                              if( pb_slave.stb1='1' ) then
--                              if( pb_slave.stb1='1' ) then
--                                      reg_disp_back.data_we <= '1' after 1 ns;
--                                      reg_disp_back.data_we <= '1' after 1 ns;
--                                      stp <= sr5 after 1 ns;
--                                      stp <= sr5 after 1 ns;
--                              end if;
--                              end if;
 
 
                        when sr5 => ---- Ожидание снятия запроса ----
                        when sr5 => ---- Ожидание снятия запроса ----
                                master_cmd <= "000";
                                master_cmd <= "000";
                                reg_data_we_set <= '0' after 1 ns;
                                reg_data_we_set <= '0' after 1 ns;
                                --reg_disp_back.complete <= '1' after 1 ns;       
                                --reg_disp_back.complete <= '1' after 1 ns;       
                                reg_complete <= '1' after 1 ns;
                                reg_complete <= '1' after 1 ns;
                                if( reg_req_wr_z='0' and reg_req_rd_z='0' ) then
                                if( reg_req_wr_z='0' and reg_req_rd_z='0' ) then
                                        stp <= s0 after 1 ns;
                                        stp <= s0 after 1 ns;
                                end if;
                                end if;
 
 
 
 
 
 
                        when sf1 =>
                        when sf1 =>
                                master_cmd(0) <= ext_fifo_disp.request_wr after 1 ns;    -- 1 - запись
                                master_cmd(0) <= ext_fifo_disp.request_wr after 1 ns;    -- 1 - запись
                                master_cmd(1) <= ext_fifo_disp.request_rd after 1 ns;   -- 1 - чтение 
                                master_cmd(1) <= ext_fifo_disp.request_rd after 1 ns;   -- 1 - чтение 
                                master_cmd(2) <= '1';   -- блок 512 слов 
                                master_cmd(2) <= '1';   -- блок 512 слов 
                                master_stb0 <= '1' after 1 ns;  -- строб команды
                                master_stb0 <= '1' after 1 ns;  -- строб команды
                                stp <= sf2 after 1 ns;
                                stp <= sf2 after 1 ns;
 
 
                        when sf2 =>
                        when sf2 =>
                                master_stb0 <= '0' after 1 ns;  -- строб команды
                                master_stb0 <= '0' after 1 ns;  -- строб команды
                                fifo_allow_wr <= ext_fifo_disp.request_wr and pb_slave.ready after 1 ns;
                                fifo_allow_wr <= ext_fifo_disp.request_wr and pb_slave.ready after 1 ns;
                                fifo_data_en <= '1' after 1 ns;
                                fifo_data_en <= '1' after 1 ns;
                                if( pb_slave.complete='1' ) then
                                timeout_cnt <= timeout_cnt + 1 after 1 ns;
 
                                if( pb_slave.complete='1' or slave_timeout='1' ) then
                                        ext_fifo_disp_back.complete <= '1' after 1 ns;
                                        ext_fifo_disp_back.complete <= '1' after 1 ns;
                                        stp <= sf3 after 1 ns;
                                        stp <= sf3 after 1 ns;
                                end if;
                                end if;
 
 
                        when sf3 =>
                        when sf3 =>
                                ext_fifo_disp_back.complete <= '0' after 1 ns;
                                ext_fifo_disp_back.complete <= '0' after 1 ns;
                                fifo_allow_wr <= '0' after 1 ns;
                                fifo_allow_wr <= '0' after 1 ns;
                                if( ext_fifo_disp.request_wr='0' and ext_fifo_disp.request_rd='0' ) then
                                if( ext_fifo_disp.request_wr='0' and ext_fifo_disp.request_rd='0' ) then
                                        stp <= s0 after 1 ns;
                                        stp <= s0 after 1 ns;
                                end if;
                                end if;
 
 
 
 
                end case;
                end case;
 
 
                if( rstpz='1' ) then
                if( rstpz='1' ) then
                        stp <= s0 after 1 ns;
                        stp <= s0 after 1 ns;
                end if;
                end if;
 
 
        end if;
        end if;
end process;
end process;
 
 
 
slave_timeout <= timeout_cnt(12) after 1 ns when rising_edge( clk );
 
 
ext_fifo_disp_back.allow_wr <= fifo_allow_wr;
ext_fifo_disp_back.allow_wr <= fifo_allow_wr;
 
 
pb_slave_stb1_z  <= pb_slave.stb1 after 1 ns when rising_edge( aclk );
pb_slave_stb1_z  <= pb_slave.stb1 after 1 ns when rising_edge( aclk );
ex_fifo_stb1_z   <= ext_fifo_disp.data_we after 1 ns when rising_edge( aclk );
ex_fifo_stb1_z   <= ext_fifo_disp.data_we after 1 ns when rising_edge( aclk );
 
 
--ext_fifo_eot <= (pb_slave_stb1_z and not pb_slave.stb1) or
--ext_fifo_eot <= (pb_slave_stb1_z and not pb_slave.stb1) or
--                               (ex_fifo_stb1_z and not ext_fifo_disp.data_we ) after 1 ns when rising_edge( aclk );
--                               (ex_fifo_stb1_z and not ext_fifo_disp.data_we ) after 1 ns when rising_edge( aclk );
--                              
--                              
 
 
--ext_fifo_eot <= pb_slave.complete after 1 ns when rising_edge( clk );
--ext_fifo_eot <= pb_slave.complete after 1 ns when rising_edge( clk );
 
 
pr_reg_data_we: process( aclk ) begin
pr_reg_data_we: process( aclk ) begin
        if( rising_edge( aclk ) ) then
        if( rising_edge( aclk ) ) then
                if( reg_data_we_clr_z2='1' ) then
                if( reg_data_we_clr_z2='1' ) then
                        reg_data_we <= '0' after 1 ns;
                        reg_data_we <= '0' after 1 ns;
                elsif( reg_data_we_set='1' ) then
                elsif( reg_data_we_set='1' ) then
                        reg_data_we <= '1' after 1 ns;
                        reg_data_we <= '1' after 1 ns;
                end if;
                end if;
        end if;
        end if;
end process;
end process;
 
 
reg_data_we_z1 <= reg_data_we after 1 ns when rising_edge( clk );
reg_data_we_z1 <= reg_data_we after 1 ns when rising_edge( clk );
reg_data_we_z2 <= reg_data_we_z1 after 1 ns when rising_edge( clk );
reg_data_we_z2 <= reg_data_we_z1 after 1 ns when rising_edge( clk );
reg_disp_back.data_we <= reg_data_we_z2 and reg_disp.request_reg_rd after 1 ns when rising_edge( clk );
reg_disp_back.data_we <= reg_data_we_z2 and reg_disp.request_reg_rd after 1 ns when rising_edge( clk );
 
 
reg_data_we_clr <= reg_data_we_z2 after 1 ns when rising_edge( aclk );
reg_data_we_clr <= reg_data_we_z2 after 1 ns when rising_edge( aclk );
reg_data_we_clr_z1 <= reg_data_we_clr after 1 ns when rising_edge( aclk );
reg_data_we_clr_z1 <= reg_data_we_clr after 1 ns when rising_edge( aclk );
reg_data_we_clr_z2 <= reg_data_we_clr_z1 after 1 ns when rising_edge( aclk );
reg_data_we_clr_z2 <= reg_data_we_clr_z1 after 1 ns when rising_edge( aclk );
 
 
xcomlete: srl16 port map( q=>reg_disp_back.complete, clk=>clk, d=>reg_complete, a3=>'0', a2=>'0', a1=>'1', a0=>'0' );
xcomlete: srl16 port map( q=>reg_disp_back.complete, clk=>clk, d=>reg_complete, a3=>'0', a2=>'0', a1=>'1', a0=>'0' );
 
 
 
 
end core64_pb_disp;
end core64_pb_disp;
 
 
 
 

powered by: WebSVN 2.1.0

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