testbench_package.vhd
105 lines
| 2.9 KiB
| text/x-vhdl
|
VhdlLexer
|
r287 | |||
LIBRARY ieee; | ||||
USE ieee.std_logic_1164.ALL; | ||||
LIBRARY grlib; | ||||
USE grlib.amba.ALL; | ||||
USE grlib.stdlib.ALL; | ||||
--LIBRARY gaisler; | ||||
--USE gaisler.libdcom.ALL; | ||||
--USE gaisler.sim.ALL; | ||||
--USE gaisler.jtagtst.ALL; | ||||
--LIBRARY techmap; | ||||
--USE techmap.gencomp.ALL; | ||||
PACKAGE testbench_package IS | ||||
PROCEDURE APB_WRITE ( | ||||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT pindex : IN INTEGER; | ||||
SIGNAL apbi : OUT apb_slv_in_type; | ||||
CONSTANT paddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
CONSTANT pwdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
); | ||||
|
r298 | PROCEDURE APB_READ ( | ||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT pindex : IN INTEGER; | ||||
SIGNAL apbi : OUT apb_slv_in_type; | ||||
SIGNAL apbo : IN apb_slv_out_type; | ||||
CONSTANT paddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
SIGNAL prdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
); | ||||
PROCEDURE AHB_READ ( | ||||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT hindex : IN INTEGER | ||||
SIGNAL ahbmi : OUT ahb_slv_in_type; | ||||
SIGNAL ahbmo : IN ahb_slv_out_type; | ||||
CONSTANT haddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
SIGNAL hrdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
); | ||||
|
r287 | END testbench_package; | ||
PACKAGE BODY testbench_package IS | ||||
PROCEDURE APB_WRITE ( | ||||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT pindex : IN INTEGER; | ||||
SIGNAL apbi : OUT apb_slv_in_type; | ||||
CONSTANT paddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
CONSTANT pwdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
) IS | ||||
BEGIN | ||||
apbi.psel(pindex) <= '1'; | ||||
apbi.pwrite <= '1'; | ||||
apbi.penable <= '1'; | ||||
apbi.paddr <= paddr; | ||||
apbi.pwdata <= pwdata; | ||||
WAIT UNTIL clk = '1'; | ||||
apbi.psel(pindex) <= '0'; | ||||
apbi.pwrite <= '0'; | ||||
apbi.penable <= '0'; | ||||
apbi.paddr <= (OTHERS => '0'); | ||||
apbi.pwdata <= (OTHERS => '0'); | ||||
END APB_WRITE; | ||||
|
r298 | PROCEDURE APB_READ ( | ||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT pindex : IN INTEGER; | ||||
SIGNAL apbi : OUT apb_slv_in_type; | ||||
SIGNAL apbo : IN apb_slv_out_type; | ||||
CONSTANT paddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
SIGNAL prdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
) IS | ||||
BEGIN | ||||
apbi.psel(pindex) <= '1'; | ||||
apbi.pwrite <= '0'; | ||||
apbi.penable <= '1'; | ||||
apbi.paddr <= paddr; | ||||
WAIT UNTIL clk = '1'; | ||||
apbi.psel(pindex) <= '0'; | ||||
apbi.pwrite <= '0'; | ||||
apbi.penable <= '0'; | ||||
apbi.paddr <= (OTHERS => '0'); | ||||
WAIT UNTIL clk = '1'; | ||||
prdata <= apbo.prdata; | ||||
END APB_READ; | ||||
PROCEDURE AHB_READ ( | ||||
SIGNAL clk : IN STD_LOGIC; | ||||
CONSTANT hindex : IN INTEGER | ||||
SIGNAL ahbmi : OUT ahb_slv_in_type; | ||||
SIGNAL ahbmo : IN ahb_slv_out_type; | ||||
CONSTANT haddr : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | ||||
SIGNAL hrdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) | ||||
) IS | ||||
BEGIN | ||||
END AHB_READ; | ||||
|
r287 | END testbench_package; | ||