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_sim/] [sim/] [block_pkg.vhd] - Rev 2

Compare with Previous | Blame | View Log

-------------------------------------------------------------------------------
--
-- Title       : plda_block_pkg
-- Author      : Dmitry Smekhov
-- Company     : Instrumental Systems
-- E-mail      : dsmv@insys.ru
--
-- Version     : 1.0
--
-------------------------------------------------------------------------------
--
-- Description : Функции доступа к блокам управления
--
-------------------------------------------------------------------------------
 
 
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use work.cmd_sim_pkg.all;
 
 
package block_pkg is
 
---- Запись в регистр блока управления ----
procedure block_write(  signal cmd	: out bh_cmd; 	-- команда для устройства
						signal ret	: in  bh_ret;	-- ответ устройства
						nb	: in  integer;	-- номер блока
						nr	: in  integer;	-- номер регистра
						data	: in std_logic_vector( 31 downto 0 ) -- значение
);
 
---- Чтение из регистра блока управления ----
procedure block_read(   signal cmd	: out bh_cmd; 	-- команда для устройства
						signal ret	: in  bh_ret;	-- ответ устройства
						nb	: in  integer;	-- номер блока
						nr	: in  integer;	-- номер регистра
						data	: out std_logic_vector( 31 downto 0 ) -- значение
);
 
 
end block_pkg;	
 
package body block_pkg is
 
---- Запись в регистр блока управления ----
procedure block_write(  signal cmd	: out bh_cmd; 	-- команда для устройства
						signal ret	: in  bh_ret;	-- ответ устройства
						nb	: in  integer;	-- номер блока
						nr	: in  integer;	-- номер регистра
						data	: in std_logic_vector( 31 downto 0 ) -- значение
) is
 
variable	adr		: std_logic_vector( 31 downto 0 );
begin		 
 
	adr:=x"10000000";
	adr:=adr+nb*32*8+nr*8;
	data_write( cmd, ret, adr, data );
 
end block_write;	
 
---- Чтение из регистра блока управления ----
procedure block_read(   signal cmd	: out bh_cmd; 	-- команда для устройства
						signal ret	: in  bh_ret;	-- ответ устройства
						nb	: in  integer;	-- номер блока
						nr	: in  integer;	-- номер регистра
						data	: out std_logic_vector( 31 downto 0 ) -- значение
) is
variable	adr		: std_logic_vector( 31 downto 0 );
begin
 
	adr:=x"10000000";
	adr:=adr+nb*32*8+nr*8;
	data_read( cmd, ret, adr, data );
 
end block_read;	
 
 
end block_pkg;	
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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