+ # GTKWave doc generation
+ style = {
+ '': {'base': 'dec'},
+ 'in': {'color': 'orange'},
+ 'out': {'color': 'yellow'},
+ 'pad_i': {'color': 'orange'},
+ 'pad_o': {'color': 'yellow'},
+ 'core_i': {'color': 'indigo'},
+ 'core_o': {'color': 'blue'},
+ 'debug': {'module': 'top', 'color': 'red'}
+ }
+ traces = [
+ ('ios', [
+ ('uart_0__rx__pad__i', 'pad_i'),
+ ('uart_0__tx__core__o', 'core_o'),
+ ('gpio_0__gpio0__i__pad__i', 'pad_i'),
+ ('gpio_0__gpio0__o__core__o', 'core_o'),
+ ('gpio_0__gpio0__oe__core__o', 'core_o'),
+ ('gpio_0__gpio1__i__pad__i', 'pad_i'),
+ ('gpio_0__gpio1__o__core__o', 'core_o'),
+ ('gpio_0__gpio1__oe__core__o', 'core_o'),
+ ('gpio_0__gpio2__i__pad__i', 'pad_i'),
+ ('gpio_0__gpio2__o__core__o', 'core_o'),
+ ('gpio_0__gpio2__oe__core__o', 'core_o'),
+ ('gpio_0__gpio3__i__pad__i', 'pad_i'),
+ ('gpio_0__gpio3__o__core__o', 'core_o'),
+ ('gpio_0__gpio3__oe__core__o', 'core_o'),
+ ('i2c_0__sda__i__pad__i', 'pad_i'),
+ ('i2c_0__sda__o__core__o', 'core_o'),
+ ('i2c_0__sda__oe__core__o', 'core_o'),
+ ('i2c_0__scl__i__pad__i', 'pad_i'),
+ ('i2c_0__scl__o__core__o', 'core_o'),
+ ('i2c_0__scl__oe__core__o', 'core_o')
+ ]),
+ ('JTAG', [
+ 'fsm.TAP_bus__tck',
+ ('fsm.TAP_bus__tms', 'in'),
+ ('TAP_bus__tdi', 'in'),
+ ('TAP_bus__tdo', 'out'),
+ 'fsm.fsm_state'
+ ]),
+ ('JTAG internal', [
+ ('io_bd2core', 'in'),
+ ('io_bd2io', 'in'),
+ ('io_bd[19:0]', {'base': 'hex'}),
+ 'io_sr[19:0]', {'base': 'hex'},
+ ('io_capture', 'in'),
+ ('io_shift', 'in'),
+ 'ir[3:0]', {'base': 'hex'},
+ ('io_update', 'in'),
+ ('io_isdr', 'in'),
+ ('io_isir', 'in')
+ ])
+ ]
+
+ write_gtkw("jtag_blinker.gtkw", "blinker_test.vcd", traces, style, module="top.jtag")