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

Subversion Repositories nysa_sata

[/] [nysa_sata/] [trunk/] [test/] [test_sata.py] - Diff between revs 2 and 3

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 29... Line 29...
        TestFailure()
        TestFailure()
    else:
    else:
        dut.log.info("Sata is Ready")
        dut.log.info("Sata is Ready")
 
 
 
 
 
 
@cocotb.test(skip = True)
@cocotb.test(skip = True)
def short_write_test(dut):
def short_write_test(dut):
    """
    """
    Description:
    Description:
        Perform a single write to the SATA stack
        Perform a single write to the SATA stack
Line 86... Line 87...
        -Address should be seen on the fake hard drive side
        -Address should be seen on the fake hard drive side
        -Data should be read out of the hard drive side
        -Data should be read out of the hard drive side
        -Number of data should be the same as the write amount
        -Number of data should be the same as the write amount
    """
    """
    dut.test_id = 3
    dut.test_id = 3
    data_count = 400
    data_count = 2048
    sata = SataController(dut, CLK_PERIOD)
    sata = SataController(dut, CLK_PERIOD)
    yield(sata.reset())
    yield(sata.reset())
 
 
    yield(sata.wait_for_idle())
    yield(sata.wait_for_idle())
    yield(sata.write_to_hard_drive(data_count, 0x00))
 
    yield(sata.wait_clocks(100))
    yield(sata.wait_clocks(100))
 
 
 
    yield(sata.write_to_hard_drive(data_count, 0x00))
 
    dut.u2h_write_enable = 1
 
    yield(sata.wait_clocks(10000))
 
 
    dut.log.info("Wrote %d piece of data to SATA" % data_count)
    dut.log.info("Wrote %d piece of data to SATA" % data_count)
 
 
 
 
@cocotb.test(skip = True)
@cocotb.test(skip = True)
def long_read_test(dut):
def long_read_test(dut):
Line 139... Line 143...
    yield(sata.reset())
    yield(sata.reset())
    yield(sata.wait_for_idle())
    yield(sata.wait_for_idle())
 
 
    length = 400
    length = 400
    address = 0x00
    address = 0x00
 
 
    dut.write_count = length
 
    dut.write_enable = 1
 
    dut.u2h_write_enable = 1
    dut.u2h_write_enable = 1
    dut.u2h_write_count = length
    yield(sata.wait_clocks(800))
    #dut.h2u_read_enable = 1
 
    dut.sector_address = address
    #dut.write_count = length
    #What does this do?
    #dut.write_enable = 1
 
    #dut.u2h_write_enable = 1
 
    #dut.u2h_write_count = length
 
    ##dut.h2u_read_enable = 1
 
    #dut.sector_address = address
 
    ##What does this do?
 
    yield(sata.write_to_hard_drive(length, address))
 
 
    dut.sector_count = 0
    dut.sector_count = 0
    dut.write_data_en = 1
    dut.write_data_en = 1
    yield(sata.wait_clocks(1))
    yield(sata.wait_clocks(1))
    dut.write_data_en = 0
    dut.write_data_en = 0
    yield(sata.wait_clocks(200))
    yield(sata.wait_clocks(200))
    dut.hold = 1
    dut.hold = 1
    yield(sata.wait_clocks(200))
    yield(sata.wait_clocks(200))
    dut.hold = 0
    dut.hold = 0
    yield(sata.wait_clocks(400))
    yield(sata.wait_clocks(200))
    dut.hold = 1
    dut.hold = 1
    yield(sata.wait_clocks(300))
    yield(sata.wait_clocks(300))
    dut.hold = 0
    dut.hold = 0
    yield(sata.wait_for_idle())
    yield(sata.wait_for_idle())
 
 
    dut.write_enable = 0
    dut.write_enable = 0
    dut.write_count = 0
    dut.write_count = 0
    yield(sata.wait_clocks(100))
    yield(sata.wait_clocks(2000))
    #dut.h2u_read_enable = 0
    #dut.h2u_read_enable = 0
    dut.log.info("Wrote %d piece of data to SATA" % length)
    dut.log.info("Wrote %d piece of data to SATA" % length)
 
 
@cocotb.test(skip = True)
@cocotb.test(skip = False)
def long_write_with_hard_back_preassure_test(dut):
def long_write_with_hard_back_preassure_test(dut):
    """
    """
    Description:
    Description:
        Perform a long write to the hard drive and simulate difficult
        Perform a long write to the hard drive and simulate difficult
        stall condition
        stall condition
Line 190... Line 198...
    address = 0x00
    address = 0x00
 
 
    dut.write_count = length
    dut.write_count = length
    dut.write_enable = 1
    dut.write_enable = 1
    dut.u2h_write_enable = 1
    dut.u2h_write_enable = 1
    dut.u2h_write_count = length
    yield(sata.wait_clocks(1000))
 
    #dut.u2h_write_count = length
    #dut.h2u_read_enable = 1
    #dut.h2u_read_enable = 1
    dut.sector_address = address
    dut.sector_address = address
    #What does this do?
    #What does this do?
    dut.sector_count = 0
    dut.sector_count = 0
    dut.write_data_en = 1
    #dut.write_data_en = 1
    yield(sata.wait_clocks(1))
    yield(sata.write_to_hard_drive(length, address))
    dut.write_data_en = 0
 
    yield(sata.wait_clocks(2500))
    yield(sata.wait_clocks(2500))
    dut.hold = 1
    dut.hold = 1
    yield(sata.wait_clocks(1))
    yield(sata.wait_clocks(1))
    dut.hold = 0
    dut.hold = 0
    yield(sata.wait_clocks(400))
    yield(sata.wait_clocks(394))
    dut.hold = 1
    dut.hold = 1
    yield(sata.wait_clocks(10))
    yield(sata.wait_clocks(9))
    dut.hold = 0
    dut.hold = 0
    yield(sata.wait_clocks(400))
    yield(sata.wait_clocks(400))
    dut.hold = 1
    dut.hold = 1
    yield(sata.wait_clocks(20))
    yield(sata.wait_clocks(20))
    dut.hold = 0
    dut.hold = 0
Line 223... Line 231...
    dut.write_count = 0
    dut.write_count = 0
    yield(sata.wait_clocks(100))
    yield(sata.wait_clocks(100))
    #dut.h2u_read_enable = 0
    #dut.h2u_read_enable = 0
    dut.log.info("Wrote %d piece of data to SATA" % length)
    dut.log.info("Wrote %d piece of data to SATA" % length)
 
 
@cocotb.test(skip = False)
@cocotb.test(skip = True)
def long_write_long_read_back_preassure_test(dut):
def long_write_long_read_back_preassure_test(dut):
    """
    """
    Description:
    Description:
        Perform a long write to the hard drive and simulate difficult
        Perform a long write to the hard drive and simulate difficult
        stall condition, then start a new long read transaction
        stall condition, then start a new long read transaction

powered by: WebSVN 2.1.0

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