from c4m.cocotb.jtag.c4m_jtag import JTAG_Master
+
@cocotb.test()
def test01_idcode(dut):
"""
assert(result1 == result2)
+
@cocotb.test()
def test02_bypass(dut):
"""
dut._log.info("bypass out: {}".format(master.result.binstr))
assert(master.result.binstr[:-1] == data_in.binstr[1:])
+
@cocotb.test()
def test03_sample(dut):
"""
dut._log.info("Load SAMPLEPRELOAD command")
yield master.load_ir(master.SAMPLEPRELOAD)
- data_in.binstr = "011000"
+ data_in.binstr = "0100110"
dut._log.info(" preloading data {}".format(data_in.binstr))
# Set the ios pins
- dut.top_coreo = 2
- dut.top_coreoe = 0
- dut.top_padi = 1
+ dut.tap_ioconn0__pad__i = 1
+ dut.tap_ioconn1__core__o = 0
+ dut.tap_ioconn2__core__o = 1
+ dut.tap_ioconn2__core__oe = 1
+ dut.tap_ioconn3__pad__i = 0
+ dut.tap_ioconn3__core__o = 0
+ dut.tap_ioconn3__core__oe = 1
yield master.shift_data(data_in)
dut._log.info(" output: {}".format(master.result.binstr))
- assert(master.result.binstr == "100010")
+ assert(master.result.binstr == "1011001")
+ assert dut.tap_ioconn0__core__i == 1
+ assert dut.tap_ioconn1__pad__o == 0
+ assert dut.tap_ioconn2__pad__o == 1
+ assert dut.tap_ioconn2__pad__oe == 1
+ assert dut.tap_ioconn3__core__i == 0
+ assert dut.tap_ioconn3__pad__o == 0
+ assert dut.tap_ioconn3__pad__oe == 1
dut._log.info("Load EXTEST command")
yield master.load_ir(master.EXTEST)
- data_in.binstr = "100111"
+ assert dut.tap_ioconn0__core__i == 0
+ assert dut.tap_ioconn1__pad__o == 1
+ assert dut.tap_ioconn2__pad__o == 0
+ assert dut.tap_ioconn2__pad__oe == 0
+ assert dut.tap_ioconn3__core__i == 1
+ assert dut.tap_ioconn3__pad__o == 1
+ assert dut.tap_ioconn3__pad__oe == 0
+
+ data_in.binstr = "1011001"
dut._log.info(" input data {}".format(data_in.binstr))
# Set the ios pins
- dut.top_coreo = 1
- dut.top_coreoe = 3
- dut.top_padi = 2
+ dut.tap_ioconn0__pad__i = 0
+ dut.tap_ioconn1__core__o = 1
+ dut.tap_ioconn2__core__o = 0
+ dut.tap_ioconn2__core__oe = 0
+ dut.tap_ioconn3__pad__i = 1
+ dut.tap_ioconn3__core__o = 1
+ dut.tap_ioconn3__core__oe = 0
yield master.shift_data(data_in)
dut._log.info(" output: {}".format(master.result.binstr))
- assert(master.result.binstr == "011101")
+ assert(master.result.binstr == "0100110")
+
+ assert dut.tap_ioconn0__core__i == 1
+ assert dut.tap_ioconn1__pad__o == 0
+ assert dut.tap_ioconn2__pad__o == 1
+ assert dut.tap_ioconn2__pad__oe == 1
+ assert dut.tap_ioconn3__core__i == 0
+ assert dut.tap_ioconn3__pad__o == 0
+ assert dut.tap_ioconn3__pad__oe == 1
+
+ yield master.reset()
+
+ assert dut.tap_ioconn0__core__i == 0
+ assert dut.tap_ioconn1__pad__o == 1
+ assert dut.tap_ioconn2__pad__o == 0
+ assert dut.tap_ioconn2__pad__oe == 0
+ assert dut.tap_ioconn3__core__i == 1
+ assert dut.tap_ioconn3__pad__o == 1
+ assert dut.tap_ioconn3__pad__oe == 0
- dut._log.info("Do a capture of the last loaded data")
- yield master.shift_data([])