sim: add timeout signals to zwishbone in gmzpu testbench

onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/clk
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/reset
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/interrupt
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/break
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/dbg
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/rs232_tx
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/rs232_rx
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/re_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/write_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/read_o
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/addr_r
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/ram
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_we
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/is_gpio
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_in
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_out
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_dir
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_out
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_dir
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in_reg
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in_sync
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/direction
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/re_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rs232_rx_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rs232_tx_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/br_clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_br
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/uart_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_avail
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_data
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/tx_br
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/uart_write
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/tx_busy
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/enable_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/read_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/rxd_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/rxav_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/datao_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/r_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/bavail_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/enable_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/load_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/txd_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/datai_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/tbuff_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/t_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/loaded_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/txd_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/ce_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/o_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/ce_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/o_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/is_timer
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timer_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timer_we
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/sample
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/reset
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/cnt
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/cnt_smp
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/ena_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal -childformat {{/gmzpu_tb/zpu/zwc/wb_dat_i(31) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(30) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(29) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(28) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(27) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(26) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(25) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(24) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(23) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(22) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(21) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(20) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(19) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(18) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(17) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(16) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(15) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(14) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(13) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(12) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(11) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(10) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(9) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(8) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(7) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(6) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(5) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(4) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(3) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(2) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(1) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(0) -radix hexadecimal}} -subitemconfig {/gmzpu_tb/zpu/zwc/wb_dat_i(31) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(30) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(29) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(28) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(27) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(26) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(25) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(24) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(23) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(22) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(21) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(20) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(19) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(18) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(17) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(16) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(15) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(14) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(13) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(12) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(11) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(10) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(9) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(8) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(7) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(6) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(5) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(4) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(3) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(2) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(1) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(0) {-height 16 -radix hexadecimal}} /gmzpu_tb/zpu/zwc/wb_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgd_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgd_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_ack_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_adr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_cyc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_stall_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_lock_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_sel_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix binary /gmzpu_tb/zpu/zwc/wb_stb_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tga_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_we_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/config
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/status_err_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/status_rty_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/reg_en
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/bus_en
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/radr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/badr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/cs
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/to_rst
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/to_inc
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/timeout
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/en_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/cfg_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/to_rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/to_inc_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/to_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/reg_config
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/reg_status
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/reading_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/ena_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/reg_en_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/bus_en_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/radr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/badr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/cs_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/reg_en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/bus_en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/re_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/we_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/cs_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/adr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/io_adr_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/en_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/to_rst_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/to_inc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/to_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/cs_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgd_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgd_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_ack_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_adr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_cyc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_stall_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_lock_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_sel_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_stb_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_tga_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_we_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/cyc_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/stb_r
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/interrupt_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/break_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/dbg_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rs232_tx_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rs232_rx_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_in
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_out
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_dir
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_write
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider ram
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/ram_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/ram_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_ready_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider phi_io
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/phi_io_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_ready
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_reading_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/phi_io_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider zwc
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_ena
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_dat_o
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/clk_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/reset_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/interrupt_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/enable_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/break_o
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/in_irq_r
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/idim_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/pc_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/sp_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/inc_sp
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/inc_inc_sp
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/a_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/b_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/fetched_w_r
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/state
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/insn
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/insns
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/opcode_r
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/mem_busy_i
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/write_en_r
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/read_en_r
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/addr_r
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/data_i
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/data_o
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/addr_o
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/write_en_o
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/read_en_o
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/bin_op_res1_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/bin_op_res2_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res1_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res2_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res3_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_a_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_b_r
add wave -noupdate /gmzpu_tb/zpu/zpu/dbg_o
add wave -noupdate /gmzpu_tb/trace_mod/clk_i
add wave -noupdate /gmzpu_tb/trace_mod/dbg_i
add wave -noupdate /gmzpu_tb/trace_mod/stop_i
add wave -noupdate /gmzpu_tb/trace_mod/busy_i
add wave -noupdate /gmzpu_tb/trace_mod/counter
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {12306280 ps} 0}
quietly wave cursor active 1
configure wave -namecolwidth 340
configure wave -valuecolwidth 190
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ps
update
WaveRestoreZoom {12216528 ps} {12443472 ps}

onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/clk
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/reset
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/interrupt
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/break
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/dbg
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/rs232_tx
add wave -noupdate -expand -group TB -group edge_tb /gmzpu_tb/rs232_rx
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/re_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/write_i
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/read_o
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM -radix hexadecimal /gmzpu_tb/zpu/memory/addr_r
add wave -noupdate -expand -group TB -expand -group zpuu -group BRAM /gmzpu_tb/zpu/memory/ram
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_we
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/is_gpio
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_in
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_out
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_dir
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO /gmzpu_tb/zpu/io_map/gpio_i0/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_out
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_dir
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in_reg
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/port_in_sync
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group GPIO -radix hexadecimal /gmzpu_tb/zpu/io_map/gpio_i0/direction
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/re_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group Control /gmzpu_tb/zpu/io_map/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rs232_rx_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rs232_tx_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/br_clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_br
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/uart_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_avail
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/rx_data
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/tx_br
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/uart_write
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group UART /gmzpu_tb/zpu/io_map/tx_busy
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/enable_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/read_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/rxd_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/rxav_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/datao_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/r_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_core/bavail_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/enable_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/load_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/txd_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/datai_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/tbuff_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/t_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/loaded_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_core/txd_r
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/ce_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/rx_timer/o_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/ce_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group {UART tx/rx} /gmzpu_tb/zpu/io_map/tx_timer/o_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/is_timer
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/reset_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timer_read
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timer_we
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/data_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/addr_i
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/data_o
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/sample
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer /gmzpu_tb/zpu/io_map/timerinst/reset
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/cnt
add wave -noupdate -expand -group TB -expand -group zpuu -group IO -group timer -radix hexadecimal /gmzpu_tb/zpu/io_map/timerinst/cnt_smp
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/ena_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} /gmzpu_tb/zpu/zwc/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group {zwc <-> zpu} -radix hexadecimal /gmzpu_tb/zpu/zwc/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal -childformat {{/gmzpu_tb/zpu/zwc/wb_dat_i(31) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(30) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(29) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(28) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(27) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(26) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(25) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(24) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(23) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(22) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(21) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(20) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(19) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(18) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(17) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(16) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(15) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(14) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(13) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(12) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(11) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(10) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(9) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(8) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(7) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(6) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(5) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(4) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(3) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(2) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(1) -radix hexadecimal} {/gmzpu_tb/zpu/zwc/wb_dat_i(0) -radix hexadecimal}} -subitemconfig {/gmzpu_tb/zpu/zwc/wb_dat_i(31) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(30) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(29) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(28) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(27) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(26) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(25) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(24) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(23) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(22) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(21) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(20) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(19) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(18) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(17) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(16) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(15) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(14) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(13) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(12) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(11) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(10) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(9) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(8) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(7) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(6) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(5) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(4) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(3) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(2) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(1) {-height 16 -radix hexadecimal} /gmzpu_tb/zpu/zwc/wb_dat_i(0) {-height 16 -radix hexadecimal}} /gmzpu_tb/zpu/zwc/wb_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgd_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgd_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_ack_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_adr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_cyc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_stall_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_lock_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_sel_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix binary /gmzpu_tb/zpu/zwc/wb_stb_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tga_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb -radix hexadecimal /gmzpu_tb/zpu/zwc/wb_tgc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group wb /gmzpu_tb/zpu/zwc/wb_we_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/config
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/status_err_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/status_rty_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/reg_en
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/bus_en
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/radr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric -radix hexadecimal /gmzpu_tb/zpu/zwc/badr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -group fabric /gmzpu_tb/zpu/zwc/cs
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/en_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/cfg_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/reg_config
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs -radix hexadecimal /gmzpu_tb/zpu/zwc/regs/reg_status
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group regs /gmzpu_tb/zpu/zwc/regs/reading_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/ena_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/reg_en_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/bus_en_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/radr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/badr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode -radix hexadecimal /gmzpu_tb/zpu/zwc/dec/cs_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/reg_en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/bus_en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/en_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/re_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/we_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/cs_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/adr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group decode /gmzpu_tb/zpu/zwc/dec/io_adr_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/en_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/busy_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/ready_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/we_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/adr_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/cs_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_dat_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgd_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgd_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_ack_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_adr_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_cyc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_stall_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_err_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_lock_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_rty_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_sel_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_stb_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_tga_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus -radix hexadecimal /gmzpu_tb/zpu/zwc/zwbbus/b_tgc_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/b_we_o
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/cyc_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group ZWC -expand -group bus /gmzpu_tb/zpu/zwc/zwbbus/stb_r
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/clk_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rst_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/interrupt_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/break_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/dbg_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rs232_tx_o
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/rs232_rx_i
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_in
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_out
add wave -noupdate -expand -group TB -expand -group zpuu -group edge /gmzpu_tb/zpu/gpio_dir
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_write
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/mem_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/mem_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider ram
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/ram_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/ram_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/ram_ready_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider phi_io
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/phi_io_read
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_ready
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/phi_io_reading_r
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/phi_io_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -divider zwc
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_ena
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_busy
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_addr
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_re
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control /gmzpu_tb/zpu/zw_we
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_dat_i
add wave -noupdate -expand -group TB -expand -group zpuu -expand -group mem_control -radix hexadecimal /gmzpu_tb/zpu/zw_dat_o
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/clk_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/reset_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/interrupt_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/enable_i
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/break_o
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/in_irq_r
add wave -noupdate -expand -group {ZPU control} /gmzpu_tb/zpu/zpu/idim_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/pc_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/sp_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/inc_sp
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/inc_inc_sp
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/a_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/b_r
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/fetched_w_r
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/state
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/insn
add wave -noupdate -expand -group {ZPU registers} /gmzpu_tb/zpu/zpu/insns
add wave -noupdate -expand -group {ZPU registers} -radix hexadecimal /gmzpu_tb/zpu/zpu/opcode_r
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/mem_busy_i
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/write_en_r
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/read_en_r
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/addr_r
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/data_i
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/data_o
add wave -noupdate -expand -group {ZPU Memory} -radix hexadecimal /gmzpu_tb/zpu/zpu/addr_o
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/write_en_o
add wave -noupdate -expand -group {ZPU Memory} /gmzpu_tb/zpu/zpu/read_en_o
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/bin_op_res1_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/bin_op_res2_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res1_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res2_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_res3_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_a_r
add wave -noupdate -group {ZPU mul} -radix hexadecimal /gmzpu_tb/zpu/zpu/mult_b_r
add wave -noupdate /gmzpu_tb/zpu/zpu/dbg_o
add wave -noupdate /gmzpu_tb/trace_mod/clk_i
add wave -noupdate /gmzpu_tb/trace_mod/dbg_i
add wave -noupdate /gmzpu_tb/trace_mod/stop_i
add wave -noupdate /gmzpu_tb/trace_mod/busy_i
add wave -noupdate /gmzpu_tb/trace_mod/counter
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {12306280 ps} 0}
quietly wave cursor active 1
configure wave -namecolwidth 340
configure wave -valuecolwidth 190
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ps
update
WaveRestoreZoom {12216528 ps} {12443472 ps}


add colnmames to templates

add colnmames to templates

cap program drop 	ieddtable
	program define	ieddtable

	syntax varlist, ///
					///
		t(varname numeric) tmt(varname numeric) 			///
		[ 													///
		COVARiates(varlist numeric)							///
		STARLevels(numlist descending min=3 max=3 >0 <1)	///
		STARSNOadd											///
		firstdiff											///
		rowlabtype(string) 									///
		rowlabtext(string)									///
		]

	/*************

		Initiate the result matrix

	*************/

	*Creates the template for the result matrix in a subfunction
	templateResultMatrix
	mat startRow = r(startRow)
	local colnames = "`r(colnames)'"

	*Remove this when ready for production
	noi di "Start row to see headers, remove for production"
	matlist startRow // See the default row with its column names

	*Initiate the result matrix with a place holder row that will not be used for anything. Matrices cannot be initiated empty
	mat resultMat = startRow
	mat rownames resultMat = placeholder

	/*
		Column name dictionary
			Differences:
			- 2D : Second differnce coefficient (t*tmt == 1)
			- 1DC : First  differnce coefficient control (t == 0)
			- 1DT : First  differnce coefficient treatment (tmt == 0)

			for each coefficent these stats are also provided:
				- _err : Second differnce errors (type of errors is set in command)
				- _Stars :  Second Differene - The number of significance stars (sig level set in command)
				- _N : Second Difference - Number of observtions in the regression

			Group means:
			- C0 - Control time 0
			- T0 - Treatment time 0
			- C1 - Control time 1
			- T1 - Treatment time 1

			for each group these stats are also provided:
				- _mean : the mean of the group
				- _err : the error in the mean (type of errors is set in command)

	*/

	/*************

		Loop over all variables and prepare the data

	*************/

	foreach var of local varlist {

		*Each variable is a row in the result matrix
		mat `var' = startRow
		mat rownames `var' = `var'
		mat colnames `var' = `colnames'

		*Local that keeps track of which column to fill
		local colindex 0

		tempvar regsample

		/*************

			Calculating 2nd difference and restict the sample
			for this output var

		*************/

		*Run the regression to get the double difference
		qui reg `var' `tmt'#`t' `covariates'
		mat resTable = r(table)

		**This is why this is done first. All other calculations
		* for this outcome var should be restricted to this sample.
		gen `regsample' = e(sample)
		local N `e(N)'

		**Test that the dummy vars creates for valid groups for each
		* combination of time and treat in the sample used for this outcome var
		testDDdums `t' `tmt' `regsample' `var'  //comment in when this is made into a command

		//Get the second differnce
		local ++colindex
		mat `var'[1,`colindex'] =  el(resTable,1,4)

		*Get the standard error of second difference
		local ++colindex
		mat `var'[1,`colindex'] =  el(resTable,2,4)

		matlist resTable

		*Get the number of stars using sub-command countStars
		local ++colindex
		local pvalue = el(resTable,4,4)
		countStars `pvalue' `starlevels'
		mat `var'[1,`colindex'] = `r(stars)'

		*Get the N of second difference regression
		local ++colindex
		mat `var'[1,`colindex'] = `N'

		/*************

			Calculating 1st differences

		*************/
		forvalues tmt01 = 0/1 {

			*Regress time against the outcome var one tmt group at the time
			qui reg `var' `t' `covariates' if `tmt' == `tmt01' & `regsample' == 1
			mat resTable = r(table)

			//Get the 1st diff
			local ++colindex
			mat `var'[1,`colindex'] =  el(resTable,1,1)

			*Get the standard error of 1st diff
			local ++colindex
			mat `var'[1,`colindex'] =  el(resTable,2,1)

			*Get the number of stars using sub-command countStars
			local ++colindex
			local pvalue = el(resTable,4,4)
			countStars `pvalue' `starlevels'
			mat `var'[1,`colindex'] = `r(stars)'

			*Get the N of first difference regression
			local ++colindex
			mat `var'[1,`colindex'] =  `e(N)'

		}

		/*************

			Calculating standard means for all groups

		*************/
		forvalues tmt01 = 0/1 {
			forvalues t01 = 0/1 {

				*Summary stats on this group
				qui mean `var' if `tmt' == `t01' & `t' == `tmt01' & `regsample' == 1

				mat resTable = r(table)

				//Get the mean
				local ++colindex
				mat `var'[1,`colindex'] =  el(resTable,1,1)

				*Get the standard error of the mean
				local ++colindex
				mat `var'[1,`colindex'] =  el(resTable,2,1)

				*Get the N of the ordinary means regressions
				local ++colindex
				mat `var'[1,`colindex'] =  `e(N)'
			}
		}

		*Append this row to the result table
		mat 	resultMat = (resultMat \ `var')

	}

	*Remove placeholder row
	matrix resultMat = resultMat[2..., 1...]

	*Show the final matrix will all data needed to start building the output
	noi di "Matlist with results"
	matlist resultMat

	/*************

		Call subcommands that prepares labels in the table

	*************/

	prepRowLabels `varlist', rowlabtype("`rowlabtype'") rowlabtext("`rowlabtext'")
	return list
	di "`r(rowlabels)'"

end

/***************************************
****************************************

	Write sub-commands for outputs

****************************************
***************************************/

	******
	*Then the result matrix can be passed into subcommands that output in either Excel, LaTeX or in the main window.

	*The results can be accessed like this, which makes the sub-commands less sensitive to changing column order in the section above.
	//mat A = resultMat[3, "C0_Mean"] // returns a 1x1 matrix with the baseline mean for the countrol grop for the thrid outcome var
	//local a = el(A,1,1)				// returns the value

	//matlist A
	//di `a'

/***************************************
****************************************

	Write sub-commands for input handling

****************************************
***************************************/

**Program to prepare row labels for each outcome var, using variable name,
* variable label or manually entered labels depedning on user input. Variable
* names are used if no input.
cap program drop 	prepRowLabels
	program define	prepRowLabels, rclass

	syntax varlist, [rowlabtype(string) rowlabtext(string)]

	*First test input
	if "`rowlabtype'" == "varlab" | "`rowlabtype'" == "" | "`rowlabtype'" == "varname" {
		//All is good do nothing
	}
	else {
		noi display as error "{phang}Row label type [`rowlabtype'] is not a valid row label type. Enter either {it:varlab} or {it:varname} (the default if not specified is {it:varname}). See option {help ieddtable:rowlabtype} for details."
		error 198
	}

	/*************
		Parse through the manually entered labels
	*************/

	*Create a local with the rowlabel input to be tokenized
	local row_labels_to_tokenize `rowlabtext'

	while "`row_labels_to_tokenize'" != "" {

		*Parsing name and label pair
		gettoken nameAndLabel row_labels_to_tokenize : row_labels_to_tokenize, parse("@@")

		*Splitting name and label
		gettoken name label : nameAndLabel

		/*
			We store two locals, one with varnames and one with label. They are
			stored in the same order, so if we find varname we know we will find
			the corresponding label in the same order in the other local.
		*/

		*** Tests

		*Checking that the variables used in rowlabels() are included in the table
		local name_correct : list name in varlist
		if `name_correct' == 0 {
			noi display as error "{phang}Variable [`name'] listed in rowlabtext(`rowlabtext') is not found among the outcome variables."
			error 111
		}

		*Testing that no label is missing
		if "`label'" == "" {
			noi display as error "{phang}For variable [`name'] listed in rowlabtext(`rowlabels') you have not specified any label. Labels are requried for all variables listed in rowlabels(). Variables omitted from rowlabtext() will be assigned labels according to the rule in rowlabtype(). See also option {help ieddtable:rowlabtext}"
			error 198
		}

		*Storing the name in local to be used to get index of corresponding label in the second local
		local rowLabelNames `"`rowLabelNames' "`name'" "'

		*Removing leading or trailing spaces and store label with the same index as in the name local above
		local label = trim("`label'")
		local rowLabelLabels `"`rowLabelLabels' "`label'" "'

		*Parse char is not removed by gettoken, so remove it and start over
		local row_labels_to_tokenize = subinstr("`row_labels_to_tokenize'" ,"@@","",1)
	}

	**Set up locals to be returned. One with row labels without varname but in
	* final order, and one local with length of longest label
	local preppedRowLabels
	local maxLen 0

	*Loop over all varaibles and prepare the labels
	foreach var of local varlist {

		**Get the index of this variable in manually entered labels. Index is
		* zero if no manually entered label for this variable
		local rowLabPos : list posof "`var'" in rowLabelNames

		if `rowLabPos' == 0 {

			*No label was manually entered for this variable, use the other rules
			if "`rowlabtype'" == "varlab" {
				local this_label : variable label `var'		//Use variable label
			}
			else {

				local this_label `var'						//Default, use varname

			}
		}
		else {
			*Getting the manually defined label corresponding to this variable
			local this_label : word `rowLabPos' of `rowLabelLabels'
		}

		*Update the two locals that will be returned
		local preppedRowLabels "`preppedRowLabels' @@`this_label'"	//Prepare the final list
		local maxLen = max(strlen("`this_label'"),`maxLen')	//Store the length on the longest label, used on some outputs
	}

	*Return the locals
	return local rowlabels `preppedRowLabels'
	return local rowlabel_maxlen `maxLen'

end

cap program drop 	testDDdums
	program define	testDDdums

		args time treat samplevar outputvar

		*Test taht the dummies are dummies
		foreach dummy in `time' `treat' {

			cap assert inlist(`dummy',1,0) | missing(`dummy') | `samplevar' == 0
			if _rc {
				noi di as error "{phang}In the difference in differnce regression for outputvar [`outputvar'], the dummy [`dummy'] is not a real dummy as it has values differnt from 1 and 0. See tab below. The tab is restricted to the observations that are not excluded due to missing values etc. in the difference in differnce regression.{p_end}""
				noi tab `dummy' if `samplevar' == 1, missing
				error 480
			}
		}

		**Test that for only two of three dummies there are observations
		* that has only that dummy. I.e. the two that is not the
		* interaction. If the interaction is 1, all three shluld be 1.

		*Test that there is some observations in each group
		forvalues tmt01 = 0/1 {
			forvalues t01 = 0/1 {

				*Summary stats on this group
				count if `treat' == `t01' & `time' == `tmt01' & `samplevar' == 1

				//There got to be more than 1 observation in each group for the regression to make sense
				if `r(N)' < 2 {
					noi di as error "{phang}In the difference in differnce regression for outputvar [`outputvar'] there were not enough observations in each combination of treatment [`treat'] and time [`time']. The tab below is restricted to the observations that are not excluded due to missing values etc. in the difference in differnce regression.{p_end}""
					noi tab `treat' `time' if `samplevar' == 1, missing
					error 480

				}
			}
		}

	end

/***************************************
****************************************

	Write sub-commands for stats

****************************************
***************************************/

cap program drop 	templateResultMatrix
	program define	templateResultMatrix, rclass

	local 2ndDiff_cols 			2D 2D_err 2D_Stars 2D_N

	local 1stDiff_C_cols		1DC 1DC_err 1DC_stars 1DC_N
	local 1stDiff_T_cols		1DT 1DT_err 1DT_stars 1DT_N

	local basicMean_C0_cols		C0_mean C0_err C0_N
	local basicMean_T0_cols		T0_mean T0_err T0_N
	local basicMean_C1_cols		C1_mean C1_err C1_N
	local basicMean_T1_cols		T1_mean T1_err T1_N

	local colnames `2ndDiff_cols' `1stDiff_C_cols' `1stDiff_T_cols' `basicMean_C0_cols' `basicMean_T0_cols' `basicMean_C1_cols' `basicMean_T0_cols'

	*Define default row here. The results for each var will be one row that starts with all missing vlaues
	mat startRow = (.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.)
	mat colnames startRow = `colnames'

	return matrix startRow startRow
	return local colnames `colnames'

end

cap program drop 	countStars
	program define	countStars, rclass

	args pvalue star1 star2 star3

	*Test if custom star levels are used
	if "`star1'" == "" {

		*Set default levels for 1, 2 and 3 stars
		local star1 .1
		local star2 .05
		local star3 .01
	}

	local stars 0
	foreach star_p_level in `star1' `star2' `star3' {

		if `pvalue' < `star_p_level' local ++stars
	}

	return local stars `stars'

end

cap program drop 	ieddtable
	program define	ieddtable

	syntax varlist, ///
					///
		t(varname numeric) tmt(varname numeric) 			///
		[ 													///
		COVARiates(varlist numeric)							///
		STARLevels(numlist descending min=3 max=3 >0 <1)	///
		STARSNOadd											///
		firstdiff											///
		rowlabtype(string) 									///
		rowlabtext(string)									///
		]

	/*************

		Initiate the result matrix

	*************/

	*Creates the template for the result matrix in a subfunction
	templateResultMatrix
	mat startRow = r(startRow)

	*Remove this when ready for production
	noi di "Start row to see headers, remove for production"
	matlist startRow // See the default row with its column names

	*Initiate the result matrix with a place holder row that will not be used for anything. Matrices cannot be initiated empty
	mat resultMat = startRow
	mat rownames resultMat = placeholder

	/*
		Column name dictionary
			Differences:
			- 2D : Second differnce coefficient (t*tmt == 1)
			- 1DC : First  differnce coefficient control (t == 0)
			- 1DT : First  differnce coefficient treatment (tmt == 0)

			for each coefficent these stats are also provided:
				- _err : Second differnce errors (type of errors is set in command)
				- _Stars :  Second Differene - The number of significance stars (sig level set in command)
				- _N : Second Difference - Number of observtions in the regression

			Group means:
			- C0 - Control time 0
			- T0 - Treatment time 0
			- C1 - Control time 1
			- T1 - Treatment time 1

			for each group these stats are also provided:
				- _mean : the mean of the group
				- _err : the error in the mean (type of errors is set in command)

	*/

	/*************

		Loop over all variables and prepare the data

	*************/

	foreach var of local varlist {

		*Each variable is a row in the result matrix
		mat `var' = startRow
		mat rownames `var' = `var'
		mat colnames `var' = `colnames'

		*Local that keeps track of which column to fill
		local colindex 0

		tempvar regsample

		/*************

			Calculating 2nd difference and restict the sample
			for this output var

		*************/

		*Run the regression to get the double difference
		qui reg `var' `tmt'#`t' `covariates'
		mat resTable = r(table)

		**This is why this is done first. All other calculations
		* for this outcome var should be restricted to this sample.
		gen `regsample' = e(sample)
		local N `e(N)'

		**Test that the dummy vars creates for valid groups for each
		* combination of time and treat in the sample used for this outcome var
		testDDdums `t' `tmt' `regsample' `var'  //comment in when this is made into a command

		//Get the second differnce
		local ++colindex
		mat `var'[1,`colindex'] =  el(resTable,1,4)

		*Get the standard error of second difference
		local ++colindex
		mat `var'[1,`colindex'] =  el(resTable,2,4)

		matlist resTable

		*Get the number of stars using sub-command countStars
		local ++colindex
		local pvalue = el(resTable,4,4)
		countStars `pvalue' `starlevels'
		mat `var'[1,`colindex'] = `r(stars)'

		*Get the N of second difference regression
		local ++colindex
		mat `var'[1,`colindex'] = `N'

		/*************

			Calculating 1st differences

		*************/
		forvalues tmt01 = 0/1 {

			*Regress time against the outcome var one tmt group at the time
			qui reg `var' `t' `covariates' if `tmt' == `tmt01' & `regsample' == 1
			mat resTable = r(table)

			//Get the 1st diff
			local ++colindex
			mat `var'[1,`colindex'] =  el(resTable,1,1)

			*Get the standard error of 1st diff
			local ++colindex
			mat `var'[1,`colindex'] =  el(resTable,2,1)

			*Get the number of stars using sub-command countStars
			local ++colindex
			local pvalue = el(resTable,4,4)
			countStars `pvalue' `starlevels'
			mat `var'[1,`colindex'] = `r(stars)'

			*Get the N of first difference regression
			local ++colindex
			mat `var'[1,`colindex'] =  `e(N)'

		}

		/*************

			Calculating standard means for all groups

		*************/
		forvalues tmt01 = 0/1 {
			forvalues t01 = 0/1 {

				*Summary stats on this group
				qui mean `var' if `tmt' == `t01' & `t' == `tmt01' & `regsample' == 1

				mat resTable = r(table)

				//Get the mean
				local ++colindex
				mat `var'[1,`colindex'] =  el(resTable,1,1)

				*Get the standard error of the mean
				local ++colindex
				mat `var'[1,`colindex'] =  el(resTable,2,1)

				*Get the N of the ordinary means regressions
				local ++colindex
				mat `var'[1,`colindex'] =  `e(N)'
			}
		}

		*Append this row to the result table
		mat 	resultMat = (resultMat \ `var')

	}

	*Remove placeholder row
	matrix resultMat = resultMat[2..., 1...]

	*Show the final matrix will all data needed to start building the output
	noi di "Matlist with results"
	matlist resultMat

	/*************

		Call subcommands that prepares labels in the table

	*************/

	prepRowLabels `varlist', rowlabtype("`rowlabtype'") rowlabtext("`rowlabtext'")
	return list
	di "`r(rowlabels)'"

end

/***************************************
****************************************

	Write sub-commands for outputs

****************************************
***************************************/

	******
	*Then the result matrix can be passed into subcommands that output in either Excel, LaTeX or in the main window.

	*The results can be accessed like this, which makes the sub-commands less sensitive to changing column order in the section above.
	//mat A = resultMat[3, "C0_Mean"] // returns a 1x1 matrix with the baseline mean for the countrol grop for the thrid outcome var
	//local a = el(A,1,1)				// returns the value

	//matlist A
	//di `a'

/***************************************
****************************************

	Write sub-commands for input handling

****************************************
***************************************/

**Program to prepare row labels for each outcome var, using variable name,
* variable label or manually entered labels depedning on user input. Variable
* names are used if no input.
cap program drop 	prepRowLabels
	program define	prepRowLabels, rclass

	syntax varlist, [rowlabtype(string) rowlabtext(string)]

	*First test input
	if "`rowlabtype'" == "varlab" | "`rowlabtype'" == "" | "`rowlabtype'" == "varname" {
		//All is good do nothing
	}
	else {
		noi display as error "{phang}Row label type [`rowlabtype'] is not a valid row label type. Enter either {it:varlab} or {it:varname} (the default if not specified is {it:varname}). See option {help ieddtable:rowlabtype} for details."
		error 198
	}

	/*************
		Parse through the manually entered labels
	*************/

	*Create a local with the rowlabel input to be tokenized
	local row_labels_to_tokenize `rowlabtext'

	while "`row_labels_to_tokenize'" != "" {

		*Parsing name and label pair
		gettoken nameAndLabel row_labels_to_tokenize : row_labels_to_tokenize, parse("@@")

		*Splitting name and label
		gettoken name label : nameAndLabel

		/*
			We store two locals, one with varnames and one with label. They are
			stored in the same order, so if we find varname we know we will find
			the corresponding label in the same order in the other local.
		*/

		*** Tests

		*Checking that the variables used in rowlabels() are included in the table
		local name_correct : list name in varlist
		if `name_correct' == 0 {
			noi display as error "{phang}Variable [`name'] listed in rowlabtext(`rowlabtext') is not found among the outcome variables."
			error 111
		}

		*Testing that no label is missing
		if "`label'" == "" {
			noi display as error "{phang}For variable [`name'] listed in rowlabtext(`rowlabels') you have not specified any label. Labels are requried for all variables listed in rowlabels(). Variables omitted from rowlabtext() will be assigned labels according to the rule in rowlabtype(). See also option {help ieddtable:rowlabtext}"
			error 198
		}

		*Storing the name in local to be used to get index of corresponding label in the second local
		local rowLabelNames `"`rowLabelNames' "`name'" "'

		*Removing leading or trailing spaces and store label with the same index as in the name local above
		local label = trim("`label'")
		local rowLabelLabels `"`rowLabelLabels' "`label'" "'

		*Parse char is not removed by gettoken, so remove it and start over
		local row_labels_to_tokenize = subinstr("`row_labels_to_tokenize'" ,"@@","",1)
	}

	**Set up locals to be returned. One with row labels without varname but in
	* final order, and one local with length of longest label
	local preppedRowLabels
	local maxLen 0

	*Loop over all varaibles and prepare the labels
	foreach var of local varlist {

		**Get the index of this variable in manually entered labels. Index is
		* zero if no manually entered label for this variable
		local rowLabPos : list posof "`var'" in rowLabelNames

		if `rowLabPos' == 0 {

			*No label was manually entered for this variable, use the other rules
			if "`rowlabtype'" == "varlab" {
				local this_label : variable label `var'		//Use variable label
			}
			else {

				local this_label `var'						//Default, use varname

			}
		}
		else {
			*Getting the manually defined label corresponding to this variable
			local this_label : word `rowLabPos' of `rowLabelLabels'
		}

		*Update the two locals that will be returned
		local preppedRowLabels "`preppedRowLabels' @@`this_label'"	//Prepare the final list
		local maxLen = max(strlen("`this_label'"),`maxLen')	//Store the length on the longest label, used on some outputs
	}

	*Return the locals
	return local rowlabels `preppedRowLabels'
	return local rowlabel_maxlen `maxLen'

end

cap program drop 	testDDdums
	program define	testDDdums

		args time treat samplevar outputvar

		*Test taht the dummies are dummies
		foreach dummy in `time' `treat' {

			cap assert inlist(`dummy',1,0) | missing(`dummy') | `samplevar' == 0
			if _rc {
				noi di as error "{phang}In the difference in differnce regression for outputvar [`outputvar'], the dummy [`dummy'] is not a real dummy as it has values differnt from 1 and 0. See tab below. The tab is restricted to the observations that are not excluded due to missing values etc. in the difference in differnce regression.{p_end}""
				noi tab `dummy' if `samplevar' == 1, missing
				error 480
			}
		}

		**Test that for only two of three dummies there are observations
		* that has only that dummy. I.e. the two that is not the
		* interaction. If the interaction is 1, all three shluld be 1.

		*Test that there is some observations in each group
		forvalues tmt01 = 0/1 {
			forvalues t01 = 0/1 {

				*Summary stats on this group
				count if `treat' == `t01' & `time' == `tmt01' & `samplevar' == 1

				//There got to be more than 1 observation in each group for the regression to make sense
				if `r(N)' < 2 {
					noi di as error "{phang}In the difference in differnce regression for outputvar [`outputvar'] there were not enough observations in each combination of treatment [`treat'] and time [`time']. The tab below is restricted to the observations that are not excluded due to missing values etc. in the difference in differnce regression.{p_end}""
					noi tab `treat' `time' if `samplevar' == 1, missing
					error 480

				}
			}
		}

	end

/***************************************
****************************************

	Write sub-commands for stats

****************************************
***************************************/

cap program drop 	templateResultMatrix
	program define	templateResultMatrix, rclass

	local 2ndDiff_cols 			2D 2D_err 2D_Stars 2D_N

	local 1stDiff_C_cols		1DC 1DC_err 1DC_stars 1DC_N
	local 1stDiff_T_cols		1DT 1DT_err 1DT_stars 1DT_N

	local basicMean_C0_cols		C0_mean C0_err C0_N
	local basicMean_T0_cols		T0_mean T0_err T0_N
	local basicMean_C1_cols		C1_mean C1_err C1_N
	local basicMean_T1_cols		T1_mean T1_err T1_N

	local colnames `2ndDiff_cols' `1stDiff_C_cols' `1stDiff_T_cols' `basicMean_C0_cols' `basicMean_T0_cols' `basicMean_C1_cols' `basicMean_T0_cols'

	*Define default row here. The results for each var will be one row that starts with all missing vlaues
	mat startRow = (.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.)
	mat colnames startRow = `colnames'

	return matrix startRow startRow

end

cap program drop 	countStars
	program define	countStars, rclass

	args pvalue star1 star2 star3

	*Test if custom star levels are used
	if "`star1'" == "" {

		*Set default levels for 1, 2 and 3 stars
		local star1 .1
		local star2 .05
		local star3 .01
	}

	local stars 0
	foreach star_p_level in `star1' `star2' `star3' {

		if `pvalue' < `star_p_level' local ++stars
	}

	return local stars `stars'

end