Files
super6502/hw/efinix_fpga/debug_profile.wizard.json
Byron Lathi 5f6657a227 Add divider
Adds a 16x16 divider to go with the multiplier.

The divider is a single stage with no pipelining, which works at the
slow 2MHz frequency. Doing this lowers the maximum clock frequency to 5.

This is acceptable for now but means that the cpu can't be run at 14,
which is the maximum frequency.
2023-01-05 18:35:42 -05:00

1257 lines
41 KiB
JSON

{
"debug_cores": [
{
"name": "la0",
"type": "la",
"uuid": "60874ad57d6b45aaae3da20d2734bc20",
"trigin_en": false,
"trigout_en": false,
"auto_inserted": true,
"capture_control": false,
"data_depth": 2048,
"input_pipeline": 1,
"probes": [
{
"name": "cpu_addr",
"width": 16,
"probe_type": 1
},
{
"name": "cpu_data_in",
"width": 8,
"probe_type": 1
},
{
"name": "cpu_rwb",
"width": 1,
"probe_type": 1
},
{
"name": "cpu_sync",
"width": 1,
"probe_type": 1
},
{
"name": "cpu_data_out",
"width": 8,
"probe_type": 1
},
{
"name": "cpu_irqb",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/rwb",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/rfd",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/reset",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/remain",
"width": 16,
"probe_type": 1
},
{
"name": "u_divider/quotient",
"width": 16,
"probe_type": 1
},
{
"name": "u_divider/o_data",
"width": 8,
"probe_type": 1
},
{
"name": "u_divider/numer",
"width": 16,
"probe_type": 1
},
{
"name": "u_divider/i_data",
"width": 8,
"probe_type": 1
},
{
"name": "u_divider/denom",
"width": 16,
"probe_type": 1
},
{
"name": "u_divider/cs",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/clken",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/clk",
"width": 1,
"probe_type": 1
},
{
"name": "u_divider/addr",
"width": 3,
"probe_type": 1
}
]
}
],
"connections": [
{
"command": "add_ports",
"id": 1,
"args": {
"netlist": "super6502",
"ports": [
{
"name": "jtag_inst1_CAPTURE",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_DRCK",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_RESET",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_RUNTEST",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_SEL",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_SHIFT",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_TCK",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_TDI",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_TMS",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_UPDATE",
"dir": "in",
"width": 1
},
{
"name": "jtag_inst1_TDO",
"dir": "out",
"width": 1
}
]
}
},
{
"command": "instantiate",
"netlist": "edb_top",
"id": 2,
"instance": "edb_top_inst"
},
{
"command": "connect",
"id": 3,
"args": {
"instance": "edb_top_inst",
"ports": [
{
"name": "bscan_CAPTURE",
"net": "jtag_inst1_CAPTURE"
},
{
"name": "bscan_DRCK",
"net": "jtag_inst1_DRCK"
},
{
"name": "bscan_RESET",
"net": "jtag_inst1_RESET"
},
{
"name": "bscan_RUNTEST",
"net": "jtag_inst1_RUNTEST"
},
{
"name": "bscan_SEL",
"net": "jtag_inst1_SEL"
},
{
"name": "bscan_SHIFT",
"net": "jtag_inst1_SHIFT"
},
{
"name": "bscan_TCK",
"net": "jtag_inst1_TCK"
},
{
"name": "bscan_TDI",
"net": "jtag_inst1_TDI"
},
{
"name": "bscan_TMS",
"net": "jtag_inst1_TMS"
},
{
"name": "bscan_UPDATE",
"net": "jtag_inst1_UPDATE"
},
{
"name": "bscan_TDO",
"net": "jtag_inst1_TDO"
},
{
"name": "la0_clk",
"net": "clk_2",
"path": []
},
{
"name": "la0_probe0[0]",
"net": "cpu_addr[0]",
"path": []
},
{
"name": "la0_probe0[1]",
"net": "cpu_addr[1]",
"path": []
},
{
"name": "la0_probe0[2]",
"net": "cpu_addr[2]",
"path": []
},
{
"name": "la0_probe0[3]",
"net": "cpu_addr[3]",
"path": []
},
{
"name": "la0_probe0[4]",
"net": "cpu_addr[4]",
"path": []
},
{
"name": "la0_probe0[5]",
"net": "cpu_addr[5]",
"path": []
},
{
"name": "la0_probe0[6]",
"net": "cpu_addr[6]",
"path": []
},
{
"name": "la0_probe0[7]",
"net": "cpu_addr[7]",
"path": []
},
{
"name": "la0_probe0[8]",
"net": "cpu_addr[8]",
"path": []
},
{
"name": "la0_probe0[9]",
"net": "cpu_addr[9]",
"path": []
},
{
"name": "la0_probe0[10]",
"net": "cpu_addr[10]",
"path": []
},
{
"name": "la0_probe0[11]",
"net": "cpu_addr[11]",
"path": []
},
{
"name": "la0_probe0[12]",
"net": "cpu_addr[12]",
"path": []
},
{
"name": "la0_probe0[13]",
"net": "cpu_addr[13]",
"path": []
},
{
"name": "la0_probe0[14]",
"net": "cpu_addr[14]",
"path": []
},
{
"name": "la0_probe0[15]",
"net": "cpu_addr[15]",
"path": []
},
{
"name": "la0_probe1[0]",
"net": "cpu_data_in[0]",
"path": []
},
{
"name": "la0_probe1[1]",
"net": "cpu_data_in[1]",
"path": []
},
{
"name": "la0_probe1[2]",
"net": "cpu_data_in[2]",
"path": []
},
{
"name": "la0_probe1[3]",
"net": "cpu_data_in[3]",
"path": []
},
{
"name": "la0_probe1[4]",
"net": "cpu_data_in[4]",
"path": []
},
{
"name": "la0_probe1[5]",
"net": "cpu_data_in[5]",
"path": []
},
{
"name": "la0_probe1[6]",
"net": "cpu_data_in[6]",
"path": []
},
{
"name": "la0_probe1[7]",
"net": "cpu_data_in[7]",
"path": []
},
{
"name": "la0_probe2",
"net": "cpu_rwb",
"path": []
},
{
"name": "la0_probe3",
"net": "cpu_sync",
"path": []
},
{
"name": "la0_probe4[0]",
"net": "cpu_data_out[0]",
"path": []
},
{
"name": "la0_probe4[1]",
"net": "cpu_data_out[1]",
"path": []
},
{
"name": "la0_probe4[2]",
"net": "cpu_data_out[2]",
"path": []
},
{
"name": "la0_probe4[3]",
"net": "cpu_data_out[3]",
"path": []
},
{
"name": "la0_probe4[4]",
"net": "cpu_data_out[4]",
"path": []
},
{
"name": "la0_probe4[5]",
"net": "cpu_data_out[5]",
"path": []
},
{
"name": "la0_probe4[6]",
"net": "cpu_data_out[6]",
"path": []
},
{
"name": "la0_probe4[7]",
"net": "cpu_data_out[7]",
"path": []
},
{
"name": "la0_probe5",
"net": "cpu_irqb",
"path": []
},
{
"name": "la0_probe6",
"net": "rwb",
"path": [
"u_divider"
]
},
{
"name": "la0_probe7",
"net": "rfd",
"path": [
"u_divider"
]
},
{
"name": "la0_probe8",
"net": "reset",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[0]",
"net": "remain[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[1]",
"net": "remain[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[2]",
"net": "remain[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[3]",
"net": "remain[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[4]",
"net": "remain[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[5]",
"net": "remain[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[6]",
"net": "remain[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[7]",
"net": "remain[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[8]",
"net": "remain[8]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[9]",
"net": "remain[9]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[10]",
"net": "remain[10]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[11]",
"net": "remain[11]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[12]",
"net": "remain[12]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[13]",
"net": "remain[13]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[14]",
"net": "remain[14]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe9[15]",
"net": "remain[15]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[0]",
"net": "quotient[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[1]",
"net": "quotient[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[2]",
"net": "quotient[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[3]",
"net": "quotient[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[4]",
"net": "quotient[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[5]",
"net": "quotient[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[6]",
"net": "quotient[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[7]",
"net": "quotient[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[8]",
"net": "quotient[8]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[9]",
"net": "quotient[9]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[10]",
"net": "quotient[10]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[11]",
"net": "quotient[11]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[12]",
"net": "quotient[12]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[13]",
"net": "quotient[13]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[14]",
"net": "quotient[14]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe10[15]",
"net": "quotient[15]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[0]",
"net": "o_data[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[1]",
"net": "o_data[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[2]",
"net": "o_data[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[3]",
"net": "o_data[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[4]",
"net": "o_data[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[5]",
"net": "o_data[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[6]",
"net": "o_data[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe11[7]",
"net": "o_data[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[0]",
"net": "numer[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[1]",
"net": "numer[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[2]",
"net": "numer[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[3]",
"net": "numer[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[4]",
"net": "numer[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[5]",
"net": "numer[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[6]",
"net": "numer[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[7]",
"net": "numer[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[8]",
"net": "numer[8]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[9]",
"net": "numer[9]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[10]",
"net": "numer[10]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[11]",
"net": "numer[11]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[12]",
"net": "numer[12]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[13]",
"net": "numer[13]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[14]",
"net": "numer[14]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe12[15]",
"net": "numer[15]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[0]",
"net": "i_data[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[1]",
"net": "i_data[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[2]",
"net": "i_data[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[3]",
"net": "i_data[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[4]",
"net": "i_data[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[5]",
"net": "i_data[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[6]",
"net": "i_data[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe13[7]",
"net": "i_data[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[0]",
"net": "denom[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[1]",
"net": "denom[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[2]",
"net": "denom[2]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[3]",
"net": "denom[3]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[4]",
"net": "denom[4]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[5]",
"net": "denom[5]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[6]",
"net": "denom[6]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[7]",
"net": "denom[7]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[8]",
"net": "denom[8]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[9]",
"net": "denom[9]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[10]",
"net": "denom[10]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[11]",
"net": "denom[11]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[12]",
"net": "denom[12]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[13]",
"net": "denom[13]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[14]",
"net": "denom[14]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe14[15]",
"net": "denom[15]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe15",
"net": "cs",
"path": [
"u_divider"
]
},
{
"name": "la0_probe16",
"net": "clken",
"path": [
"u_divider"
]
},
{
"name": "la0_probe17",
"net": "clk",
"path": [
"u_divider"
]
},
{
"name": "la0_probe18[0]",
"net": "addr[0]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe18[1]",
"net": "addr[1]",
"path": [
"u_divider"
]
},
{
"name": "la0_probe18[2]",
"net": "addr[2]",
"path": [
"u_divider"
]
}
]
}
}
],
"vdbs": [
{
"file": "debug_top.post.vdb",
"instance": "edb_top_inst"
}
],
"session": {
"wizard": {
"data_depth": 2048,
"capture_control": false,
"selected_nets": [
{
"name": "cpu_addr",
"width": 16,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [],
"net_idx_left": 15,
"net_idx_right": 0
},
{
"name": "cpu_data_in",
"width": 8,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [],
"net_idx_left": 7,
"net_idx_right": 0
},
{
"name": "cpu_rwb",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": []
},
{
"name": "cpu_sync",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": []
},
{
"name": "cpu_data_out",
"width": 8,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [],
"net_idx_left": 7,
"net_idx_right": 0
},
{
"name": "cpu_irqb",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": []
},
{
"name": "rwb",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "rfd",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "reset",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "remain",
"width": 16,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 15,
"net_idx_right": 0
},
{
"name": "quotient",
"width": 16,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 15,
"net_idx_right": 0
},
{
"name": "o_data",
"width": 8,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 7,
"net_idx_right": 0
},
{
"name": "numer",
"width": 16,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 15,
"net_idx_right": 0
},
{
"name": "i_data",
"width": 8,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 7,
"net_idx_right": 0
},
{
"name": "denom",
"width": 16,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 15,
"net_idx_right": 0
},
{
"name": "cs",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "clken",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "clk",
"width": 1,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
]
},
{
"name": "addr",
"width": 3,
"clk_domain": "clk_2",
"selected_probe_type": "DATA AND TRIGGER",
"child": [],
"path": [
"u_divider"
],
"net_idx_left": 2,
"net_idx_right": 0
}
],
"top_module": "super6502",
"db_checksum": "ba5fce12098a2c03e7bae2e9a172d1842464edfca8e284870b3519e987537970",
"src": "elaborate",
"jtag_user": "USER1",
"input_pipeline": 1
}
}
}