OpenCores
URL https://opencores.org/ocsvn/sdhc-sc-core/sdhc-sc-core/trunk

Subversion Repositories sdhc-sc-core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /sdhc-sc-core/trunk
    from Rev 27 to Rev 28
    Reverse comparison

Rev 27 → Rev 28

/src/grpWishbone/unitWbSlave/src/tbWbSlave-Bhv-ea.vhdl
16,18 → 16,19
end entity;
 
architecture Bhv of tbWbSlave is
 
subtype aAdr is std_ulogic_vector(7 downto 2);
subtype aData is std_ulogic_vector(7 downto 0);
signal Clk, RstSync : std_ulogic := cInactivated;
signal iWbSlave : aWbSlaveCtrlInput;
signal oWbSlave : aWbSlaveCtrlOutput;
signal Sel : std_ulogic_vector(0 downto 0);
signal Adr : std_ulogic_vector(7 downto 2);
signal DataToSlave, DataFromSlave : std_ulogic_vector(7 downto 0);
signal Adr : aAdr;
signal DataToSlave, DataFromSlave : aData;
 
signal Finished : std_ulogic := cInactivated;
 
constant cValid : std_ulogic_vector(7 downto 0) := (others =>
'1');
constant cValid : std_ulogic_vector(7 downto 0) := (others => '1');
 
begin
 
37,27 → 38,52
cInactivated after 3*gClkPeriod;
 
Stimulus : process
procedure readData (constant address: in aAdr; variable data : out aData) is
begin
iWbSlave.Cyc <= cActivated;
iWbSlave.Stb <= cActivated;
iWbSlave.We <= cInactivated;
iWbSlave.Cti <= cCtiClassicCycle;
Adr <= address;
Sel <= "1";
wait until Clk = cActivated;
 
wait until Clk = cActivated and oWbSlave.Ack = cActivated;
assert (oWbSlave.Ack = cActivated) report
"Read not acknowledged. Waitstate?" severity error;
assert (DataFromSlave = cValid) report
"Invalid data after read" severity error;
 
data := DataFromSlave;
 
end procedure readData;
 
procedure writeData (constant address: in aAdr; constant data: in aData) is
begin
iWbSlave.Cyc <= cActivated;
iWbSlave.Stb <= cActivated;
iWbSlave.We <= cInactivated;
iWbSlave.Cti <= cCtiClassicCycle;
Adr <= address;
Sel <= "1";
DataToSlave <= data;
wait until Clk = cActivated;
 
wait until Clk = cActivated and oWbSlave.Ack = cActivated;
end procedure writeData;
 
variable tempData : aData;
 
begin
wait for 6*gClkPeriod;
-- Classic Reads
writeData("000001", X"A0");
readData("000001", tempData);
wait until Clk = cActivated;
iWbSlave.Cyc <= cActivated;
iWbSlave.Stb <= cActivated;
iWbSlave.We <= cInactivated;
iWbSlave.Cti <= cCtiClassicCycle;
Adr <= "000001";
Sel <= "1";
 
wait until Clk = cActivated;
wait until Clk = cActivated;
assert (oWbSlave.Ack = cActivated) report
"Read not acknowledged. Waitstate?" severity error;
assert (DataFromSlave = cValid) report
"Invalid data after read" severity error;
 
wait until Clk = cActivated;
 
Finished <= cActivated;
wait;
end process Stimulus;

powered by: WebSVN 2.1.0

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