From 21e3a477c13d0a2617e1e9634cfc9cf5c4e47ad5 Mon Sep 17 00:00:00 2001 From: Byron Lathi Date: Wed, 19 Jul 2023 21:06:20 -0700 Subject: [PATCH] Update IP --- hw/efinix_fpga/debug_profile.wizard.json | 1373 +++++- hw/efinix_fpga/init_hex.mem | 4353 +---------------- hw/efinix_fpga/ip/divider/divider.v | 10 +- hw/efinix_fpga/ip/divider/divider_define.vh | 8 +- hw/efinix_fpga/ip/divider/divider_tmpl.v | 2 +- hw/efinix_fpga/ip/divider/divider_tmpl.vhd | 76 +- .../ip/divider/ipm/component.pickle | Bin 0 -> 10332 bytes hw/efinix_fpga/ip/divider/ipm/graph.pickle | Bin 0 -> 13049 bytes hw/efinix_fpga/ip/divider/settings.json | 22 +- .../ip/sdram_controller/ipm/component.pickle | Bin 0 -> 49117 bytes .../ip/sdram_controller/ipm/graph.pickle | Bin 0 -> 76990 bytes .../ip/sdram_controller/sdram_controller.v | 8 +- .../sdram_controller_define.vh | 6 +- .../sdram_controller/sdram_controller_tmpl.v | 2 +- .../sdram_controller_tmpl.vhd | 76 +- .../ip/sdram_controller/settings.json | 20 +- hw/efinix_fpga/ip/uart/ipm/component.pickle | Bin 0 -> 14106 bytes hw/efinix_fpga/ip/uart/ipm/graph.pickle | Bin 0 -> 18761 bytes hw/efinix_fpga/ip/uart/settings.json | 35 +- hw/efinix_fpga/ip/uart/uart.v | 24 +- hw/efinix_fpga/ip/uart/uart_define.vh | 14 +- hw/efinix_fpga/ip/uart/uart_tmpl.v | 6 +- hw/efinix_fpga/ip/uart/uart_tmpl.vhd | 84 +- hw/efinix_fpga/super6502.peri.xml | 4 +- hw/efinix_fpga/super6502.sv | 5 +- hw/efinix_fpga/super6502.xml | 10 +- 26 files changed, 1804 insertions(+), 4334 deletions(-) create mode 100644 hw/efinix_fpga/ip/divider/ipm/component.pickle create mode 100644 hw/efinix_fpga/ip/divider/ipm/graph.pickle create mode 100644 hw/efinix_fpga/ip/sdram_controller/ipm/component.pickle create mode 100644 hw/efinix_fpga/ip/sdram_controller/ipm/graph.pickle create mode 100644 hw/efinix_fpga/ip/uart/ipm/component.pickle create mode 100644 hw/efinix_fpga/ip/uart/ipm/graph.pickle diff --git a/hw/efinix_fpga/debug_profile.wizard.json b/hw/efinix_fpga/debug_profile.wizard.json index 209e41f..e3e4271 100644 --- a/hw/efinix_fpga/debug_profile.wizard.json +++ b/hw/efinix_fpga/debug_profile.wizard.json @@ -3,51 +3,156 @@ { "name": "la0", "type": "la", - "uuid": "0b8b4dbc24484e29a3931c7539b99820", + "uuid": "839a8cb8163a4829a5cc15adcbae907b", "trigin_en": false, "trigout_en": false, "auto_inserted": true, "capture_control": false, - "data_depth": 1024, + "data_depth": 4096, "input_pipeline": 1, "probes": [ { - "name": "sd_cmd_IN", + "name": "cpu_data_in", + "width": 8, + "probe_type": 1 + }, + { + "name": "cpu_rwb", "width": 1, "probe_type": 1 }, { - "name": "sd_cmd_OE", + "name": "cpu_sync", "width": 1, "probe_type": 1 }, { - "name": "sd_cmd_OUT", + "name": "cpu_resb", "width": 1, "probe_type": 1 }, { - "name": "sd_data_IN", + "name": "cpu_addr", + "width": 16, + "probe_type": 1 + }, + { + "name": "cpu_nmib", "width": 1, "probe_type": 1 }, { - "name": "sd_data_OE", + "name": "cpu_irqb", "width": 1, "probe_type": 1 }, { - "name": "sd_data_OUT", + "name": "cpu_data_out", + "width": 8, + "probe_type": 1 + }, + { + "name": "cpu_phi2", "width": 1, "probe_type": 1 }, { - "name": "w_sdcard_cs", + "name": "u_sdram_adapter/o_dbg_wr_ack", "width": 1, "probe_type": 1 }, { - "name": "sd_clk", + "name": "u_sdram_adapter/next_counter", + "width": 2, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/o_data", + "width": 8, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/next_state", + "width": 2, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_data_i", + "width": 32, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/i_rwb", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_addr", + "width": 24, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_data_o", + "width": 32, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/i_cs", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/counter", + "width": 2, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/state", + "width": 2, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_last", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_data_valid", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_wr_ack", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_read", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_write", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_rd_ack", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/w_rd_valid", + "width": 1, + "probe_type": 1 + }, + { + "name": "u_sdram_adapter/o_dbg_ref_req", + "width": 1, + "probe_type": 1 + }, + { + "name": "cpu_rdy", "width": 1, "probe_type": 1 } @@ -177,47 +282,1007 @@ }, { "name": "la0_clk", - "net": "clk_2", + "net": "i_sysclk", "path": [] }, { - "name": "la0_probe0", - "net": "sd_cmd_IN", + "name": "la0_probe0[0]", + "net": "cpu_data_in[0]", + "path": [] + }, + { + "name": "la0_probe0[1]", + "net": "cpu_data_in[1]", + "path": [] + }, + { + "name": "la0_probe0[2]", + "net": "cpu_data_in[2]", + "path": [] + }, + { + "name": "la0_probe0[3]", + "net": "cpu_data_in[3]", + "path": [] + }, + { + "name": "la0_probe0[4]", + "net": "cpu_data_in[4]", + "path": [] + }, + { + "name": "la0_probe0[5]", + "net": "cpu_data_in[5]", + "path": [] + }, + { + "name": "la0_probe0[6]", + "net": "cpu_data_in[6]", + "path": [] + }, + { + "name": "la0_probe0[7]", + "net": "cpu_data_in[7]", "path": [] }, { "name": "la0_probe1", - "net": "sd_cmd_OE", + "net": "cpu_rwb", "path": [] }, { "name": "la0_probe2", - "net": "sd_cmd_OUT", + "net": "cpu_sync", "path": [] }, { "name": "la0_probe3", - "net": "sd_data_IN", + "net": "cpu_resb", "path": [] }, { - "name": "la0_probe4", - "net": "sd_data_OE", + "name": "la0_probe4[0]", + "net": "cpu_addr[0]", + "path": [] + }, + { + "name": "la0_probe4[1]", + "net": "cpu_addr[1]", + "path": [] + }, + { + "name": "la0_probe4[2]", + "net": "cpu_addr[2]", + "path": [] + }, + { + "name": "la0_probe4[3]", + "net": "cpu_addr[3]", + "path": [] + }, + { + "name": "la0_probe4[4]", + "net": "cpu_addr[4]", + "path": [] + }, + { + "name": "la0_probe4[5]", + "net": "cpu_addr[5]", + "path": [] + }, + { + "name": "la0_probe4[6]", + "net": "cpu_addr[6]", + "path": [] + }, + { + "name": "la0_probe4[7]", + "net": "cpu_addr[7]", + "path": [] + }, + { + "name": "la0_probe4[8]", + "net": "cpu_addr[8]", + "path": [] + }, + { + "name": "la0_probe4[9]", + "net": "cpu_addr[9]", + "path": [] + }, + { + "name": "la0_probe4[10]", + "net": "cpu_addr[10]", + "path": [] + }, + { + "name": "la0_probe4[11]", + "net": "cpu_addr[11]", + "path": [] + }, + { + "name": "la0_probe4[12]", + "net": "cpu_addr[12]", + "path": [] + }, + { + "name": "la0_probe4[13]", + "net": "cpu_addr[13]", + "path": [] + }, + { + "name": "la0_probe4[14]", + "net": "cpu_addr[14]", + "path": [] + }, + { + "name": "la0_probe4[15]", + "net": "cpu_addr[15]", "path": [] }, { "name": "la0_probe5", - "net": "sd_data_OUT", + "net": "cpu_nmib", "path": [] }, { "name": "la0_probe6", - "net": "w_sdcard_cs", + "net": "cpu_irqb", "path": [] }, { - "name": "la0_probe7", - "net": "sd_clk", + "name": "la0_probe7[0]", + "net": "cpu_data_out[0]", + "path": [] + }, + { + "name": "la0_probe7[1]", + "net": "cpu_data_out[1]", + "path": [] + }, + { + "name": "la0_probe7[2]", + "net": "cpu_data_out[2]", + "path": [] + }, + { + "name": "la0_probe7[3]", + "net": "cpu_data_out[3]", + "path": [] + }, + { + "name": "la0_probe7[4]", + "net": "cpu_data_out[4]", + "path": [] + }, + { + "name": "la0_probe7[5]", + "net": "cpu_data_out[5]", + "path": [] + }, + { + "name": "la0_probe7[6]", + "net": "cpu_data_out[6]", + "path": [] + }, + { + "name": "la0_probe7[7]", + "net": "cpu_data_out[7]", + "path": [] + }, + { + "name": "la0_probe8", + "net": "cpu_phi2", + "path": [] + }, + { + "name": "la0_probe9", + "net": "o_dbg_wr_ack", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe10[0]", + "net": "next_counter[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe10[1]", + "net": "next_counter[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[0]", + "net": "o_data[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[1]", + "net": "o_data[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[2]", + "net": "o_data[2]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[3]", + "net": "o_data[3]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[4]", + "net": "o_data[4]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[5]", + "net": "o_data[5]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[6]", + "net": "o_data[6]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe11[7]", + "net": "o_data[7]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe12[0]", + "net": "next_state[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe12[1]", + "net": "next_state[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[0]", + "net": "w_data_i[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[1]", + "net": "w_data_i[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[2]", + "net": "w_data_i[2]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[3]", + "net": "w_data_i[3]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[4]", + "net": "w_data_i[4]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[5]", + "net": "w_data_i[5]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[6]", + "net": "w_data_i[6]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[7]", + "net": "w_data_i[7]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[8]", + "net": "w_data_i[8]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[9]", + "net": "w_data_i[9]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[10]", + "net": "w_data_i[10]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[11]", + "net": "w_data_i[11]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[12]", + "net": "w_data_i[12]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[13]", + "net": "w_data_i[13]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[14]", + "net": "w_data_i[14]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[15]", + "net": "w_data_i[15]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[16]", + "net": "w_data_i[16]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[17]", + "net": "w_data_i[17]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[18]", + "net": "w_data_i[18]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[19]", + "net": "w_data_i[19]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[20]", + "net": "w_data_i[20]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[21]", + "net": "w_data_i[21]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[22]", + "net": "w_data_i[22]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[23]", + "net": "w_data_i[23]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[24]", + "net": "w_data_i[24]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[25]", + "net": "w_data_i[25]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[26]", + "net": "w_data_i[26]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[27]", + "net": "w_data_i[27]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[28]", + "net": "w_data_i[28]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[29]", + "net": "w_data_i[29]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[30]", + "net": "w_data_i[30]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe13[31]", + "net": "w_data_i[31]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe14", + "net": "i_rwb", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[0]", + "net": "w_addr[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[1]", + "net": "w_addr[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[2]", + "net": "w_addr[2]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[3]", + "net": "w_addr[3]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[4]", + "net": "w_addr[4]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[5]", + "net": "w_addr[5]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[6]", + "net": "w_addr[6]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[7]", + "net": "w_addr[7]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[8]", + "net": "w_addr[8]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[9]", + "net": "w_addr[9]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[10]", + "net": "w_addr[10]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[11]", + "net": "w_addr[11]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[12]", + "net": "w_addr[12]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[13]", + "net": "w_addr[13]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[14]", + "net": "w_addr[14]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[15]", + "net": "w_addr[15]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[16]", + "net": "w_addr[16]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[17]", + "net": "w_addr[17]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[18]", + "net": "w_addr[18]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[19]", + "net": "w_addr[19]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[20]", + "net": "w_addr[20]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[21]", + "net": "w_addr[21]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[22]", + "net": "w_addr[22]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe15[23]", + "net": "w_addr[23]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[0]", + "net": "w_data_o[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[1]", + "net": "w_data_o[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[2]", + "net": "w_data_o[2]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[3]", + "net": "w_data_o[3]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[4]", + "net": "w_data_o[4]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[5]", + "net": "w_data_o[5]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[6]", + "net": "w_data_o[6]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[7]", + "net": "w_data_o[7]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[8]", + "net": "w_data_o[8]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[9]", + "net": "w_data_o[9]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[10]", + "net": "w_data_o[10]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[11]", + "net": "w_data_o[11]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[12]", + "net": "w_data_o[12]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[13]", + "net": "w_data_o[13]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[14]", + "net": "w_data_o[14]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[15]", + "net": "w_data_o[15]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[16]", + "net": "w_data_o[16]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[17]", + "net": "w_data_o[17]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[18]", + "net": "w_data_o[18]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[19]", + "net": "w_data_o[19]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[20]", + "net": "w_data_o[20]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[21]", + "net": "w_data_o[21]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[22]", + "net": "w_data_o[22]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[23]", + "net": "w_data_o[23]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[24]", + "net": "w_data_o[24]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[25]", + "net": "w_data_o[25]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[26]", + "net": "w_data_o[26]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[27]", + "net": "w_data_o[27]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[28]", + "net": "w_data_o[28]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[29]", + "net": "w_data_o[29]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[30]", + "net": "w_data_o[30]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe16[31]", + "net": "w_data_o[31]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe17", + "net": "i_cs", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe18[0]", + "net": "counter[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe18[1]", + "net": "counter[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe19[0]", + "net": "state[0]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe19[1]", + "net": "state[1]", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe20", + "net": "w_last", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe21", + "net": "w_data_valid", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe22", + "net": "w_wr_ack", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe23", + "net": "w_read", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe24", + "net": "w_write", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe25", + "net": "w_rd_ack", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe26", + "net": "w_rd_valid", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe27", + "net": "o_dbg_ref_req", + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "la0_probe28", + "net": "cpu_rdy", "path": [] } ] @@ -232,69 +1297,297 @@ ], "session": { "wizard": { - "data_depth": 1024, + "data_depth": 4096, "capture_control": false, "selected_nets": [ { - "name": "sd_cmd_IN", + "name": "cpu_data_in", + "width": 8, + "clk_domain": "i_sysclk", + "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", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "sd_cmd_OE", + "name": "cpu_sync", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "sd_cmd_OUT", + "name": "cpu_resb", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "sd_data_IN", + "name": "cpu_addr", + "width": 16, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [], + "net_idx_left": 15, + "net_idx_right": 0 + }, + { + "name": "cpu_nmib", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "sd_data_OE", + "name": "cpu_irqb", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "sd_data_OUT", + "name": "cpu_data_out", + "width": 8, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [], + "net_idx_left": 7, + "net_idx_right": 0 + }, + { + "name": "cpu_phi2", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] }, { - "name": "w_sdcard_cs", + "name": "o_dbg_wr_ack", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], - "path": [] + "path": [ + "u_sdram_adapter" + ] }, { - "name": "sd_clk", + "name": "next_counter", + "width": 2, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 1, + "net_idx_right": 0 + }, + { + "name": "o_data", + "width": 8, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 7, + "net_idx_right": 0 + }, + { + "name": "next_state", + "width": 2, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 1, + "net_idx_right": 0 + }, + { + "name": "w_data_i", + "width": 32, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 31, + "net_idx_right": 0 + }, + { + "name": "i_rwb", "width": 1, - "clk_domain": "clk_2", + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_addr", + "width": 24, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 23, + "net_idx_right": 0 + }, + { + "name": "w_data_o", + "width": 32, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 31, + "net_idx_right": 0 + }, + { + "name": "i_cs", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "counter", + "width": 2, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 1, + "net_idx_right": 0 + }, + { + "name": "state", + "width": 2, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ], + "net_idx_left": 1, + "net_idx_right": 0 + }, + { + "name": "w_last", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_data_valid", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_wr_ack", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_read", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_write", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_rd_ack", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "w_rd_valid", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "o_dbg_ref_req", + "width": 1, + "clk_domain": "i_sysclk", + "selected_probe_type": "DATA AND TRIGGER", + "child": [], + "path": [ + "u_sdram_adapter" + ] + }, + { + "name": "cpu_rdy", + "width": 1, + "clk_domain": "i_sysclk", "selected_probe_type": "DATA AND TRIGGER", "child": [], "path": [] diff --git a/hw/efinix_fpga/init_hex.mem b/hw/efinix_fpga/init_hex.mem index 7ce1a96..15cd4f0 100644 --- a/hw/efinix_fpga/init_hex.mem +++ b/hw/efinix_fpga/init_hex.mem @@ -1,4096 +1,257 @@ -20 -a5 -f0 -cb -80 -fd -48 -a5 -14 -8d -d8 -ef -a5 -15 -8d -d9 -ef -a5 -16 -8d -da -ef -a5 -17 -8d -db -ef -68 -8d -dc -ef -60 -5a -85 -0c -86 -0d -a9 -00 -a0 -00 -91 -0c -c8 -91 -0c -c8 -91 -0c -c8 -91 -0c -ad -dc -ef -29 -01 -f0 -f9 -ad -d8 -ef -a0 -00 -91 -0c -ad -d9 -ef -c8 -91 -0c -ad -da -ef -c8 -91 -0c -ad -db -ef -c8 -91 -0c -7a -60 -5a -85 -0c -86 -0d -a9 -00 -a0 -00 -91 -0c -c8 -91 -0c -c8 -91 -0c -c8 -91 -0c -a0 -12 -88 -f0 -26 -ad -dc -ef -29 -01 -f0 -f6 -ad -d8 -ef -a0 -00 -91 -0c -ad -d9 -ef -c8 -91 -0c -ad -da -ef -c8 -91 -0c -ad -db -ef -c8 -91 -0c -7a -a9 -00 -a2 -00 -60 -7a -a9 -ff -a2 -ff -60 -48 -ad -dc -ef -29 -02 -f0 -f9 -68 -60 -64 -14 -64 -15 -64 -16 -64 -17 -a9 -00 -20 -06 -f0 -ea -a9 -12 -3a -d0 -fd -a9 -aa -85 -14 -e6 -15 -a9 -08 -20 -06 -f0 -a9 -00 -a2 -00 -20 -56 -f0 -a5 -00 -f0 -ea -64 -14 -64 -15 -64 -16 -64 -17 -a9 -37 -20 -06 -f0 -a9 -00 -a2 -00 -20 -20 -f0 -a9 -18 -85 -16 -a9 -40 -85 -17 -a9 -29 -20 -06 -f0 -a9 -00 -a2 -00 -20 -20 -f0 -a5 -03 -f0 -d4 -64 -16 -64 -17 -a9 -02 -20 -06 -f0 -a9 -25 -3a -d0 -fd -a9 -00 -a2 -00 -20 -20 -f0 -64 -14 -64 -15 -64 -16 -64 -17 -a9 -03 -20 -06 -f0 -64 -00 -64 -01 -64 -02 -64 -03 -a9 -00 -a2 -00 -20 -20 -f0 -a5 -02 -a6 -03 -60 -64 -14 -64 -15 -85 -16 -86 -17 -a9 -07 -20 -06 -f0 -a9 -00 -a2 -00 -20 -20 -f0 -a5 -00 -a6 -01 -60 -64 -14 -64 -15 -85 -16 -86 -17 -a9 -0d -20 -06 -f0 -a9 -00 -a2 -00 -20 -20 -f0 -a5 -00 -a6 -01 -60 -85 -0e -86 -0f -a0 -03 -b1 -04 -85 -17 -88 -b1 -04 -85 -16 -88 -b1 -04 -85 -15 -b2 -04 -85 -14 -a9 -11 -20 -06 -f0 -a9 -00 -a2 -00 -20 -20 -f0 -20 -9b -f0 -a0 -00 -84 -14 -ad -dd -ef -91 -0e -c8 -d0 -f8 -a5 -14 -d0 -06 -e6 -0f -e6 -14 -80 -ee -20 -b1 -f1 -60 -c8 -48 -18 -98 -65 -04 -85 -04 -90 -02 -e6 -05 -68 -60 -a0 -04 -4c -a4 -f1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -f0 -00 -f0 -00 -f0 +@00000000 +4C 00 00 8D 11 02 8E 12 02 8D 18 02 8E 19 02 88 +B9 FF FF 8D 22 02 88 B9 FF FF 8D 21 02 8C 24 02 +20 FF FF A0 FF D0 E8 60 00 00 02 FB 00 00 00 00 +A2 FF 9A D8 A9 F0 85 00 A9 7E 85 01 20 7A FB 20 +05 F8 20 50 F0 58 20 29 F1 6C FC FF 20 F9 F7 00 +A0 00 F0 07 A9 50 A2 F0 4C 03 02 60 AD FF EF A2 +00 60 8D FF EF 60 20 0F F1 C9 0A D0 05 A9 0D 20 +0F F1 60 DA 5A A8 B2 00 AA A9 1B 20 0F F1 A9 5B +20 0F F1 98 20 0F F1 A9 3B 20 0F F1 8A 20 0F F1 +A9 48 20 0F F1 7A FA 60 DA A9 1B 20 0F F1 A9 63 +20 0F F1 68 60 40 DA BA 48 E8 E8 BD 00 01 29 10 +D0 06 68 FA 20 28 F1 40 4C B8 F0 48 20 6B F9 8D +D8 EF 8E D9 EF A5 02 8D DA EF A5 03 8D DB EF 68 +8D DC EF 60 5A 85 08 86 09 AD DC EF 29 01 F0 F9 +AD D8 EF A0 00 91 08 AD D9 EF C8 91 08 AD DA EF +C8 91 08 AD DB EF C8 91 08 7A 60 AD DD EF A2 00 +60 48 AD DC EF 29 02 F0 F9 68 60 8D E6 EF 60 48 +8D E6 EF AD E7 EF 89 02 D0 F9 68 60 AD E6 EF A2 +00 60 AD E7 EF A2 00 60 60 20 9D F8 20 98 F0 A9 +C4 A2 FB 20 66 F8 A9 9D A2 FB 20 79 FA A0 02 20 +32 F8 20 AA F1 A9 D6 A2 FB 20 79 FA A0 02 20 32 +F8 20 F7 F2 A0 00 20 A7 FA A9 E6 A2 FB 20 79 FA +A0 03 20 21 F9 20 79 FA A0 04 20 32 F8 A0 01 20 +21 F9 20 36 F3 A9 EF A2 FB 20 79 FA A0 02 20 32 +F8 4C 87 F1 4C 81 F1 4C 84 F1 A9 B2 A2 FB 20 79 +FA AD FC FF AE FD FF 20 79 FA A0 04 20 32 F8 A2 +00 A9 00 4C A6 F1 20 CC F8 60 20 B7 F8 A9 1B A2 +FC 20 66 F8 A2 00 86 02 86 03 A9 00 20 89 F9 A2 +00 A9 00 20 BB F0 A9 0F A2 FC 20 79 FA A0 02 20 +32 F8 A2 01 A9 00 85 02 A9 00 85 03 A9 AA 20 89 +F9 A2 00 A9 08 20 BB F0 A9 02 20 3B F9 20 D4 F0 +A9 32 A2 FC 20 79 FA A0 07 20 2A F9 20 89 F9 A0 +06 20 32 F8 A2 00 A9 00 A0 01 91 00 A0 01 A2 00 +B1 00 C9 65 A9 00 A2 00 2A D0 03 4C 2D F2 A9 F6 +A2 FB 20 79 FA A0 02 20 32 F8 4C F3 F2 A2 00 86 +02 86 03 A9 00 20 89 F9 A2 00 A9 37 20 BB F0 A9 +02 20 3B F9 20 D4 F0 A2 00 A9 18 85 02 A9 40 85 +03 A9 00 20 89 F9 A2 00 A9 29 20 BB F0 A9 02 20 +3B F9 20 D4 F0 A9 03 A2 FC 20 79 FA A0 07 20 2A +F9 20 89 F9 A0 06 20 32 F8 A2 00 A9 00 A0 00 91 +00 A0 00 A2 00 B1 00 C9 FF 20 55 FA F0 03 4C 94 +F2 4C A2 F2 A0 00 A2 00 18 A9 01 71 00 91 00 4C +81 F2 A0 01 A2 00 18 A9 01 71 00 91 00 A0 05 20 +2A F9 20 89 F9 A2 00 86 02 86 03 A9 00 20 47 F9 +F0 03 4C 0C F2 A2 00 86 02 86 03 A9 00 20 89 F9 +A2 00 A9 02 20 BB F0 A9 02 20 3B F9 20 D4 F0 A9 +27 A2 FC 20 79 FA A0 07 20 2A F9 20 89 F9 A0 06 +20 32 F8 20 DF F8 60 20 AA F8 A2 00 86 02 86 03 +A9 00 20 89 F9 A2 00 A9 03 20 BB F0 A2 00 86 02 +86 03 A9 00 A0 00 20 B2 FA A5 00 A6 01 20 D4 F0 +A0 03 20 2A F9 A0 00 A6 03 A5 02 84 03 84 02 4C +32 F3 20 DA F8 60 20 79 FA 20 AA F8 A0 05 20 21 +F9 20 F2 F7 86 03 85 02 A9 00 AA 20 89 F9 A2 00 +A9 07 20 BB F0 A5 00 A6 01 20 D4 F0 A0 01 20 21 +F9 4C 64 F3 20 DF F8 60 20 79 FA 20 AA F8 A0 05 +20 21 F9 20 F2 F7 86 03 85 02 A9 00 AA 20 89 F9 +A2 00 A9 0D 20 BB F0 A5 00 A6 01 20 D4 F0 A0 01 +20 21 F9 4C 96 F3 20 DF F8 60 20 79 FA 20 B7 F8 +A0 0B 20 2A F9 20 89 F9 A2 00 A9 11 20 BB F0 A9 +02 20 3B F9 20 D4 F0 20 01 F1 A2 00 A9 00 A0 00 +20 A7 FA A0 01 20 21 F9 C9 00 8A E9 02 50 02 49 +80 0A A9 00 A2 00 2A F0 03 4C DF F3 4C 06 F4 A0 +07 20 21 F9 20 79 FA A0 03 20 21 F9 20 B3 F7 20 +79 FA 20 FB F0 A0 00 20 8F FA A0 00 A2 00 A9 01 +20 CF F7 4C C3 F3 A0 0C 20 DF F7 60 A0 00 B1 16 +E6 16 D0 02 E6 17 60 AD 3B 04 8D 36 04 20 B8 F4 +A9 36 A2 04 20 79 FA 20 70 FA 4C 00 02 A5 14 38 +E9 02 85 14 B0 02 C6 15 60 AD 40 04 D0 11 20 56 +F4 4C F2 F7 AD 40 04 D0 06 20 56 F4 4C EC F7 20 +56 F4 85 02 86 03 20 2D F4 A0 01 B1 14 AA 88 B1 +14 60 A0 00 84 08 84 09 B1 16 38 E9 30 90 2C C9 +0A B0 28 20 10 F4 48 A5 08 A6 09 06 08 26 09 06 +08 26 09 65 08 85 08 8A 65 09 85 09 06 08 26 09 +68 65 08 85 08 90 D1 E6 09 B0 CD A5 08 A6 09 60 +AC 42 04 EE 42 04 99 43 04 60 A9 43 A2 04 18 6D +42 04 90 01 E8 4C 79 FA A5 18 A6 19 4C 79 FA 20 +17 F4 EE 3C 04 D0 F8 EE 3D 04 D0 F3 60 20 B8 F4 +AD 57 04 AE 58 04 20 79 FA AD 59 04 AE 5A 04 20 +79 FA 4C 00 02 84 08 20 89 F9 20 AA F4 A5 08 4C +B9 F9 84 08 20 89 F9 20 AA F4 A5 08 4C FA F9 48 +A0 05 B9 14 00 99 30 04 88 10 F7 68 85 14 86 15 +20 C4 F8 85 16 86 17 20 C4 F8 85 18 86 19 A9 00 +A8 91 18 C8 91 18 C8 B1 18 8D 01 02 C8 B1 18 8D +02 02 A5 16 85 08 A5 17 85 09 A0 00 B1 16 F0 0B +C9 25 F0 07 C8 D0 F5 E6 17 D0 F1 98 18 65 16 85 +16 90 02 E6 17 38 E5 08 85 0A A5 17 E5 09 85 0B +05 0A F0 25 20 B7 F8 A0 05 A5 19 91 00 88 A5 18 +91 00 88 A5 09 91 00 88 A5 08 91 00 88 A5 0B 91 +00 88 A5 0A 91 00 20 00 02 20 0C F4 AA D0 0B A2 +05 BD 30 04 95 14 CA 10 F8 60 C9 25 D0 09 B1 16 +C9 25 D0 09 20 10 F4 20 1A F4 4C 32 F5 A9 00 A2 +0B 9D 37 04 CA 10 FA B1 16 C9 2D D0 05 8E 37 04 +F0 19 C9 2B D0 05 8E 38 04 F0 10 C9 20 D0 05 8E +39 04 F0 07 C9 23 D0 09 8E 3A 04 20 10 F4 4C B7 +F5 A2 20 C9 30 D0 06 AA 20 10 F4 B1 16 8E 3B 04 +C9 2A D0 09 20 10 F4 20 56 F4 4C 00 F6 20 62 F4 +8D 3C 04 8E 3D 04 8C 3E 04 8C 3F 04 B1 16 C9 2E +D0 1B 20 10 F4 B1 16 C9 2A D0 09 20 10 F4 20 56 +F4 4C 27 F6 20 62 F4 8D 3E 04 8E 3F 04 B1 16 C9 +7A F0 19 C9 68 F0 15 C9 74 F0 11 C9 6A F0 08 C9 +4C F0 04 C9 6C D0 0B A9 FF 8D 40 04 20 10 F4 4C +2D F6 8C 42 04 A2 43 8E 57 04 A2 04 8E 58 04 20 +10 F4 C9 63 D0 0E 20 56 F4 8D 43 04 A9 00 8D 44 +04 4C 51 F7 C9 64 F0 04 C9 69 D0 2D A2 00 AD 39 +04 F0 02 A2 20 AD 38 04 F0 02 A2 2B 8E 41 04 20 +44 F4 A4 03 30 0B AC 41 04 F0 06 8C 43 04 EE 42 +04 A0 0A 20 E5 F4 4C 51 F7 C9 6E D0 15 20 56 F4 +85 08 86 09 A0 00 B1 18 91 08 C8 B1 18 91 08 4C +32 F5 C9 6F D0 27 20 44 F4 AC 3A 04 F0 17 48 86 +10 05 10 05 02 05 03 0D 3E 04 0D 3F 04 F0 06 A9 +30 20 A0 F4 68 A0 08 20 E5 F4 4C 51 F7 C9 70 D0 +0D A2 00 8E 40 04 E8 8E 3A 04 A9 78 D0 27 C9 73 +D0 0C 20 56 F4 8D 57 04 8E 58 04 4C 51 F7 C9 75 +D0 0B 20 39 F4 A0 0A 20 F2 F4 4C 51 F7 C9 78 F0 +04 C9 58 D0 29 48 AD 3A 04 F0 0A A9 30 20 A0 F4 +A9 58 20 A0 F4 20 39 F4 A0 10 20 F2 F4 68 C9 78 +D0 09 AD 57 04 AE 58 04 20 DB FA 4C 51 F7 4C 32 +F5 AD 57 04 AE 58 04 20 C5 FA 8D 59 04 8E 5A 04 +AD 3E 04 0D 3F 04 F0 15 AE 3E 04 EC 59 04 AD 3F +04 A8 ED 5A 04 B0 06 8E 59 04 8C 5A 04 38 AD 3C +04 ED 59 04 AA AD 3D 04 ED 5A 04 B0 03 A9 00 AA +49 FF 8D 3D 04 8A 49 FF 8D 3C 04 AD 37 04 D0 03 +20 C2 F4 20 CD F4 AD 37 04 F0 03 20 C2 F4 4C 32 +F5 A2 00 18 A0 00 71 00 C8 85 10 8A 71 00 AA 18 +A5 00 69 02 85 00 90 02 E6 01 A5 10 60 A0 00 18 +71 00 91 00 48 C8 8A 71 00 91 00 AA 68 60 C8 48 +18 98 65 00 85 00 90 02 E6 01 68 60 A0 FF E0 80 +B0 02 A0 00 84 02 84 03 60 A0 00 F0 07 A9 50 A2 +F0 4C 03 02 60 A9 00 85 08 A9 F0 85 09 A9 00 85 +0A A9 02 85 0B A2 CF A9 FF 85 10 A0 00 E8 F0 0D +B1 08 91 0A C8 D0 F6 E6 09 E6 0B D0 F0 E6 10 D0 +EF 60 8C 5B 04 88 88 98 18 65 00 85 08 A6 01 90 +01 E8 86 09 A0 01 B1 08 AA 88 B1 08 20 79 FA A5 +08 A6 09 20 4A FB AC 5B 04 4C DF F7 85 08 86 09 +20 73 F0 4C 6A F8 85 08 86 09 A0 00 B1 08 F0 0E +C8 84 10 20 66 F0 A4 10 D0 F2 E6 09 D0 EE 60 E0 +00 D0 15 4A AA BD 64 FC 90 05 4A 4A 4A 4A 18 29 +0F AA BD 59 FC A2 00 60 38 A9 00 AA 60 A5 00 38 +E9 02 85 00 90 01 60 C6 01 60 A5 00 38 E9 04 85 +00 90 01 60 C6 01 60 A5 00 38 E9 06 85 00 90 01 +60 C6 01 60 A0 01 B1 00 AA 88 B1 00 E6 00 F0 05 +E6 00 F0 03 60 E6 00 E6 01 60 A0 04 4C DF F7 A0 +06 4C DF F7 85 08 86 09 A0 03 B1 00 38 E5 03 D0 +22 88 B1 00 C5 02 D0 0C 88 B1 00 C5 09 D0 05 88 +B1 00 C5 08 08 20 DA F8 28 F0 04 B0 03 A9 FF 60 +A9 01 60 50 04 49 FF 09 01 08 20 DA F8 28 60 A0 +01 B1 00 AA 88 B1 00 60 A0 03 B1 00 85 03 88 B1 +00 85 02 88 B1 00 AA 88 B1 00 60 A2 00 18 65 00 +48 8A 65 01 AA 68 60 20 E4 F8 4C 36 FA 18 49 FF +69 01 48 8A 49 FF 69 00 AA A5 02 49 FF 69 00 85 +02 A5 03 49 FF 69 00 85 03 68 60 A0 03 B1 00 85 +03 88 B1 00 85 02 88 B1 00 AA 88 B1 00 4C DA F8 +A9 00 AA A0 00 84 02 84 03 48 20 AA F8 A0 03 A5 +03 91 00 88 A5 02 91 00 88 8A 91 00 68 88 91 00 +60 85 10 20 C4 F8 85 0A 86 0B 85 0C 86 0D 20 62 +FA 20 C4 F8 85 02 86 03 60 20 A1 F9 A6 03 A4 10 +C0 0A D0 39 A5 02 05 09 05 08 D0 11 E0 80 D0 0D +A0 0B B9 4D FC 91 0A 88 10 F8 4C 31 FA 8A 10 1D +A9 2D A0 00 91 0A E6 0A D0 02 E6 0B A5 08 A6 09 +20 4D F9 85 08 86 09 4C FD F9 20 A1 F9 A9 00 48 +A0 20 A9 00 06 08 26 09 26 02 26 03 2A C5 10 90 +04 E5 10 E6 08 88 D0 EC A8 B9 3D FC 48 A5 08 05 +09 05 02 05 03 D0 D9 A0 00 68 91 0A F0 03 C8 D0 +F8 A5 0C A6 0D 60 D0 06 A2 00 8A 60 D0 FA A2 00 +A9 01 60 F0 F9 30 F7 A2 00 8A 60 F0 02 10 EF A2 +00 8A 60 F0 E9 90 E7 A2 00 8A 60 F0 DB A2 00 8A +2A 60 A0 01 B1 00 85 09 88 B1 00 85 08 4C CC F8 +A9 01 4C 77 FA A9 00 A2 00 48 A5 00 38 E9 02 85 +00 B0 02 C6 01 A0 01 8A 91 00 68 88 91 00 60 48 +84 10 A0 01 B1 00 85 09 88 B1 00 85 08 A4 10 68 +91 08 4C CC F8 A0 00 91 00 C8 48 8A 91 00 68 60 +A0 00 91 00 C8 48 8A 91 00 C8 A5 02 91 00 C8 A5 +03 91 00 68 60 85 0A 86 0B A2 00 A0 00 B1 0A F0 +08 C8 D0 F9 E6 0B E8 D0 F4 98 60 85 08 86 09 85 +0A 86 0B A0 00 B1 08 F0 14 20 83 F8 29 02 F0 06 +B1 08 69 20 91 08 C8 D0 EC E6 09 D0 E8 A5 0A A6 +0B 60 20 C4 F8 85 0A 86 0B E8 8E 2F 02 AA E8 8E +2E 02 20 62 FA 20 C4 F8 85 0C 86 0D A0 00 84 10 +B1 0C 18 65 0A 91 0C C8 B1 0C 65 0B 91 0C CE 2E +02 F0 11 A4 10 B1 08 C8 D0 02 E6 09 84 10 20 66 +F0 4C 2E FB CE 2F 02 D0 EA 60 85 08 86 09 A9 00 +8D 28 02 8D 29 02 A0 01 B1 00 AA 88 B1 00 20 79 +FA A0 02 A9 28 91 00 C8 A9 02 91 00 A5 08 A6 09 +20 FF F4 AD 28 02 AE 29 02 60 A9 30 85 08 A9 02 +85 09 A9 00 A8 A2 02 F0 0A 91 08 C8 D0 FB E6 09 +CA D0 F6 C0 2C F0 05 91 08 C8 D0 F7 60 41 6E 64 +20 74 65 73 74 69 6E 67 20 63 70 72 69 6E 74 66 +0A 00 52 65 73 65 74 20 76 65 63 74 6F 72 3A 20 +25 78 0A 00 53 74 61 72 74 69 6E 67 20 73 64 5F +69 6E 69 74 0A 00 66 69 6E 69 73 68 20 73 64 5F +69 6E 69 74 0A 00 72 63 61 3A 20 25 78 0A 00 44 +6F 6E 65 21 0A 00 53 44 20 54 69 6D 65 64 20 6F +75 74 00 43 4D 44 34 31 3A 20 25 6C 78 0A 00 53 +65 6E 74 20 52 65 73 65 74 0A 00 49 6E 20 73 64 +5F 69 6E 69 74 0A 00 43 4D 44 32 3A 20 25 6C 78 +0A 00 43 4D 44 38 3A 20 25 6C 78 0A 00 30 31 32 +33 34 35 36 37 38 39 41 42 43 44 45 46 2D 32 31 +34 37 34 38 33 36 34 38 00 00 01 02 0C 09 0A 10 +40 50 A0 D0 66 66 66 66 A6 88 88 66 66 66 66 66 +66 66 66 66 09 00 00 00 00 00 00 00 33 33 33 33 +33 00 00 00 50 55 55 25 22 22 22 22 22 22 22 22 +22 02 00 00 40 44 44 14 11 11 11 11 11 11 11 11 +11 01 00 70 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 A5 F0 30 F0 A6 F0 diff --git a/hw/efinix_fpga/ip/divider/divider.v b/hw/efinix_fpga/ip/divider/divider.v index f221cb3..e9413c7 100644 --- a/hw/efinix_fpga/ip/divider/divider.v +++ b/hw/efinix_fpga/ip/divider/divider.v @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 2.2 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -43,7 +43,7 @@ // //////////////////////////////////////////////////////////////////////////////// -`define IP_UUID _e54826097db04c8995c0c56653e54765 +`define IP_UUID _80fa5e3b79ce4c76a6cd48724ad5bdd2 `define IP_NAME_CONCAT(a,b) a``b `define IP_MODULE_NAME(name) `IP_NAME_CONCAT(name,`IP_UUID) module divider ( @@ -61,7 +61,7 @@ output rfd .WIDTHN (16), .WIDTHD (16), .DREPRESENTATION ("UNSIGNED"), -.PIPELINE (0), +.PIPELINE (1'b0), .LATENCY (16) ) u_divider( .numer ( numer ), diff --git a/hw/efinix_fpga/ip/divider/divider_define.vh b/hw/efinix_fpga/ip/divider/divider_define.vh index 66c6b56..4538851 100644 --- a/hw/efinix_fpga/ip/divider/divider_define.vh +++ b/hw/efinix_fpga/ip/divider/divider_define.vh @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 2.2 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -47,5 +47,5 @@ localparam NREPRESENTATION = "UNSIGNED"; localparam WIDTHN = 16; localparam WIDTHD = 16; localparam DREPRESENTATION = "UNSIGNED"; -localparam PIPELINE = 0; +localparam PIPELINE = 1'b0; localparam LATENCY = 16; diff --git a/hw/efinix_fpga/ip/divider/divider_tmpl.v b/hw/efinix_fpga/ip/divider/divider_tmpl.v index bf3b514..aee9952 100644 --- a/hw/efinix_fpga/ip/divider/divider_tmpl.v +++ b/hw/efinix_fpga/ip/divider/divider_tmpl.v @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice diff --git a/hw/efinix_fpga/ip/divider/divider_tmpl.vhd b/hw/efinix_fpga/ip/divider/divider_tmpl.vhd index 6f56c61..e8ef5d1 100644 --- a/hw/efinix_fpga/ip/divider/divider_tmpl.vhd +++ b/hw/efinix_fpga/ip/divider/divider_tmpl.vhd @@ -1,41 +1,41 @@ -//////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. -// -// This document contains proprietary information which is -// protected by copyright. All rights are reserved. This notice -// refers to original work by Efinix, Inc. which may be derivitive -// of other work distributed under license of the authors. In the -// case of derivative work, nothing in this notice overrides the -// original author's license agreement. Where applicable, the -// original license agreement is included in it's original -// unmodified form immediately below this header. -// -// WARRANTY DISCLAIMER. -// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND -// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH -// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, -// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR -// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED -// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. -// -// LIMITATION OF LIABILITY. -// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY -// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT -// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY -// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, -// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY -// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF -// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR -// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN -// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER -// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE -// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO -// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR -// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT -// APPLY TO LICENSEE. -// -//////////////////////////////////////////////////////////////////////////////// +-------------------------------------------------------------------------------- +-- Copyright (C) 2013-2023 Efinix Inc. All rights reserved. +-- +-- This document contains proprietary information which is +-- protected by copyright. All rights are reserved. This notice +-- refers to original work by Efinix, Inc. which may be derivitive +-- of other work distributed under license of the authors. In the +-- case of derivative work, nothing in this notice overrides the +-- original author's license agreement. Where applicable, the +-- original license agreement is included in it's original +-- unmodified form immediately below this header. +-- +-- WARRANTY DISCLAIMER. +-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND +-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH +-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, +-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR +-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED +-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. +-- +-- LIMITATION OF LIABILITY. +-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY +-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT +-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY +-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, +-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY +-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR +-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN +-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER +-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE +-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO +-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT +-- APPLY TO LICENSEE. +-- +-------------------------------------------------------------------------------- ------------- Begin Cut here for COMPONENT Declaration ------ COMPONENT divider is PORT ( diff --git a/hw/efinix_fpga/ip/divider/ipm/component.pickle b/hw/efinix_fpga/ip/divider/ipm/component.pickle new file mode 100644 index 0000000000000000000000000000000000000000..8dc2354a777c578a9e59a92bad4fc237c703e5e9 GIT binary patch literal 10332 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 BQl9_- literal 0 HcmV?d00001 diff --git a/hw/efinix_fpga/ip/divider/ipm/graph.pickle b/hw/efinix_fpga/ip/divider/ipm/graph.pickle new file mode 100644 index 0000000000000000000000000000000000000000..a26f853c5a4513b4fb540e4b98f57e2d77c4ccf2 GIT binary patch literal 13049 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 literal 0 HcmV?d00001 diff --git a/hw/efinix_fpga/ip/divider/settings.json b/hw/efinix_fpga/ip/divider/settings.json index 8bce4db..a0dafab 100644 --- a/hw/efinix_fpga/ip/divider/settings.json +++ b/hw/efinix_fpga/ip/divider/settings.json @@ -3,31 +3,31 @@ "-o", "divider", "--base_path", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip", + "/tmp/tmpeltk99q_/ip", "--vlnv", { "vendor": "efinixinc.com", "library": "arithmetic", "name": "efx_divider", - "version": "2.2" + "version": "5.0" } ], "conf": { - "NREPRESENTATION": "0", + "NREPRESENTATION": "\"UNSIGNED\"", "WIDTHN": "16", "WIDTHD": "16", - "DREPRESENTATION": "0", - "PIPELINE": "0", + "DREPRESENTATION": "\"UNSIGNED\"", + "PIPELINE": "1'b0", "LATENCY": "16" }, "output": { "external_source_source": [ - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/divider/divider.v", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/divider/divider_define.vh", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/divider/divider_tmpl.vhd", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/divider/divider_tmpl.v" + "/tmp/tmpeltk99q_/ip/divider/divider_tmpl.vhd", + "/tmp/tmpeltk99q_/ip/divider/divider_define.vh", + "/tmp/tmpeltk99q_/ip/divider/divider_tmpl.v", + "/tmp/tmpeltk99q_/ip/divider/divider.v" ] }, - "sw_version": "2022.2.322", - "generated_date": "2023-01-05T23:44:10.084005" + "sw_version": "2023.1.150", + "generated_date": "2023-07-16T16:45:12.554696" } \ No newline at end of file diff --git a/hw/efinix_fpga/ip/sdram_controller/ipm/component.pickle b/hw/efinix_fpga/ip/sdram_controller/ipm/component.pickle new file mode 100644 index 0000000000000000000000000000000000000000..6a81c1d49152a69bebe16fdcbca902792e0acd7b GIT binary patch literal 49117 zcmeHQYiu0Xb>{meO0p!|iXTnJlAMUPxD+W$c2q0Ql3Yq_ks`fZnRbzMu-u*H&S-aM zy)#QvR@uab<22|5b&*ZbCVeJITA)pUHV6^}X_GW48ng-WXi_u?TA)cENKh0_@}p>r zHa+LwJFh!4JF`pfie_X3Hp#hqmaTB@jJsjR1^Ql*&DrTY8oV=vaX>!*#ra;7BJjk~4% zmZ;^bnUa`Q%X(EU7Nu(4IFOUHY*nt1cAg#S?&?YxBw=MP6<-u)t#U$Etx5ujvLQox zAtPuqbR*|wDJRHfU8?3YSxH!v^i4@B!{c-n#QO732=mLA<3gsKV-4n{4LK`mF(IIj zvLLm@AhWnB_9 z9S{*pnQTEWOTy{-mBlfvn!|ypd0ohBkCO}`3N^13{3)I04sj3mh^q!BMts6tdOnJSQSqC)?J_DL7 zs_W3Cu2vR7w?*k%BLyAFso7cyG)q*yAeV2{jn%wdlrBz8oVt}<78jB;sd(x+F}1Xm z-k$K&@`PL|O+Ygf(4(ByCJM#MIAOxLjasarmx^`c@On))DMb6a+CpE@$OJTBnM^O+Gex;T!;DmR;Ed z&>9qe>~W%ytW?&Z%`Q+|rluD_ZG{Jc-?9c1;wHuTE}qzR;}9#bU@G+JB2lP={Tj%^ zNR4;THqs#C&6Gdwx7WxZsG=`94`ppU{ckDV$<12Fu zY51KlZuFU@?q#KBWZhd(TQi1pa#bP*0{cEPXa2^wSeS;#$2^adWhx=IBx}o6NdvBt zQ6#o1Rlbqa#$Zm$XKF>gZV0Dt5je%grMZNdyp~R+787&Hcsj9t>C)tz)`0i}np)hD za@gGAfPogy!o#ER(06>>fbd49Sd;2kyR|iKtp@*soMHy$)XVk4X=>#F+{MD9g>mv5 zG&u!7XlpR!3-mA3g^TnrPZZul{&KnyH%hT(P@ zcacXv+#!(OyS$W2Ka-eEFQpa|^J!j@(8Aks6h<$=3v&ys_~}!(U@UAX;%ag(ePw%m za?Aw*RaFxFj9sTfE`a@B5tkjYPM;bQO5)ODLP$1ITR+kh6*Xk*0eJpP3<2;D~coZp5E# zT8>B~hQ9RpEZ5f;+tb&mELMs|5xqNFB^%?vX-|KBvRDO`+x>j6>3(*sOJGzn<7U*4 zJ1@myRm`nHIFL%OiaCf>9iS+^5Op?|sLQz9Tdp+OIUPtIy%i`>cbEFBb&n)vE zc|Si=p}wGB!CL5cz+D`pZfq`|j*BS_M0o#YIS^)X3%C55e$m@>;U%ZZw3@LZ0hb@z z2@MXI(4^unY;LrK4c2NCHg?mU$7a@z&9AkD4c2NCHg?k;!^WCYs|n|n`gBXsV68Sm zV>jI~Xol#Nnu$As`TLfD!CDNMlW1!oX10yZ*dy@kOq_+zV}Z7(7h9;Uh1edutBwK1 zIK;imD7`&y{~XOMV=V^NDSxO^ORJ$+-4_WfyRVL6b%>IRXkUd;#18V5v6k?{S`4p8 zc{lb5(ClgPa%$=N@;3e1|MkrBOK*q-o84u{U}M1*flYS4zbi{Ep@y|OjGEnL$54Zy z0N-24qKA`dH4Zb+duTu;vI{F8z<;*#kxInpo^wj|uG=V;wI1_Kd?7jKlDcFwJ<(-DH?hZBm@&sZt)1;$b4SAE$VV54WG@goh zAob|DeKNrt3{|to>i+5N6Y78!_qv1LuW%woqaM~`)O#HbKVZbLF_@eSvn0`$HthDB z;#r&ggK0_Pt1HQ$b1k0zxFz(k7DKOl%C+BT8QdOx9=ZZ#H?$XEI%HBTFtL0 z0!o%`Nb$Cz))Guui^8OIVFQlSB~2O!yQRH=lWiPkuBY7ZYaeV0D6D1j$$bjP!YSGo zp54%1z{#3*tK6*nd`l={Ek>ueVFP}2iZ<=+mi7Wnun|FHEVo_%=axXiT8v80XlB>! zy4`+L(6ui@W&2%t7|}X;q8#WC@zL#*hixlyr%;p!Zo5R8Tn-M2+88~`Nfa$^z*>x7 zQ*5Kl-UNIUwgesfT=?tk(n9FASF|^ByXQT^ykWX2mUHjyJlztkSc}2hsr@j!%RPc8 zEL~-`BUl0V@^W4Utei0YCI?do7Ybn0 zjtG>m6^l-h{^<6J1nVh8Bsi3>-*n3K+1n@6UDRe!-SHOr%bZ-%EHc(&EZ<>RWVf_O zSkCs(30khBrOFREs5;1WrwXgQ3cCl~fk!kIVy)d#q21CRRG~XYdm{%`=T%6(4Iimp zxP5Yg5!DKEUKg`?E5#1g<~fm~u?lOkn4l_M8h{eu0xJn(nX`vj{s3UF??ji1OeCiA=n*J9ha!4yO)k4*~@uQKnjy zT&J}Dn3E}*?y%PGSaZ9jJ)%2{=Q$70|F$Kpu-5MI+-_;_U_T%=BDKx!1TSs>D zdqkOdO_5tXTW<+Cti^!q@Zy=>b5of5Z9+%7-_{LXWh4?-R&fXKN z{iG$#uolCt`<(y#WV918c0(OQ0&e6Y5||;yb0hcRA$RN()h$O-0R#fxORneJ+@tq` zYoeV!lGkz1{o(8F>=MFQzrb2*XP+=kI-P zpu$=VsaEr8vSX0J?kvtja=Te|9oP71OQ>P34x?sw z*)h~cNVX}0n)9XquUmo)YjqehyUV5^Yk4J!Mcs2xFFN7+VM}mfEe2PBxwluWcX+?l z?y4!6cJj8*vQFiSke{=xi)&82j*qkwH()J>SND1UH~xNn9=bknH?$jQ>^SL_m7i;N z&a)bDi9;&tYQRo~su?4d3?!_TAi*q6u{o4qd2U5qyz&A`b-8RlB>e4Xps($3`%N zEp8t;^3rMr%t}d`(m-gwkr-CV&t66GF|VyT6ag~M%Bmo1!laN_s{$SuBS~oC=PB}+ zLZ+A}d1+&HXPUGw!%PjD^vlNx8L1W=$u1v&4JOw6_SgjOL|I9)0`{45l*h&(j0)3u zk}RGn`ZJHXvW9SX84rLcQne)IWZ3ifEek0pN3A@gm#-)54jIFjkBoz|mdMF^2J-bb zU-^iv(TuwmbDHdZ1URBW{$beSK{Sp6x!A8BKz<1Txdwwh230^{$OfD#&K4v{JP2Hd zx=2j!?|d7^DAu(qL2HowbdV{rt~?DrumoxS%6lo@?=_Rxda3@ZgX%12vJcBi)<=uw zkfk?+{FDT>T)Zi)t2&Sr6DLodfpp3@AhU7}@Yenv+Pi= zg0xazg8vZBlV5>Mhh`CMzdW%jdnC<-~qD?(a^+~;8DOAhj5kt!(yiFhl54n>ggFxOaC zbY{7;H?u`ZRz5NdXB8mXH%tP(09M*^NiYM-wM-G_g<8%+c66yKK$=)xD!I(GKVd^} zfBErM`5lS}!1EfRCa5e}lRdKwoD#ba5G5Xf#V=t20B25m+@U;t1i9bw5h~4T$e6yI zJ~9COQCv-P%rc9@Y_n#6fUkVUoIVf_89muzUHL4|659gwpS+bVx(tBwMYB#}0p>cT zsdu{e;7nBrjNXS7#3*yQXNG6MCCY%&nHt=95Ei8Jx?X_!TX@hB_yj05>`CVo4O%2l2U(lGfof3t+91@C^sa`m_L=$q%eZMaU&jJi6nf2s8vB zcGIkj-+!>{nxB5SIP%?heppz+Zz^C{-+gD@Dkp5pdO^q+<;r-zs8%#m@=B(f3n=OA z%{isP+ug@o z4=Jx7AaQE4T&d|3kQN&LC(P6|VO7o%>tQ6xbD2Dcvl94x4W4h}bKupjv6VsNLv2l5*g7}GG?}leC3s=3RfVm`1@^6(5tBK>CE;=Wg$M?} zOpiFNN`O!43c4dl9N_-63xm1m3G5!zFaoB5K5Aqg6yk@?Nnfz&PhMae#uG;Ov~4Zy ziha?ogn8|j3U*x*=%xoGrE!ds_b(0;IiVSSDJ=w3j}GY{dt9sb;C4gyw? zc*r{kM-eFsr1v3(kz(2S6@1vb!Ojt3n-byptXiy<;0s>1nk`p+(m{nRE#_fExM4QB z-|WwY;eE^nfXj~y@aINcP(FoT*Q;(4jwtU&jd>pu7=b9TrsjP(LNJa(lmUHtHFbTN zW69?zOGfEK;dEIW6VOUHsZmikrRsRCB4~86o~+Q6wJ7n|04y=VKfe5U>a7QR$@a}Y zb=?HETE#;XaNX=tBdQn!lMFhK(x3X>m%9mYh6S&;j0J8KZuIGR{L8(F{eP4hM;GBx zYN=Kdu!zl%-*%Xel34;5?{L>7KATQHlNi_4@#R!v7Tzu{CtyXd1WR=Ig+c+S16ww* zdPhDcCX{Nhy09h*1^7x8ya?+B_>Le({8qErF)d0?3X?W&LS#8Y7o4<;l!dP!X301C z1g#)RdK7B*Ohbg@=fckHW3vSpKs|g!7nac)a_Y$yD=A?13` z!_gEEm99QUE#L)T+xY~0=)1M|Bzx$)vqu#`wb0mhg3q6wK;;_ZD%(T>Q*#5~8wV~20*riL%rxGhyaOJx((SqM$p!w#Q z7J+CzKZS0%Pp{^^ei(Mj@b8VSTVqGOLw5?%9>2Eo3gs3=d&`#jdXIxz-k0MY@N2nA zdPRCgzT-t5b||73ReDhEUSCMOs50pPka$sL)c;|0FWRfGrZ^}1b(4gvDT{;;J4i_5 zH~471x*=6>S_iNqE$_8T#PsQlu(9r5I{R;m`7wMXoTlfO>47LX-8*P}+yVc> z5`@u@5(&Z03RB%&WDG=5yT2v#bWiD{v-`9QVLAHQ>MN-^$@7*D(Eq!JJXD;y=YK?ce;IY=POq;d{N1VC z6rgub6dKe^2IBe39Xvgk{Tj~qgE-%W!@Y z#vDESk2Dby-0?o%g8yaubxi;1~p zJk76FzTgjQfh8Gnrm%QDyxW==9JeoBqSyMKoP5*T*^BTW_g5mVi}Q_+``%9e8vXN` zq6TYhj+ojbbh82fak83AmV_H&{*maIKXmGr-6n$07JOf;uqz+LvF{@0HDf3*L!JOh zrzvU%G&m-V%j{jo;d%Oi&+CEdX}*GDJmJ{t3(qcL9AF*cjaO{{nAtx3&iA2w8#{m$ zF^Mf$&WGG1D?}`JF<8xKFX6^WPO3=d9KCY?pwUmds$;r`hhnh_I;IKoNf1bImMMvL zwuIOQ$})Fmz`=*2x*i~RbI?KFlq2q8 z#5O>ze}S%O1{LM|@T2ly_#fPF*%5Pz+Jf2A&AcQuE@t`e66cNVTAi_Po2zjmKr-h4c z==*-YZ&?-BFcpxW0GHb!z|ZgkSSeLB-)Wg{gA8xvWza~b0+Gzoidxl0;HDoSnKlUX zdWSGK%UKa`;EUuEE~IDo6QbM(A>I%y1l*bTlj7FyOHsoNR}#J8U01$pT4D5ih)}u94r6b+Qwx{3A3}cu@H+{11Jb ztu;~Fs!->clh$hMqOMl_@cNDB@H*iPyX%01*q^GSjkt(ZzP%=ofX2v5ekl z7Z=FU1sCylK{4l>9;yHM{vu#}%B%2zrU?5i{M5dI#2O8R&W1`=#b`37XlmK3p>IYU zK_97(8zH-`iz#ym5Yw`3ep(~8X*oCy$`kE-0mA^I9bTE6^+w0LKMp&(B9pyLPUe6C zYhaOn6d<+YAMl0~-+lhvdY@&drNJVd0kG-Ygj2}KHt8oF7x=8n4$dY~cqgJzeDqjA zFwafWmMI>J`V)-@;SYbXRed1hfLb-5q2sZptiMwD@%Y=$M{f5hrcJFl4G%B7$mTKe z(!QqW%|YY%K1>$y0Zm()F!(V@8%BB7V7UNZqg`RzJV@iR(BTUk0b$yGW|)>XyYdOt zhOLLbG1?eFY)Lx7p!7hjula>*t3kN7%{bzlnJw+QRED@Fi?7Lk;^mqXFI)|v)i=2W z@Llc^{lR*^IcdT@N#o^QkhSUX`xiSd;*P@aU+K8GEd&t1zS}~E*`A#S5FhQh!1!Km zPihu6;Mw3JEIGt-kb;koCI2KqMu;VkT`%7#tDEIrh$lml#$_5?a5M%J4aNRKfY{1s z;6W>XD9i+aAA%I|B+oSD8qd@9carZIkUBzBBE#R^UIX6TVKL!rAd+uNQIaAR$|!&7 zPL)cN9y|68ti)y{?J*o}|1w`8=%yUWgbWqF&Q%CYVU2E=WO4ll#gmTY-$O@2jviP^ zU&C)skgZ_5eAvz~S+cQm#<^tczB>$Mk}S^dD>R2|vtuF0SnT%0PPO1zXwEIyIPMP} z$MbkP&gzHe-|{01$-o7=-{8wP&TU5IBKeRa?xB+esY<~DM>ykyFB^T zue_OO>ofc~+*ZY!Bs6E#8sUnSq{uavWawCa<6KOeE{ziSc1`PsD6U6B{Ahg?($*h1c_iYbF)jZ|K$X;?(10r&2M2IKua*g zCo8t|R+;i)D9(v1k&kKO~K_+2ivgk5!^Vuao^RNe*^ zn7D6u*Bv+kr(&mr#a**%g19x~XsxW(D!2nE<>sUf_^O6h|5e!SIRVSqxmp%KJVtCh8ElcoeDY{=UKx@?B2U`be`H{LYl!kBBl;v8f{&M}r`YW}y*#84FmQ}t0 literal 0 HcmV?d00001 diff --git a/hw/efinix_fpga/ip/sdram_controller/ipm/graph.pickle b/hw/efinix_fpga/ip/sdram_controller/ipm/graph.pickle new file mode 100644 index 0000000000000000000000000000000000000000..6dbdba11bd196b83a2cd1a8523a442c2bd0a1e8f GIT binary patch literal 76990 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�WfQR`2wCj(%{j{Br+xWCkkNfkq|Ne{GcV`;p ze@cVk9zB!g`;rCs^O-DvEm?5ypULt!k_Gbwm@I!QSum%7$?}?H!TbXz%a0@r<|;5* z{$8?RUIUZmCz1toAeb!wC|NLHg30o_WWn4DCd(U=C6I@~ z-$FZaKZnt4?0DeqP{53b`7NGn5=xi9QYV0Qj=@*)mFar9GF9u`IP2XaP-7l%n)Pl? zc)WSmd$$~Mx0d75<*zW(jZWCY-6qhZpMq@fm*CAaWRfypy8KlJyjUz(Z1@)ieB5&o z;7_CguDLUi=VU?RUF$aL2Lx)uD*$|FlUKkpzba*OP16Z@3fydM%XOCkwLHas3^Ls< z0b|pA#J<194EHG8Wq&ACw*45&o=tcRb^Wk}Zk{|8(7d{o*Oua=0>;vO_!W@kHzZW^ zB&0xP;iL&0=3}AS*pC6?p@hd!*@qJzUo`9emK3mg3RIWB+IS(}FKWy9DS;CI28j9F z5~z71RX`JPRi%ycnNVHq#{lto!eh|H6A6z&6Q7j=Hc#V%PbQ2eKmvJNqAlg`3!J2P zK-AASdk5rwMhcW=(pVsRiM!Bjv7Z$pS`pe;CftYmBJB_W`tt-y1rz&E6D3E6Lf(#6##cIp2)RC?e!l>QZ2dP4r3 zJ;9WBY0#+QSr`~lPIYKN@h<{2X8!&O!KR*tKF;-Cm%_Lv?8Qp>T)c#HA=!+ifYpb< z%=teiNce`7@ZUy;pdJ$H>~poWuu5d=d7Us8hipPt{@@h&d<_!yrb_igmFj`R-J@{A zQms_$u9n0%@(0VML-2UvZg}nO@Nc@2)9=V5=lH_fh(AvzA^NKu3K^|bOR9(ydWv3Q zv@|t(BvekJ4v3h+2t~~=759Tc-s&^K4VLVgsSm*4Hb)mg@2?i7$7jde{e|K(*A0xq{?49IMpxz4gh!;0MB^4_aG=! gvU(pA|N6N2zjLTKe*v5fR^C5epWQt(GBeWsuMzss+W-In literal 0 HcmV?d00001 diff --git a/hw/efinix_fpga/ip/sdram_controller/sdram_controller.v b/hw/efinix_fpga/ip/sdram_controller/sdram_controller.v index 4ece735..b27c38b 100644 --- a/hw/efinix_fpga/ip/sdram_controller/sdram_controller.v +++ b/hw/efinix_fpga/ip/sdram_controller/sdram_controller.v @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 1.6 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -43,7 +43,7 @@ // //////////////////////////////////////////////////////////////////////////////// -`define IP_UUID _08775b1d2de94ebcb82f5350820af2e3 +`define IP_UUID _8fa1502251ff4c338cc5b2fd6c7f050a `define IP_NAME_CONCAT(a,b) a``b `define IP_MODULE_NAME(name) `IP_NAME_CONCAT(name,`IP_UUID) module sdram_controller ( diff --git a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_define.vh b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_define.vh index 9c5f846..3bbfa9a 100644 --- a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_define.vh +++ b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_define.vh @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 1.6 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice diff --git a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.v b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.v index 1ff37b5..8933d02 100644 --- a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.v +++ b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.v @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice diff --git a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.vhd b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.vhd index 4bc9010..8120655 100644 --- a/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.vhd +++ b/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.vhd @@ -1,41 +1,41 @@ -//////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. -// -// This document contains proprietary information which is -// protected by copyright. All rights are reserved. This notice -// refers to original work by Efinix, Inc. which may be derivitive -// of other work distributed under license of the authors. In the -// case of derivative work, nothing in this notice overrides the -// original author's license agreement. Where applicable, the -// original license agreement is included in it's original -// unmodified form immediately below this header. -// -// WARRANTY DISCLAIMER. -// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND -// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH -// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, -// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR -// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED -// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. -// -// LIMITATION OF LIABILITY. -// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY -// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT -// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY -// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, -// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY -// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF -// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR -// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN -// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER -// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE -// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO -// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR -// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT -// APPLY TO LICENSEE. -// -//////////////////////////////////////////////////////////////////////////////// +-------------------------------------------------------------------------------- +-- Copyright (C) 2013-2023 Efinix Inc. All rights reserved. +-- +-- This document contains proprietary information which is +-- protected by copyright. All rights are reserved. This notice +-- refers to original work by Efinix, Inc. which may be derivitive +-- of other work distributed under license of the authors. In the +-- case of derivative work, nothing in this notice overrides the +-- original author's license agreement. Where applicable, the +-- original license agreement is included in it's original +-- unmodified form immediately below this header. +-- +-- WARRANTY DISCLAIMER. +-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND +-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH +-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, +-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR +-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED +-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. +-- +-- LIMITATION OF LIABILITY. +-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY +-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT +-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY +-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, +-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY +-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR +-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN +-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER +-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE +-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO +-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT +-- APPLY TO LICENSEE. +-- +-------------------------------------------------------------------------------- ------------- Begin Cut here for COMPONENT Declaration ------ COMPONENT sdram_controller is PORT ( diff --git a/hw/efinix_fpga/ip/sdram_controller/settings.json b/hw/efinix_fpga/ip/sdram_controller/settings.json index 42643e4..dd440c4 100644 --- a/hw/efinix_fpga/ip/sdram_controller/settings.json +++ b/hw/efinix_fpga/ip/sdram_controller/settings.json @@ -3,20 +3,20 @@ "-o", "sdram_controller", "--base_path", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip", + "/tmp/tmpc6xveluy/ip", "--vlnv", { "vendor": "efinixinc.com", "library": "memory_controller", "name": "efx_sdram_controller", - "version": "1.6" + "version": "5.0" } ], "conf": { "fCK_MHz": "200", "tIORT_u": "2", "CL": "3", - "DDIO_TYPE": "0", + "DDIO_TYPE": "\"SOFT\"", "DQ_GROUP": "2", "ROW_WIDTH": "13", "COL_WIDTH": "9", @@ -28,17 +28,17 @@ "tREF": "64000000", "tRFC": "66", "tRP": "20", - "SDRAM_MODE": "0", + "SDRAM_MODE": "\"Native\"", "DATA_RATE": "2" }, "output": { "external_source_source": [ - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram_controller/sdram_controller_define.vh", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.vhd", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram_controller/sdram_controller_tmpl.v", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/sdram_controller/sdram_controller.v" + "/tmp/tmpc6xveluy/ip/sdram_controller/sdram_controller_tmpl.vhd", + "/tmp/tmpc6xveluy/ip/sdram_controller/sdram_controller_define.vh", + "/tmp/tmpc6xveluy/ip/sdram_controller/sdram_controller_tmpl.v", + "/tmp/tmpc6xveluy/ip/sdram_controller/sdram_controller.v" ] }, - "sw_version": "2022.2.322", - "generated_date": "2023-01-06T15:14:53.619359" + "sw_version": "2023.1.150", + "generated_date": "2023-07-16T16:45:19.021917" } \ No newline at end of file diff --git a/hw/efinix_fpga/ip/uart/ipm/component.pickle b/hw/efinix_fpga/ip/uart/ipm/component.pickle new file mode 100644 index 0000000000000000000000000000000000000000..812cad03c96171fdd1087cb031c06e11266f3898 GIT binary patch literal 14106 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 U7(26Hx-Q$_l)2D=Fa3=F4{Vlc{r~^~ literal 0 HcmV?d00001 diff --git a/hw/efinix_fpga/ip/uart/settings.json b/hw/efinix_fpga/ip/uart/settings.json index c1e284a..182d6fc 100644 --- a/hw/efinix_fpga/ip/uart/settings.json +++ b/hw/efinix_fpga/ip/uart/settings.json @@ -9,26 +9,41 @@ "vendor": "efinixinc.com", "library": "serial_interface", "name": "efx_uart", - "version": "2.0" + "version": "5.0" } ], "conf": { "BYTE": "1", "CLOCK_FREQ": "50000000", "BAUD": "115200", - "ENABLE_PARITY": "0", - "FIX_BAUDRATE": "1", - "PARITY_MODE": "0", - "BOOTUP_CHECK": "0" + "ENABLE_PARITY": "1'b0", + "FIX_BAUDRATE": "1'b1", + "PARITY_MODE": "1'b0", + "BOOTUP_CHECK": "1'b1" }, "output": { "external_source_source": [ - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart.v", "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart_define.vh", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart_tmpl.vhd", - "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart_tmpl.v" + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart_tmpl.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/uart_tmpl.vhd" + ], + "external_example_example": [ + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/command_state.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/decoder.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/encoder.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/led_ctl.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/resets.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_defines.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_demo_top.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/user_register.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_demo.peri.xml", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_demo.xml", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_timing_T20.sdc", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart.v", + "/home/byron/Projects/super6502/hw/efinix_fpga/ip/uart/T20F256_devkit/uart_define.vh" ] }, - "sw_version": "2022.2.322", - "generated_date": "2023-01-12T01:01:22.177819" + "sw_version": "2023.1.150", + "generated_date": "2023-07-16T20:20:12.259229" } \ No newline at end of file diff --git a/hw/efinix_fpga/ip/uart/uart.v b/hw/efinix_fpga/ip/uart/uart.v index df28590..f80fc6d 100644 --- a/hw/efinix_fpga/ip/uart/uart.v +++ b/hw/efinix_fpga/ip/uart/uart.v @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 2.0 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -43,7 +43,7 @@ // //////////////////////////////////////////////////////////////////////////////// -`define IP_UUID _5423258f8d324e3e81f7da25952c84a2 +`define IP_UUID _d1961caf8b8d4ca092806671a99095c2 `define IP_NAME_CONCAT(a,b) a``b `define IP_MODULE_NAME(name) `IP_NAME_CONCAT(name,`IP_UUID) module uart ( @@ -58,18 +58,18 @@ output rx_busy, output baud_x16_ce, input clk, input reset, -input [7:0] tx_data, input [2:0] baud_rate, -input tx_en +input tx_en, +input [7:0] tx_data ); `IP_MODULE_NAME(top_uart) #( .BYTE (1), .CLOCK_FREQ (50000000), .BAUD (115200), -.ENABLE_PARITY (0), -.FIX_BAUDRATE (1), -.PARITY_MODE (0), -.BOOTUP_CHECK (0) +.ENABLE_PARITY (1'b0), +.FIX_BAUDRATE (1'b1), +.PARITY_MODE (1'b0), +.BOOTUP_CHECK (1'b1) ) u_top_uart( .tx_o ( tx_o ), .rx_i ( rx_i ), @@ -82,9 +82,9 @@ input tx_en .baud_x16_ce ( baud_x16_ce ), .clk ( clk ), .reset ( reset ), -.tx_data ( tx_data ), .baud_rate ( baud_rate ), -.tx_en ( tx_en ) +.tx_en ( tx_en ), +.tx_data ( tx_data ) ); endmodule diff --git a/hw/efinix_fpga/ip/uart/uart_define.vh b/hw/efinix_fpga/ip/uart/uart_define.vh index 4f0f893..40752e0 100644 --- a/hw/efinix_fpga/ip/uart/uart_define.vh +++ b/hw/efinix_fpga/ip/uart/uart_define.vh @@ -1,11 +1,11 @@ // ============================================================================= // Generated by efx_ipmgr -// Version: 2022.2.322 -// IP Version: 2.0 +// Version: 2023.1.150 +// IP Version: 5.0 // ============================================================================= //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -46,7 +46,7 @@ localparam BYTE = 1; localparam CLOCK_FREQ = 50000000; localparam BAUD = 115200; -localparam ENABLE_PARITY = 0; -localparam FIX_BAUDRATE = 1; -localparam PARITY_MODE = 0; -localparam BOOTUP_CHECK = 0; +localparam ENABLE_PARITY = 1'b0; +localparam FIX_BAUDRATE = 1'b1; +localparam PARITY_MODE = 1'b0; +localparam BOOTUP_CHECK = 1'b1; diff --git a/hw/efinix_fpga/ip/uart/uart_tmpl.v b/hw/efinix_fpga/ip/uart/uart_tmpl.v index 45a2939..a84a9a3 100644 --- a/hw/efinix_fpga/ip/uart/uart_tmpl.v +++ b/hw/efinix_fpga/ip/uart/uart_tmpl.v @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. +// Copyright (C) 2013-2023 Efinix Inc. All rights reserved. // // This document contains proprietary information which is // protected by copyright. All rights are reserved. This notice @@ -49,7 +49,7 @@ uart u_uart( .baud_x16_ce ( baud_x16_ce ), .clk ( clk ), .reset ( reset ), -.tx_data ( tx_data ), .baud_rate ( baud_rate ), -.tx_en ( tx_en ) +.tx_en ( tx_en ), +.tx_data ( tx_data ) ); diff --git a/hw/efinix_fpga/ip/uart/uart_tmpl.vhd b/hw/efinix_fpga/ip/uart/uart_tmpl.vhd index 422f662..2ae5367 100644 --- a/hw/efinix_fpga/ip/uart/uart_tmpl.vhd +++ b/hw/efinix_fpga/ip/uart/uart_tmpl.vhd @@ -1,41 +1,41 @@ -//////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2013-2022 Efinix Inc. All rights reserved. -// -// This document contains proprietary information which is -// protected by copyright. All rights are reserved. This notice -// refers to original work by Efinix, Inc. which may be derivitive -// of other work distributed under license of the authors. In the -// case of derivative work, nothing in this notice overrides the -// original author's license agreement. Where applicable, the -// original license agreement is included in it's original -// unmodified form immediately below this header. -// -// WARRANTY DISCLAIMER. -// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND -// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH -// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, -// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR -// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED -// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. -// -// LIMITATION OF LIABILITY. -// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY -// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT -// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY -// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, -// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY -// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF -// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR -// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN -// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER -// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE -// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO -// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR -// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT -// APPLY TO LICENSEE. -// -//////////////////////////////////////////////////////////////////////////////// +-------------------------------------------------------------------------------- +-- Copyright (C) 2013-2023 Efinix Inc. All rights reserved. +-- +-- This document contains proprietary information which is +-- protected by copyright. All rights are reserved. This notice +-- refers to original work by Efinix, Inc. which may be derivitive +-- of other work distributed under license of the authors. In the +-- case of derivative work, nothing in this notice overrides the +-- original author's license agreement. Where applicable, the +-- original license agreement is included in it's original +-- unmodified form immediately below this header. +-- +-- WARRANTY DISCLAIMER. +-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND +-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH +-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES, +-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR +-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED +-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. +-- +-- LIMITATION OF LIABILITY. +-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY +-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT +-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY +-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT, +-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY +-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR +-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN +-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER +-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE +-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO +-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT +-- APPLY TO LICENSEE. +-- +-------------------------------------------------------------------------------- ------------- Begin Cut here for COMPONENT Declaration ------ COMPONENT uart is PORT ( @@ -50,9 +50,9 @@ rx_busy : out std_logic; baud_x16_ce : out std_logic; clk : in std_logic; reset : in std_logic; -tx_data : in std_logic_vector(7 downto 0); baud_rate : in std_logic_vector(2 downto 0); -tx_en : in std_logic); +tx_en : in std_logic; +tx_data : in std_logic_vector(7 downto 0)); END COMPONENT; ---------------------- End COMPONENT Declaration ------------ @@ -70,7 +70,7 @@ rx_busy => rx_busy, baud_x16_ce => baud_x16_ce, clk => clk, reset => reset, -tx_data => tx_data, baud_rate => baud_rate, -tx_en => tx_en); +tx_en => tx_en, +tx_data => tx_data); ------------------------ End INSTANTIATION Template --------- diff --git a/hw/efinix_fpga/super6502.peri.xml b/hw/efinix_fpga/super6502.peri.xml index 96b3283..c44660e 100644 --- a/hw/efinix_fpga/super6502.peri.xml +++ b/hw/efinix_fpga/super6502.peri.xml @@ -1,5 +1,5 @@ - + @@ -326,7 +326,7 @@ - + diff --git a/hw/efinix_fpga/super6502.sv b/hw/efinix_fpga/super6502.sv index fc82502..c0d8457 100644 --- a/hw/efinix_fpga/super6502.sv +++ b/hw/efinix_fpga/super6502.sv @@ -69,9 +69,11 @@ assign pll_cpu_reset = '1; assign o_pll_reset = '1; assign cpu_data_oe = {8{cpu_rwb}}; -assign cpu_rdy = '1; assign cpu_nmib = '1; +logic w_wait; +assign cpu_rdy = ~w_wait; + assign cpu_phi2 = clk_2; logic w_sdr_init_done; @@ -244,6 +246,7 @@ sdram_adapter u_sdram_adapter( .o_data(w_sdram_data_out), .o_sdr_init_done(w_sdr_init_done), + .o_wait(w_wait), .o_sdr_CKE(o_sdr_CKE), .o_sdr_n_CS(o_sdr_n_CS), diff --git a/hw/efinix_fpga/super6502.xml b/hw/efinix_fpga/super6502.xml index f3a3f61..3843189 100644 --- a/hw/efinix_fpga/super6502.xml +++ b/hw/efinix_fpga/super6502.xml @@ -1,5 +1,5 @@ - + @@ -8,11 +8,6 @@ - - - - - @@ -23,6 +18,7 @@ + @@ -69,6 +65,8 @@ + +