OpenCores
URL https://opencores.org/ocsvn/plb2wbbridge/plb2wbbridge/trunk

Subversion Repositories plb2wbbridge

[/] [plb2wbbridge/] [trunk/] [systems/] [test_system_sim/] [wb_err_and_rst/] [simulation/] [test_cases/] [errors_and_rst/] [transfers.bfl] - Rev 2

Compare with Previous | Blame | View Log


 set_alias(PART         = 1)
 set_alias(SUBPART      = 2)
 set_alias(SUBSUBPART   = 3)
 
 
 ---------------------------------
 --  32-Bit Master              --
 
 set_device(path=/system_tb/dut/plb_bfm_master_32/plb_bfm_master_32/master,device_type=plb_master)
 configure(msize=00)
 mem_update(addr=00010000,data=00000000_00000000_00000000_00000000)  
 mem_update(addr=00010010,data=00000000_00000000_00000000_00000000)  
 

 mem_update(addr=f0000000,data=11000001_11000002_11000003_11000004)
 mem_update(addr=f0000010,data=11111111_11111112_11111113_11111114)
 mem_update(addr=f0000020,data=11222221_11222222_11222223_11222224)
 mem_update(addr=f0000030,data=11333331_11333332_11333333_11333334)

 mem_update(addr=f1000000,data=22000001_22000002_22000003_22000004)
 mem_update(addr=f1000010,data=22111111_22111112_22111113_22111114)
 mem_update(addr=f1000020,data=22222221_22222222_22222223_22222224)
 mem_update(addr=f1000030,data=22333331_22333332_22333333_22333334)

 mem_update(addr=f2000000,data=33000001_33000002_33000003_33000004)
 mem_update(addr=f2000010,data=33111111_33111112_33111113_33111114)
 mem_update(addr=f2000020,data=33222221_33222222_33222223_33222224)
 mem_update(addr=f2000030,data=33333331_33333332_33333333_33333334)


 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 

 write   ( addr=f0000000, size=0000, be=1111 )
 write   ( addr=f0000004, size=0000, be=1111 )
 -- we will get an error on wb-side after two successful writes
 write   ( addr=f0000008, size=0000, be=1111 )
 


 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 -- we're now checking the status registers:
 mem_update( addr=00010000, data=20000000 )
 mem_update( addr=00010004, data=11000003 )
 mem_update( addr=00010008, data=f0000008 )
 read  ( addr=00010000, size=0001, be=1111 )
 read  ( addr=00010004, size=0000, be=1111 )
 read  ( addr=00010008, size=0000, be=1111 )

 -- we have to clear the exception
 mem_update( addr=00010000, data=00000000 )
 write   ( addr=00010000, size=0000, be=1111 )

 -- we abort the transfer
 write   ( addr=00010008, size=0000, be=1111 )
 
 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 

 ------------------

 write   ( addr=f0000000, size=0001, be=1111 )
 -- we wait (this simulates the interrupt-latency)
 -- and continue the transfer
 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 write   ( addr=00010004, size=0000, be=1111 )
 -- we have to clear the exception
 write   ( addr=00010000, size=0000, be=1111 )


 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 

 --------------------
 
 
 write   ( addr=f1000000, size=0001, be=1111 )
 -- we wait (this simulates the interrupt-latency)
 -- and continue the transfer
 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 write   ( addr=00010004, size=0000, be=1111 )
 -- we have to clear the exception
 write   ( addr=00010000, size=0000, be=1111 )



 wait( level=SUBSUBPART )
 wait( level=SUBSUBPART )
 

 --------------------
 
 
  write   ( addr=f2000000, size=0010, be=1111 )
  -- we wait (this simulates the interrupt-latency)
  -- and continue the transfer
  wait( level=SUBSUBPART )
  wait( level=SUBSUBPART )
  wait( level=SUBSUBPART )
  wait( level=SUBSUBPART )
  write   ( addr=00010004, size=0000, be=1111 )
 -- we have to clear the exception
  write   ( addr=00010000, size=0000, be=1111 )




 -- this causes several address-pipelining situations
 read    ( addr=f1000000, size=0000, be=1111 )
 read    ( addr=f2000000, size=0000, be=1111 )
 read    ( addr=f2000000, size=0001, be=1111 )
 read    ( addr=f1000000, size=0000, be=1111 )
 read    ( addr=f1000000, size=1010, be=0011 )
 read    ( addr=f2000000, size=1010, be=0011 )
 read    ( addr=f2000000, size=0001, be=1111 )
 read    ( addr=f1000000, size=1010, be=0010 )
 read    ( addr=f2000000, size=0000, be=1111 )
 read    ( addr=f2000000, size=1010, be=0001 )

 
 wait( level=SUBPART )
 wait( level=SUBPART )

 -- we're now checking the status registers:
 mem_update( addr=00010000, data=40000000 )
 read  ( addr=00010000, size=0000, be=1111 )
 mem_update( addr=00010000, data=00000000 )

 -- clear the interrupt
 write   ( addr=00010000, size=0000, be=1111 )

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.