From 7f6fcdc1e6e08ceaa582fe358e08dfbdaedf9dd0 Mon Sep 17 00:00:00 2001 From: Zanting <zanting> Date: Mon, 8 Jun 2015 12:43:48 +0000 Subject: [PATCH] Added verbosity check and repeat loops --- .../unb1_ddr3/tb/python/tc_unb1_ddr3_seq.py | 97 +++++++++---------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/boards/uniboard1/designs/unb1_ddr3/tb/python/tc_unb1_ddr3_seq.py b/boards/uniboard1/designs/unb1_ddr3/tb/python/tc_unb1_ddr3_seq.py index 01279e2739..9db3346255 100644 --- a/boards/uniboard1/designs/unb1_ddr3/tb/python/tc_unb1_ddr3_seq.py +++ b/boards/uniboard1/designs/unb1_ddr3/tb/python/tc_unb1_ddr3_seq.py @@ -75,61 +75,60 @@ ddr = pi_io_ddr.PiIoDdr(tc, io, nof_inst = 1) # Wait for power up (reset release) io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) -# Initialization -tx_seq.write_disable() -rx_seq.write_disable() - -# Read RX Sequencer result before run -rx_seq.read_result() - -# Wait for the DDR memory to become available -#ddr.read_io_ddr() -do_until_eq(ddr.read_init_done, ms_retry=3000, val=1, s_timeout=3600) - -# Flush Tx FIFO -ddr.write_flush_pulse() -io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) - -# Set DDR controller in write mode and start writing +# Control defaults +nof_mon = 2 start_address = 0 nof_words = 100 -ddr.set_address(data=start_address) -ddr.set_burstsize(data=nof_words) -ddr.set_write() -ddr.burstbegin() - -# Tx sequence start -tx_seq.write_enable_cntr() -# Tx sequence monitor for rep in range(tc.repeat): - io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) - tx_seq.read_cnt() - -# Wait until controller write access is done -do_until_eq(ddr.read_done, ms_retry=3000, val=1, s_timeout=3600) + tc.append_log(5, '') + tc.append_log(3, '>>> Rep-%d' % rep) -# Rx sequence start -rx_seq.write_enable_cntr() - -# Set DDR3 controller in read mode and start reading -ddr.set_read() -ddr.burstbegin() - -# Rx sequence monitor -for rep in range(tc.repeat): + # Initialization + tx_seq.write_disable(vLevel=5) + rx_seq.write_disable(vLevel=5) + + # Wait for the DDR memory to become available + do_until_eq(ddr.read_init_done, ms_retry=3000, val=1, s_timeout=3600) + + # Flush Tx FIFO + ddr.write_flush_pulse(vLevel=5) io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) - rx_seq.read_cnt() - -# Wait until controller read access is done -do_until_eq(ddr.read_done, ms_retry=3000, val=1, s_timeout=3600) - -rx_seq.read_result() - -io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) - -rx_seq.read_result() - + + # Set DDR controller in write mode and start writing + ddr.set_address(data=start_address, vLevel=5) + ddr.set_burstsize(data=nof_words, vLevel=5) + ddr.set_write(vLevel=5) + ddr.burstbegin(vLevel=5) + + # Tx sequence start + tx_seq.write_enable_cntr(vLevel=5) + + # Tx sequence monitor + for mon in range(nof_mon): + io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) + tx_seq.read_cnt(vLevel=5) + + # Wait until controller write access is done + do_until_eq(ddr.read_done, ms_retry=3000, val=1, s_timeout=3600) + + # Rx sequence start + rx_seq.write_enable_cntr(vLevel=5) + + # Set DDR3 controller in read mode and start reading + ddr.set_read(vLevel=5) + ddr.burstbegin(vLevel=5) + + # Rx sequence monitor + for mon in range(nof_mon): + io.wait_for_time(hw_time=0.01, sim_time=(1, 'us')) + rx_seq.read_cnt(vLevel=5) + + # Wait until controller read access is done + do_until_eq(ddr.read_done, ms_retry=3000, val=1, s_timeout=3600) + + rx_seq.read_result(vLevel=5) + # End tc.set_section_id('') -- GitLab