From 5278b276838d6714f9ce36f32cf7c4275d204191 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 25 Jan 2026 19:30:08 +0100 Subject: [PATCH] Following up on a number of Magic reader issues found in the course of issue #2263 * The original issue ("sw" etc for "tri") * Implementing "magscale" * Interpolation of environment variables on paths * Warnings include file positions now * Ignoring "<< properties >>" pseudo-layer * MAG writer uses zero-area boxes for empty ones * New test --- .../streamers/magic/db_plugin/dbMAGReader.cc | 115 ++++++++++++++---- .../streamers/magic/db_plugin/dbMAGReader.h | 8 +- .../streamers/magic/db_plugin/dbMAGWriter.cc | 37 ++++-- .../streamers/magic/unit_tests/dbMAGReader.cc | 29 +++-- testdata/magic/gf180mcu_ocd_sram_test.cif.gz | Bin 0 -> 97041 bytes .../chip_half_frame.mag.gz | Bin 0 -> 17761 bytes .../chip_half_frame_bad.mag.gz | Bin 0 -> 8605 bytes .../constant_block.mag.gz | Bin 0 -> 528 bytes .../copyright_block.mag.gz | Bin 0 -> 940 bytes .../magic/font_20.mag | 6 + .../magic/font_21.mag | 10 ++ .../magic/font_22.mag | 10 ++ .../magic/font_23.mag | 16 +++ .../magic/font_24.mag | 21 ++++ .../magic/font_25.mag | 25 ++++ .../magic/font_26.mag | 32 +++++ .../magic/font_27.mag | 10 ++ .../magic/font_28.mag | 15 +++ .../magic/font_29.mag | 15 +++ .../magic/font_2A.mag | 13 ++ .../magic/font_2B.mag | 11 ++ .../magic/font_2C.mag | 10 ++ .../magic/font_2D.mag | 9 ++ .../magic/font_2E.mag | 9 ++ .../magic/font_2F.mag | 21 ++++ .../magic/font_30.mag | 12 ++ .../magic/font_31.mag | 12 ++ .../magic/font_32.mag | 13 ++ .../magic/font_33.mag | 13 ++ .../magic/font_34.mag | 12 ++ .../magic/font_35.mag | 13 ++ .../magic/font_36.mag | 14 +++ .../magic/font_37.mag | 10 ++ .../magic/font_38.mag | 15 +++ .../magic/font_39.mag | 13 ++ .../magic/font_3A.mag | 10 ++ .../magic/font_3B.mag | 11 ++ .../magic/font_3C.mag | 21 ++++ .../magic/font_3D.mag | 10 ++ .../magic/font_3E.mag | 21 ++++ .../magic/font_3F.mag | 18 +++ .../magic/font_40.mag | 33 +++++ .../magic/font_41.mag | 16 +++ .../magic/font_42.mag | 19 +++ .../magic/font_43.mag | 15 +++ .../magic/font_44.mag | 16 +++ .../magic/font_45.mag | 13 ++ .../magic/font_46.mag | 12 ++ .../magic/font_47.mag | 17 +++ .../magic/font_48.mag | 13 ++ .../magic/font_49.mag | 11 ++ .../magic/font_4A.mag | 13 ++ .../magic/font_4B.mag | 17 +++ .../magic/font_4C.mag | 10 ++ .../magic/font_4D.mag | 16 +++ .../magic/font_4E.mag | 15 +++ .../magic/font_4F.mag | 16 +++ .../magic/font_50.mag | 17 +++ .../magic/font_51.mag | 16 +++ .../magic/font_52.mag | 22 ++++ .../magic/font_53.mag | 20 +++ .../magic/font_54.mag | 10 ++ .../magic/font_55.mag | 13 ++ .../magic/font_56.mag | 14 +++ .../magic/font_57.mag | 16 +++ .../magic/font_58.mag | 17 +++ .../magic/font_59.mag | 14 +++ .../magic/font_5A.mag | 19 +++ .../magic/font_5B.mag | 11 ++ .../magic/font_5C.mag | 21 ++++ .../magic/font_5D.mag | 11 ++ .../magic/font_5E.mag | 10 ++ .../magic/font_5F.mag | 9 ++ .../magic/font_60.mag | 10 ++ .../magic/font_61.mag | 17 +++ .../magic/font_62.mag | 17 +++ .../magic/font_63.mag | 17 +++ .../magic/font_64.mag | 17 +++ .../magic/font_65.mag | 17 +++ .../magic/font_66.mag | 13 ++ .../magic/font_67.mag | 20 +++ .../magic/font_68.mag | 14 +++ .../magic/font_69.mag | 12 ++ .../magic/font_6A.mag | 13 ++ .../magic/font_6B.mag | 17 +++ .../magic/font_6C.mag | 9 ++ .../magic/font_6D.mag | 15 +++ .../magic/font_6E.mag | 13 ++ .../magic/font_6F.mag | 16 +++ .../magic/font_70.mag | 17 +++ .../magic/font_71.mag | 17 +++ .../magic/font_72.mag | 13 ++ .../magic/font_73.mag | 19 +++ .../magic/font_74.mag | 11 ++ .../magic/font_75.mag | 13 ++ .../magic/font_76.mag | 13 ++ .../magic/font_77.mag | 15 +++ .../magic/font_78.mag | 15 +++ .../magic/font_79.mag | 17 +++ .../magic/font_7A.mag | 15 +++ .../magic/font_7B.mag | 19 +++ .../magic/font_7C.mag | 10 ++ .../magic/font_7D.mag | 19 +++ .../magic/font_7E.mag | 17 +++ .../magic/font_A9.mag | 34 ++++++ .../gf180mcu_ocd_sram_test.mag.gz | Bin 0 -> 45148 bytes .../gf180mcu_ocd_sram_top.mag.gz | Bin 0 -> 262 bytes .../horz_connects.mag.gz | Bin 0 -> 330 bytes .../horz_connects_resetb.mag.gz | Bin 0 -> 279 bytes .../horz_connects_resetb_pullup.mag.gz | Bin 0 -> 209 bytes .../horz_power_connect.mag.gz | Bin 0 -> 388 bytes .../horz_via_program_input.mag.gz | Bin 0 -> 227 bytes .../horz_via_program_output.mag.gz | Bin 0 -> 224 bytes .../lvlshift_down.mag.gz | Bin 0 -> 631 bytes .../ocd_mux_array.mag.gz | Bin 0 -> 2098 bytes .../gf180mcu_ocd_sram_test/ocd_via2_3x.mag.gz | Bin 0 -> 187 bytes .../vert_connects.mag.gz | Bin 0 -> 594 bytes .../vert_connects_in_c.mag.gz | Bin 0 -> 397 bytes .../vert_power_connect.mag.gz | Bin 0 -> 441 bytes .../vert_via_program_input.mag.gz | Bin 0 -> 225 bytes .../wafer_space/gf180mcu_ws_ip__id.mag.gz | Bin 0 -> 39798 bytes .../wafer_space/gf180mcu_ws_ip__logo.mag.gz | Bin 0 -> 5363 bytes .../wafer_space/sealring.mag.gz | Bin 0 -> 209 bytes .../wafer_space/sealring_x1.mag.gz | Bin 0 -> 603 bytes 124 files changed, 1589 insertions(+), 44 deletions(-) create mode 100644 testdata/magic/gf180mcu_ocd_sram_test.cif.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/chip_half_frame.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/chip_half_frame_bad.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/constant_block.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/copyright_block.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_20.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_21.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_22.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_23.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_24.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_25.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_26.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_27.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_28.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_29.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2F.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_30.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_31.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_32.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_33.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_34.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_35.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_36.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_37.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_38.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_39.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3F.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_40.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_41.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_42.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_43.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_44.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_45.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_46.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_47.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_48.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_49.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4F.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_50.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_51.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_52.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_53.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_54.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_55.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_56.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_57.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_58.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_59.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5F.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_60.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_61.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_62.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_63.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_64.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_65.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_66.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_67.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_68.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_69.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6F.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_70.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_71.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_72.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_73.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_74.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_75.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_76.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_77.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_78.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_79.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7A.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7B.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7C.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7D.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7E.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_A9.mag create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_test.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_top.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_connects.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb_pullup.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_power_connect.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_via_program_input.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/horz_via_program_output.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/lvlshift_down.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/ocd_mux_array.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/ocd_via2_3x.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/vert_connects.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/vert_connects_in_c.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/vert_power_connect.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/vert_via_program_input.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__id.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__logo.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring.mag.gz create mode 100644 testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring_x1.mag.gz diff --git a/src/plugins/streamers/magic/db_plugin/dbMAGReader.cc b/src/plugins/streamers/magic/db_plugin/dbMAGReader.cc index 56abcf8d3..9708cc9b1 100644 --- a/src/plugins/streamers/magic/db_plugin/dbMAGReader.cc +++ b/src/plugins/streamers/magic/db_plugin/dbMAGReader.cc @@ -35,6 +35,7 @@ #include "tlClassRegistry.h" #include "tlFileUtils.h" #include "tlUri.h" +#include "tlEnv.h" #include #include @@ -183,7 +184,7 @@ MAGReader::cell_from_path (const std::string &path, db::Layout &layout) std::string cell_file; if (! resolve_path (path, layout, cell_file)) { // skip with a warning if the file can't be opened (TODO: better to raise an error?) - tl::warn << tl::to_string (tr ("Unable to find a layout file for cell - skipping this cell: ")) << path; + warn (tl::sprintf (tl::to_string (tr ("Unable to find a layout file for cell %s - skipping this file: %s")), cellname, path)); layout.cell (ci).set_ghost_cell (true); } else { m_cells_to_read.insert (std::make_pair (cellname, std::make_pair (cell_file, ci))); @@ -249,12 +250,49 @@ static bool find_and_normalize_file (const tl::URI &uri, std::string &path) return false; } +namespace +{ + +// TODO: this may be useful somewhere else +class EnvInterpolator + : public tl::Eval +{ +public: + EnvInterpolator () + : tl::Eval (0, 0, false) // safe mode + { + // .. nothing yet .. + } + + void resolve_name (const std::string &name, const tl::EvalFunction *&function, const tl::Variant *&value, tl::Variant *&var) + { + tl::Eval::resolve_name (name, function, value, var); + + if (! value && ! function && ! var) { + auto i = m_values.find (name); + if (i != m_values.end ()) { + value = &i->second; + } else { + std::string v = tl::get_env (name); + tl::Variant *vv = &m_values[name]; + *vv = v; + value = vv; + } + } + } + +private: + std::map m_values; +}; + +} + bool MAGReader::resolve_path (const std::string &path, const db::Layout & /*layout*/, std::string &real_path) { - tl::Eval expr; + EnvInterpolator expr; - // the variables supported for evaluation are + // the variables supported for lib path evaluation are // "tech_name": the name of the KLayout technology this file is loaded for (this may be the Magic technology name) // "tech_dir": the path to KLayout's technology folder for "tech_name" or the default technology's folder path // "magic_tech": the technology name from the Magic file currently read @@ -268,11 +306,20 @@ MAGReader::resolve_path (const std::string &path, const db::Layout & /*layout*/, } expr.set_var ("magic_tech", m_tech); - tl::URI path_uri (path); + tl::URI path_uri (expr.interpolate (path)); // absolute URIs are kept - we just try to figure out the suffix if (tl::is_absolute (path_uri.path ())) { - return find_and_normalize_file (path_uri, real_path); + + if (! find_and_normalize_file (path_uri, real_path)) { + if (tl::verbosity () >= 20) { + tl::log << "Unable to locate file with expanded path: " << path_uri.to_string (); + } + return false; + } else { + return true; + } + } tl::URI source_uri (mp_current_stream->source ()); @@ -291,6 +338,10 @@ MAGReader::resolve_path (const std::string &path, const db::Layout & /*layout*/, } } + if (tl::verbosity () >= 20) { + tl::log << "Unable to locate file with expanded path: " << path_uri.to_string (); + } + return false; } @@ -330,6 +381,7 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: bool valid_layer = false; unsigned int current_layer = 0; bool in_labels = false; + double scale = m_lambda; while (! stream.at_end ()) { @@ -359,6 +411,22 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: ex.expect_end (); + } else if (ex.test ("magscale")) { + + int n = 1, d = 1; + ex.read (n); + ex.read (d); + + if (d <= 0) { + error (tl::to_string (tr ("'magscale' denominator must not be negative or zero"))); + } + if (n <= 0) { + error (tl::to_string (tr ("'magscale' nominator must not be negative or zero"))); + } + scale = m_lambda * double (n) / double (d); + + ex.expect_end (); + } else if (ex.test ("timestamp")) { size_t ts = 0; @@ -385,6 +453,10 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: // ignore "checkpaint" internal layer in_labels = false; valid_layer = false; + } else if (lname == "properties") { + // ignore "properties" section as of now + in_labels = false; + valid_layer = false; } else { in_labels = false; std::pair ll = open_layer (layout, lname); @@ -400,7 +472,7 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: if (in_labels) { error (tl::to_string (tr ("'rect' statement inside labels section"))); } else if (valid_layer) { - read_rect (ex, layout, cell_index, current_layer); + read_rect (ex, layout, cell_index, current_layer, scale); } } else if (ex.test ("tri")) { @@ -408,7 +480,7 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: if (in_labels) { error (tl::to_string (tr ("'rect' statement inside labels section"))); } else if (valid_layer) { - read_tri (ex, layout, cell_index, current_layer); + read_tri (ex, layout, cell_index, current_layer, scale); } } else if (ex.test ("rlabel")) { @@ -416,12 +488,12 @@ MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl: if (! in_labels) { error (tl::to_string (tr ("'rlabel' statement outside labels section"))); } else { - read_rlabel (ex, layout, cell_index); + read_rlabel (ex, layout, cell_index, scale); } } else if (ex.test ("use")) { - read_cell_instance (ex, stream, layout, cell_index); + read_cell_instance (ex, stream, layout, cell_index, scale); } @@ -467,7 +539,7 @@ MAGReader::do_merge_part (Layout &layout, cell_index_type cell_index) } void -MAGReader::read_rect (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer) +MAGReader::read_rect (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer, double scale) { double l, b, r, t; ex.read (l); @@ -477,11 +549,11 @@ MAGReader::read_rect (tl::Extractor &ex, Layout &layout, cell_index_type cell_in ex.expect_end (); db::DBox box (l, b, r, t); - layout.cell (cell_index).shapes (layer).insert ((box * m_lambda).transformed (m_dbu_trans_inv)); + layout.cell (cell_index).shapes (layer).insert ((box * scale).transformed (m_dbu_trans_inv)); } void -MAGReader::read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer) +MAGReader::read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer, double scale) { double l, b, r, t; ex.read (l); @@ -489,6 +561,8 @@ MAGReader::read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_ind ex.read (r); ex.read (t); + // NOTE: that scheme is compatible with MAGIC's reader code (as of version 8.3) - + // we just skip unknown characters bool s = false, e = false; while (! ex.at_end ()) { if (ex.test ("s")) { @@ -496,10 +570,9 @@ MAGReader::read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_ind } else if (ex.test ("e")) { e = true; } else { - break; + ++ex; } } - ex.expect_end (); std::vector pts; @@ -523,11 +596,11 @@ MAGReader::read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_ind db::SimplePolygon poly; poly.assign_hull (pts.begin (), pts.end ()); - layout.cell (cell_index).shapes (layer).insert ((poly * m_lambda).transformed (m_dbu_trans_inv)); + layout.cell (cell_index).shapes (layer).insert ((poly * scale).transformed (m_dbu_trans_inv)); } void -MAGReader::read_rlabel (tl::Extractor &ex, Layout &layout, cell_index_type cell_index) +MAGReader::read_rlabel (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, double scale) { std::string lname; ex.read (lname); @@ -573,13 +646,13 @@ MAGReader::read_rlabel (tl::Extractor &ex, Layout &layout, cell_index_type cell_ if (true || lname != "space") { // really? "space"? ignore it? std::pair ll = open_layer (layout, lname); if (ll.first) { - layout.cell (cell_index).shapes (ll.second).insert ((text * m_lambda).transformed (m_dbu_trans_inv)); + layout.cell (cell_index).shapes (ll.second).insert ((text * scale).transformed (m_dbu_trans_inv)); } } } void -MAGReader::read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, Layout &layout, cell_index_type cell_index) +MAGReader::read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, Layout &layout, cell_index_type cell_index, double scale) { const char *include_chars_in_files = "$_,.-$+#:;[]()<>|/\\"; @@ -637,9 +710,9 @@ MAGReader::read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, L ex2.read (ysep); na = (unsigned long) std::max (0, xhi - xlo + 1); - a = db::DVector (xsep, 0) * m_lambda; + a = db::DVector (xsep, 0) * scale; nb = (unsigned long) std::max (0, yhi - ylo + 1); - b = db::DVector (0, ysep) * m_lambda; + b = db::DVector (0, ysep) * scale; } else if (ex2.test ("timestamp")) { // ignored @@ -655,7 +728,7 @@ MAGReader::read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, L ex2.read (m22); ex2.read (dy); - trans = db::DCplxTrans (db::Matrix2d (m11, m12, m21, m22), db::DVector (dx, dy) * m_lambda); + trans = db::DCplxTrans (db::Matrix2d (m11, m12, m21, m22), db::DVector (dx, dy) * scale); } else if (ex2.test ("box")) { // ignored diff --git a/src/plugins/streamers/magic/db_plugin/dbMAGReader.h b/src/plugins/streamers/magic/db_plugin/dbMAGReader.h index 167239b31..4f6f495ac 100644 --- a/src/plugins/streamers/magic/db_plugin/dbMAGReader.h +++ b/src/plugins/streamers/magic/db_plugin/dbMAGReader.h @@ -153,10 +153,10 @@ class DB_PLUGIN_PUBLIC MAGReader bool resolve_path(const std::string &path, const Layout &layout, std::string &real_path); std::string cell_name_from_path (const std::string &path); db::cell_index_type cell_from_path (const std::string &path, Layout &layout); - void read_rect (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer); - void read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer); - void read_rlabel (tl::Extractor &ex, Layout &layout, cell_index_type cell_index); - void read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, Layout &layout, cell_index_type cell_index); + void read_rect (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer, double scale); + void read_tri (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, unsigned int layer, double scale); + void read_rlabel (tl::Extractor &ex, Layout &layout, cell_index_type cell_index, double scale); + void read_cell_instance (tl::Extractor &ex, tl::TextInputStream &stream, Layout &layout, cell_index_type cell_index, double scale); }; } diff --git a/src/plugins/streamers/magic/db_plugin/dbMAGWriter.cc b/src/plugins/streamers/magic/db_plugin/dbMAGWriter.cc index 280c7e4e1..6ac028512 100644 --- a/src/plugins/streamers/magic/db_plugin/dbMAGWriter.cc +++ b/src/plugins/streamers/magic/db_plugin/dbMAGWriter.cc @@ -41,6 +41,12 @@ namespace db // --------------------------------------------------------------------------------- // MAGWriter implementation +// A function to produce a zero-area box instead of an empty one +static db::Box safe_box (const db::Box &bx) +{ + return bx.empty () ? db::Box (0, 0, 0, 0) : bx; +} + MAGWriter::MAGWriter () : mp_stream (0), m_progress (tl::to_string (tr ("Writing Magic file")), 10000) @@ -120,6 +126,8 @@ MAGWriter::filename_for_cell (db::cell_index_type ci, db::Layout &layout) void MAGWriter::write_dummy_top (const std::set &cell_set, const db::Layout &layout, tl::OutputStream &os) { + m_cellname = ""; + os.set_as_text (true); os << "magic\n"; @@ -144,7 +152,7 @@ MAGWriter::write_dummy_top (const std::set &cell_set, const cell_instances.reserve (cells_by_name.size ()); for (std::map::const_iterator c = cells_by_name.begin (); c != cells_by_name.end (); ++c) { // instances are arrayed as stack - db::Box bx = layout.cell (c->second).bbox (); + db::Box bx = safe_box (layout.cell (c->second).bbox ()); cell_instances.push_back (db::CellInstArray (db::CellInst (c->second), db::Trans (db::Vector (0, y) + (db::Point () - bx.p1 ())))); y += bx.height (); w = std::max (w, db::Coord (bx.width ())); @@ -191,7 +199,7 @@ MAGWriter::do_write_cell (db::cell_index_type ci, const std::vector >\n"; - write_polygon (db::Polygon (cell.bbox ()), layout, os); + write_polygon (db::Polygon (safe_box (cell.bbox ())), layout, os); bool any; @@ -292,18 +300,25 @@ namespace { void MAGWriter::write_polygon (const db::Polygon &poly, const db::Layout & /*layout*/, tl::OutputStream &os) { - db::EdgeProcessor ep; - ep.insert (scaled (poly)); - db::MergeOp op; TrapezoidWriter writer (os); - db::TrapezoidGenerator tpgen (writer); - ep.process (tpgen, op); + + if (poly.is_empty ()) { + // ignore empty polygons + } else if (poly.is_box ()) { + writer.put (db::SimplePolygon (scaled (poly.box ()))); + } else { + db::EdgeProcessor ep; + ep.insert (scaled (poly)); + db::MergeOp op; + db::TrapezoidGenerator tpgen (writer); + ep.process (tpgen, op); + } } void MAGWriter::write_label (const std::string &layer, const db::Text &text, const db::Layout & /*layout*/, tl::OutputStream &os) { - db::DVector v = db::DVector (text.trans ().disp ()) * m_sf; + db::Vector v = scaled (text.trans ().disp ()); std::string s = text.string (); if (s.find ("\n") != std::string::npos) { @@ -372,7 +387,7 @@ MAGWriter::write_single_instance (db::cell_index_type ci, db::ICplxTrans trans, db::Vector d = scaled (trans.disp ()); os << "transform " << m.m11 () << " " << m.m12 () << " " << d.x () << " " << m.m21 () << " " << m.m22 () << " " << d.y () << "\n"; - db::Box bx = scaled (layout.cell (ci).bbox ()); + db::Box bx = scaled (safe_box (layout.cell (ci).bbox ())); os << "box " << bx.left () << " " << bx.bottom () << " " << bx.right () << " " << bx.top () << "\n"; } @@ -410,7 +425,7 @@ MAGWriter::scaled (const db::Vector &v) const { db::Vector res (db::DVector (v) * m_sf); if (! db::DVector (res).equal (db::DVector (v) * m_sf)) { - tl::warn << tl::sprintf (tl::to_string (tr ("Vector rounding occurred at %s in cell %s - not a multiple of lambda (%.12g)")), v.to_string (), m_cellname, m_options.lambda); + tl::warn << tl::sprintf (tl::to_string (tr ("Vector rounding occurred at %s in cell %s - not a multiple of lambda (%.12g)")), (db::DVector (v) * m_sf).to_string (), m_cellname, m_options.lambda); } return res; } @@ -420,7 +435,7 @@ MAGWriter::scaled (const db::Point &p) const { db::Point res (db::DPoint (p) * m_sf); if (! db::DPoint (res).equal (db::DPoint (p) * m_sf)) { - tl::warn << tl::sprintf (tl::to_string (tr ("Coordinate rounding occurred at %s in cell %s - not a multiple of lambda (%.12g)")), p.to_string (), m_cellname, m_options.lambda); + tl::warn << tl::sprintf (tl::to_string (tr ("Coordinate rounding occurred at %s in cell %s - not a multiple of lambda (%.12g)")), (db::DPoint (p) * m_sf).to_string (), m_cellname, m_options.lambda); } return res; } diff --git a/src/plugins/streamers/magic/unit_tests/dbMAGReader.cc b/src/plugins/streamers/magic/unit_tests/dbMAGReader.cc index d3e9c28b1..ba8eea091 100644 --- a/src/plugins/streamers/magic/unit_tests/dbMAGReader.cc +++ b/src/plugins/streamers/magic/unit_tests/dbMAGReader.cc @@ -26,17 +26,24 @@ #include "dbWriter.h" #include "dbMAGWriter.h" #include "tlUnitTest.h" +#include "tlEnv.h" +#include "tlFileUtils.h" #include -static void run_test (tl::TestBase *_this, const std::string &base, const char *file, const char *file_au, const char *map = 0, double lambda = 0.1, double dbu = 0.001, const std::vector *lib_paths = 0) +static void run_test (tl::TestBase *_this, const std::string &base, const char *file, const char *file_au, const char *map = 0, double lambda = 0.1, double write_lambda = 0.0, double dbu = 0.001, const std::vector *lib_paths = 0) { db::MAGReaderOptions *opt = new db::MAGReaderOptions(); opt->dbu = dbu; + opt->lambda = lambda; if (lib_paths) { opt->lib_paths = *lib_paths; } + if (write_lambda == 0) { + write_lambda = lambda; + } + db::LayerMap lm; if (map) { unsigned int ln = 0; @@ -71,7 +78,7 @@ static void run_test (tl::TestBase *_this, const std::string &base, const char * std::string tc_name = layout.cell_name (*layout.begin_top_down ()); - // normalize the layout by writing to GDS and reading from .. + // normalize the layout by writing to CIF and reading from .. std::string tmp_cif_file = _this->tmp_file (tl::sprintf ("%s.cif", tc_name)); std::string tmp_mag_file = _this->tmp_file (tl::sprintf ("%s.mag", tc_name)); @@ -96,7 +103,7 @@ static void run_test (tl::TestBase *_this, const std::string &base, const char * tl::OutputStream stream (tmp_mag_file); db::MAGWriterOptions *opt = new db::MAGWriterOptions(); - opt->lambda = lambda; + opt->lambda = write_lambda; db::MAGWriter writer; db::SaveLayoutOptions options; @@ -109,7 +116,7 @@ static void run_test (tl::TestBase *_this, const std::string &base, const char * db::MAGReaderOptions *opt = new db::MAGReaderOptions(); opt->dbu = dbu; - opt->lambda = lambda; + opt->lambda = write_lambda; db::LoadLayoutOptions reread_options; reread_options.set_options (opt); @@ -141,23 +148,29 @@ static void run_test (tl::TestBase *_this, const std::string &base, const char * TEST(1) { - run_test (_this, tl::testdata (), "MAG_TEST.mag.gz", "mag_test_au.cif.gz"); + run_test (_this, tl::testdata (), "MAG_TEST.mag.gz", "mag_test_au.cif.gz", 0, 1.0, 0.1); } TEST(2) { std::vector lp; lp.push_back (std::string ("../..")); - run_test (_this, tl::testdata (), "PearlRiver/Layout/magic/PearlRiver_die.mag", "PearlRiver_au.cif.gz", 0, 1.0, 0.001, &lp); + run_test (_this, tl::testdata (), "PearlRiver/Layout/magic/PearlRiver_die.mag", "PearlRiver_au.cif.gz", 0, 1.0, 0.0, 0.001, &lp); } TEST(3) { - run_test (_this, tl::testdata (), "ringo/RINGO.mag", "ringo_au.cif.gz"); + run_test (_this, tl::testdata (), "ringo/RINGO.mag", "ringo_au.cif.gz", 0, 1.0, 0.1); } TEST(4) { - run_test (_this, tl::testdata (), "issue_1925/redux.mag", "redux_au.cif.gz"); + run_test (_this, tl::testdata (), "issue_1925/redux.mag", "redux_au.cif.gz", 0, 1.0, 0.1); +} + +TEST(5) +{ + tl::set_env ("__TESTSRC_ABSPATH", tl::absolute_file_path (tl::testsrc ())); + run_test (_this, tl::testdata (), "gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_top.mag.gz", "gf180mcu_ocd_sram_test.cif.gz", 0, 0.05, 0.005); } diff --git a/testdata/magic/gf180mcu_ocd_sram_test.cif.gz b/testdata/magic/gf180mcu_ocd_sram_test.cif.gz new file mode 100644 index 0000000000000000000000000000000000000000..675105ebd3b6fa11bf87436acf2e7ce983f6a231 GIT binary patch literal 97041 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

%R7B$|u=_`*zeVTCIFMYWe$c`_l8C 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

!MN71BfSkrVRof0Uhl9* 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 N)yHlb^!or9{|`)Ph0g#0 literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/constant_block.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/constant_block.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..f9b01d45d9e2902ee74d36bcde7b046e1076dccd GIT binary patch literal 528 zcmV+r0`L7FiwFplS9WOt17mM)b97;DbYEg@Z)0mNZDD5sol;wl+b|6L_bGS*10wYX z7W-B70zHB2Xwv|3vWVSXU{7C4lpHnK{b=DIV>ldfV4Rmmt1770cjEjUl@0c`~) zZoI=9dB$iM=H1nS8dfL$j~h-`&@2at4Lk&_Y!tD3`m?vGpxo=D)HiY$foX#p0pdF^}AV`MTv2 zPIY$}8@Hjt_4PQTMBzOBOy@O6;idexY^>dt_w$2-@3)kGOqUfb%ggt+uEXo~#?QiK zP45pvA^W4^?(`QLhl6O)XBs7-mV?*=+KZT=Ad1TMl0*eRRmoY1)MeodnU8e4ijEQ; S_98_>>HlZl$YEEW%o<@B#QKd)A^X{WRT z2U?lvy;jl0z%P5!D%i07e)YbdsrmA?tKFsIi(0E6b$x$xcYpWis=m0q`+af$>#R$^ z__67lvvz}d#)S29`dF`5OR9WUz81m_ecy(dtfkl2+XB{g-gSL z!+{WQYa@NgkhwOnaBUdlfVlsJ&slMlSd?y255;0!*h+*UIxY|bp|F$nVu~_lEW6t3Sh`??SmUldMbvcc}M&3r_{Svcqw5Scg@CJtdwoE2W5I5lm) zDBO;%haK?PT*`Sxjlu>uU?>KJ4GWvHfdFF|SdRh&14CiU<^tb2E98|q3b3r}#&kXF z`m%ALY$T2Ga#yp3yBb6kC7QEr1#MyL`q9!*$SX=T=Z=p2qrxD{U_G?V3A^RUJ?0*cTiQe1G2eyt3Sk!{jyu(w4Wt&~Gug^BD=RwmI=f{C&U$%KQfA(NLW^OQ!cP056dQFu_w(-f&J@WvGOvf}6FC}AMV zd;o&6EVPHA!?ynUM-D79Z^7%6g=PK1S{Nw4zA~{HqQYhE_WC0yT<|PLf1;fXEpu_w-q)kSV{R+C-3*w=D*3W)nUF;Gka${C;Zpz`$cgGM1D0(gR*yUbnM~B|^>OnL O2>$_b7-q!DAOHZ-dDD^r literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_20.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_20.mag new file mode 100644 index 000000000..509a92667 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_20.mag @@ -0,0 +1,6 @@ +magic +tech gf180mcuD +timestamp 1654634570 +<< properties >> +string FIXED_BBOX 0 -43 86 151 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_21.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_21.mag new file mode 100644 index 000000000..0502d3afe --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_21.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 216 756 +rect 0 0 216 216 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_22.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_22.mag new file mode 100644 index 000000000..0247bd612 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_22.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 108 756 +rect 216 324 324 756 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_23.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_23.mag new file mode 100644 index 000000000..e16f712fd --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_23.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 540 216 756 +rect 324 540 432 756 +rect 0 432 540 540 +rect 108 324 216 432 +rect 324 324 432 432 +rect 0 216 540 324 +rect 108 0 216 216 +rect 324 0 432 216 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_24.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_24.mag new file mode 100644 index 000000000..0bcb09483 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_24.mag @@ -0,0 +1,21 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 648 216 756 +rect 72 612 324 648 +rect 36 576 324 612 +rect 0 540 324 576 +rect 0 432 144 540 +rect 0 396 252 432 +rect 36 360 288 396 +rect 72 324 324 360 +rect 180 216 324 324 +rect 0 180 324 216 +rect 0 144 288 180 +rect 0 108 252 144 +rect 108 0 216 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_25.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_25.mag new file mode 100644 index 000000000..b733b0ece --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_25.mag @@ -0,0 +1,25 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 216 756 +rect 432 612 540 756 +rect 396 576 540 612 +rect 360 540 540 576 +rect 324 504 504 540 +rect 324 468 468 504 +rect 288 432 432 468 +rect 180 396 432 432 +rect 144 360 396 396 +rect 108 324 360 360 +rect 108 288 252 324 +rect 72 252 216 288 +rect 36 216 216 252 +rect 0 180 180 216 +rect 0 144 144 180 +rect 0 0 108 144 +rect 324 0 540 216 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_26.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_26.mag new file mode 100644 index 000000000..ec89b3a3a --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_26.mag @@ -0,0 +1,32 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 144 720 396 756 +rect 108 684 432 720 +rect 72 612 468 684 +rect 72 576 180 612 +rect 36 504 180 576 +rect 360 504 468 612 +rect 36 468 216 504 +rect 72 432 252 468 +rect 72 396 288 432 +rect 72 360 324 396 +rect 36 324 360 360 +rect 0 288 396 324 +rect 0 252 144 288 +rect 252 252 432 288 +rect 0 144 108 252 +rect 288 216 468 252 +rect 288 180 504 216 +rect 288 144 540 180 +rect 0 108 144 144 +rect 252 108 540 144 +rect 0 72 540 108 +rect 36 36 540 72 +rect 72 0 324 36 +rect 432 0 540 36 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_27.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_27.mag new file mode 100644 index 000000000..eddc45c1b --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_27.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 216 756 +rect 108 432 216 540 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_28.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_28.mag new file mode 100644 index 000000000..240059d92 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_28.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 216 756 +rect 36 684 216 720 +rect 0 612 216 684 +rect 0 144 108 612 +rect 0 72 216 144 +rect 36 36 216 72 +rect 72 0 216 36 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_29.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_29.mag new file mode 100644 index 000000000..a46025266 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_29.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 144 756 +rect 0 684 180 720 +rect 0 612 216 684 +rect 108 144 216 612 +rect 0 72 216 144 +rect 0 36 180 72 +rect 0 0 144 36 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2A.mag new file mode 100644 index 000000000..f91b73fad --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2A.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 216 648 324 756 +rect 144 576 396 648 +rect 36 468 504 576 +rect 144 396 396 468 +rect 216 288 324 396 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2B.mag new file mode 100644 index 000000000..233b019db --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2B.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 432 216 540 +rect 0 324 324 432 +rect 108 216 216 324 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2C.mag new file mode 100644 index 000000000..1b6d4ea85 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2C.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 0 216 216 +rect 108 -108 216 0 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2D.mag new file mode 100644 index 000000000..216c79110 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2D.mag @@ -0,0 +1,9 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 432 432 +<< properties >> +string FIXED_BBOX 0 -216 540 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2E.mag new file mode 100644 index 000000000..dd4f87833 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2E.mag @@ -0,0 +1,9 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 0 216 216 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2F.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2F.mag new file mode 100644 index 000000000..6a37bdf7e --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_2F.mag @@ -0,0 +1,21 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 216 648 324 756 +rect 180 540 324 648 +rect 144 504 324 540 +rect 144 468 288 504 +rect 108 432 288 468 +rect 108 396 252 432 +rect 72 360 252 396 +rect 72 324 216 360 +rect 36 288 216 324 +rect 36 252 180 288 +rect 0 216 180 252 +rect 0 108 144 216 +rect 0 0 108 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_30.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_30.mag new file mode 100644 index 000000000..ad13b1c96 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_30.mag @@ -0,0 +1,12 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 108 108 648 +rect 216 108 324 648 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_31.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_31.mag new file mode 100644 index 000000000..3fff8595c --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_31.mag @@ -0,0 +1,12 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 648 216 756 +rect 0 540 216 648 +rect 108 108 216 540 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_32.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_32.mag new file mode 100644 index 000000000..c926d1350 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_32.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 216 540 324 648 +rect 0 432 324 540 +rect 0 108 108 432 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_33.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_33.mag new file mode 100644 index 000000000..f8f5486a0 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_33.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 216 540 324 648 +rect 0 432 324 540 +rect 216 108 324 432 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_34.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_34.mag new file mode 100644 index 000000000..f5a95a2da --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_34.mag @@ -0,0 +1,12 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 108 648 +rect 216 540 324 756 +rect 0 432 324 540 +rect 216 0 324 432 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_35.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_35.mag new file mode 100644 index 000000000..648031765 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_35.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 540 108 648 +rect 0 432 324 540 +rect 216 108 324 432 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_36.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_36.mag new file mode 100644 index 000000000..5de847bf2 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_36.mag @@ -0,0 +1,14 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 540 108 648 +rect 0 432 324 540 +rect 0 108 108 432 +rect 216 108 324 432 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_37.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_37.mag new file mode 100644 index 000000000..742196012 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_37.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 216 0 324 648 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_38.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_38.mag new file mode 100644 index 000000000..4ef4a8049 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_38.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 540 108 648 +rect 216 540 324 648 +rect 0 432 324 540 +rect 0 108 108 432 +rect 216 108 324 432 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_39.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_39.mag new file mode 100644 index 000000000..d93c06bde --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_39.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 540 108 648 +rect 216 540 324 648 +rect 0 432 324 540 +rect 216 0 324 432 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3A.mag new file mode 100644 index 000000000..40e09c3f6 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3A.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 216 540 +rect 0 0 216 216 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3B.mag new file mode 100644 index 000000000..2f65eea61 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3B.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 216 540 +rect 0 0 216 216 +rect 108 -108 216 0 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3C.mag new file mode 100644 index 000000000..62302bb13 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3C.mag @@ -0,0 +1,21 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 216 612 324 648 +rect 180 576 324 612 +rect 144 540 324 576 +rect 108 504 288 540 +rect 72 468 252 504 +rect 36 432 216 468 +rect 0 324 180 432 +rect 36 288 216 324 +rect 72 252 252 288 +rect 108 216 288 252 +rect 144 180 324 216 +rect 180 144 324 180 +rect 216 108 324 144 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3D.mag new file mode 100644 index 000000000..c6408a4e5 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3D.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 432 432 540 +rect 0 216 432 324 +<< properties >> +string FIXED_BBOX 0 -216 540 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3E.mag new file mode 100644 index 000000000..d5ca1261b --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3E.mag @@ -0,0 +1,21 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 612 108 648 +rect 0 576 144 612 +rect 0 540 180 576 +rect 36 504 216 540 +rect 72 468 252 504 +rect 108 432 288 468 +rect 144 324 324 432 +rect 108 288 288 324 +rect 72 252 252 288 +rect 36 216 216 252 +rect 0 180 180 216 +rect 0 144 144 180 +rect 0 108 108 144 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3F.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3F.mag new file mode 100644 index 000000000..60d60ca99 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_3F.mag @@ -0,0 +1,18 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 252 756 +rect 36 684 288 720 +rect 0 612 324 684 +rect 0 540 108 612 +rect 216 468 324 612 +rect 180 432 324 468 +rect 108 396 324 432 +rect 72 360 288 396 +rect 72 288 252 360 +rect 36 0 288 180 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_40.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_40.mag new file mode 100644 index 000000000..0a5db700f --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_40.mag @@ -0,0 +1,33 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 144 720 648 756 +rect 108 684 684 720 +rect 72 648 720 684 +rect 36 612 216 648 +rect 576 612 756 648 +rect 0 576 180 612 +rect 612 576 756 612 +rect 0 540 144 576 +rect 0 0 108 540 +rect 288 504 468 540 +rect 252 468 504 504 +rect 216 396 540 468 +rect 216 144 324 396 +rect 432 144 540 396 +rect 648 144 756 576 +rect 216 72 756 144 +rect 252 36 720 72 +rect 288 0 432 36 +rect 540 0 684 36 +rect 0 -36 144 0 +rect 0 -72 180 -36 +rect 36 -108 216 -72 +rect 72 -144 648 -108 +rect 108 -180 648 -144 +rect 144 -216 648 -180 +<< properties >> +string FIXED_BBOX 0 -216 864 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_41.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_41.mag new file mode 100644 index 000000000..9e8c4d4ef --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_41.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 252 756 +rect 36 684 288 720 +rect 0 612 324 684 +rect 0 324 108 612 +rect 216 324 324 612 +rect 0 216 324 324 +rect 0 0 108 216 +rect 216 0 324 216 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_42.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_42.mag new file mode 100644 index 000000000..33da1b177 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_42.mag @@ -0,0 +1,19 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 252 756 +rect 0 684 288 720 +rect 0 612 324 684 +rect 0 432 108 612 +rect 216 432 324 612 +rect 0 324 324 432 +rect 0 144 108 324 +rect 216 144 324 324 +rect 0 72 324 144 +rect 0 36 288 72 +rect 0 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_43.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_43.mag new file mode 100644 index 000000000..43530ec5f --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_43.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 324 756 +rect 36 684 324 720 +rect 0 612 324 684 +rect 0 144 108 612 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_44.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_44.mag new file mode 100644 index 000000000..b9e4013e1 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_44.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 252 756 +rect 0 684 288 720 +rect 0 612 324 684 +rect 0 144 108 612 +rect 216 144 324 612 +rect 0 72 324 144 +rect 0 36 288 72 +rect 0 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_45.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_45.mag new file mode 100644 index 000000000..5976f9a29 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_45.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 432 108 648 +rect 0 324 216 432 +rect 0 108 108 324 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_46.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_46.mag new file mode 100644 index 000000000..af39dccbd --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_46.mag @@ -0,0 +1,12 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 432 108 648 +rect 0 324 216 432 +rect 0 0 108 324 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_47.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_47.mag new file mode 100644 index 000000000..86ec656b8 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_47.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 252 756 +rect 36 684 288 720 +rect 0 612 324 684 +rect 0 144 108 612 +rect 216 540 324 612 +rect 216 144 324 432 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_48.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_48.mag new file mode 100644 index 000000000..955506b2c --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_48.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 432 108 756 +rect 216 432 324 756 +rect 0 324 324 432 +rect 0 0 108 324 +rect 216 0 324 324 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_49.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_49.mag new file mode 100644 index 000000000..cb66d8d57 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_49.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 108 108 216 648 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4A.mag new file mode 100644 index 000000000..e4f3ea9e8 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4A.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 144 108 216 +rect 216 144 324 756 +rect 0 72 324 144 +rect 36 36 288 72 +rect 72 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4B.mag new file mode 100644 index 000000000..5c7a6d57b --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4B.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 576 108 756 +rect 216 576 324 756 +rect 0 504 324 576 +rect 0 432 288 504 +rect 0 324 252 432 +rect 0 252 288 324 +rect 0 180 324 252 +rect 0 0 108 180 +rect 216 0 324 180 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4C.mag new file mode 100644 index 000000000..c2ea84f54 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4C.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 108 108 756 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4D.mag new file mode 100644 index 000000000..705c62a4e --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4D.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 108 756 +rect 432 648 540 756 +rect 0 540 216 648 +rect 324 540 540 648 +rect 0 432 540 540 +rect 0 0 108 432 +rect 216 324 324 432 +rect 432 0 540 432 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4E.mag new file mode 100644 index 000000000..590a85bbc --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4E.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 108 756 +rect 0 540 216 648 +rect 324 540 432 756 +rect 0 432 432 540 +rect 0 0 108 432 +rect 216 324 432 432 +rect 324 0 432 324 +<< properties >> +string FIXED_BBOX 0 -216 540 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4F.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4F.mag new file mode 100644 index 000000000..97f6a8bfa --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_4F.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 252 756 +rect 36 684 288 720 +rect 0 612 324 684 +rect 0 144 108 612 +rect 216 144 324 612 +rect 0 72 324 144 +rect 36 36 288 72 +rect 72 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_50.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_50.mag new file mode 100644 index 000000000..b9ad6153c --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_50.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 252 756 +rect 0 684 288 720 +rect 0 612 324 684 +rect 0 360 108 612 +rect 216 360 324 612 +rect 0 288 324 360 +rect 0 252 288 288 +rect 0 216 252 252 +rect 0 0 108 216 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_51.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_51.mag new file mode 100644 index 000000000..f00e846ec --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_51.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 252 756 +rect 36 684 288 720 +rect 0 612 324 684 +rect 0 252 108 612 +rect 216 252 324 612 +rect 0 72 324 252 +rect 36 36 324 72 +rect 72 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_52.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_52.mag new file mode 100644 index 000000000..779f3c8b7 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_52.mag @@ -0,0 +1,22 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 252 756 +rect 0 684 288 720 +rect 0 612 324 684 +rect 0 504 108 612 +rect 216 504 324 612 +rect 0 432 324 504 +rect 0 396 288 432 +rect 0 360 252 396 +rect 0 252 216 360 +rect 0 216 252 252 +rect 0 180 288 216 +rect 0 108 324 180 +rect 0 0 108 108 +rect 216 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_53.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_53.mag new file mode 100644 index 000000000..d2e422fe2 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_53.mag @@ -0,0 +1,20 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 720 324 756 +rect 36 684 324 720 +rect 0 612 324 684 +rect 0 468 108 612 +rect 0 432 252 468 +rect 0 396 288 432 +rect 36 360 324 396 +rect 72 324 324 360 +rect 216 144 324 324 +rect 0 72 324 144 +rect 0 36 288 72 +rect 0 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_54.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_54.mag new file mode 100644 index 000000000..610888418 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_54.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 108 0 216 648 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_55.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_55.mag new file mode 100644 index 000000000..f49245b62 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_55.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 144 108 756 +rect 216 144 324 756 +rect 0 72 324 144 +rect 36 36 288 72 +rect 72 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_56.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_56.mag new file mode 100644 index 000000000..a4718b0e6 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_56.mag @@ -0,0 +1,14 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 396 108 756 +rect 216 396 324 756 +rect 0 324 324 396 +rect 36 216 288 324 +rect 72 108 252 216 +rect 108 0 216 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_57.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_57.mag new file mode 100644 index 000000000..53fc9897a --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_57.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 396 108 756 +rect 216 396 324 756 +rect 432 396 540 756 +rect 0 324 540 396 +rect 36 216 504 324 +rect 72 108 468 216 +rect 108 0 216 108 +rect 324 0 432 108 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_58.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_58.mag new file mode 100644 index 000000000..e5346da2d --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_58.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 576 108 756 +rect 216 576 324 756 +rect 0 504 324 576 +rect 36 432 288 504 +rect 72 324 252 432 +rect 36 252 288 324 +rect 0 180 324 252 +rect 0 0 108 180 +rect 216 0 324 180 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_59.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_59.mag new file mode 100644 index 000000000..887a995da --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_59.mag @@ -0,0 +1,14 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 504 108 756 +rect 216 504 324 756 +rect 0 432 324 504 +rect 36 360 288 432 +rect 72 288 252 360 +rect 108 0 216 288 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5A.mag new file mode 100644 index 000000000..bd6896bea --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5A.mag @@ -0,0 +1,19 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 216 504 324 648 +rect 180 468 324 504 +rect 144 432 324 468 +rect 108 396 288 432 +rect 72 360 252 396 +rect 36 324 216 360 +rect 0 288 180 324 +rect 0 252 144 288 +rect 0 108 108 252 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5B.mag new file mode 100644 index 000000000..d9da09a1b --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5B.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 0 108 108 648 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5C.mag new file mode 100644 index 000000000..0504ca61a --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5C.mag @@ -0,0 +1,21 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 108 756 +rect 0 540 144 648 +rect 0 504 180 540 +rect 36 468 180 504 +rect 36 432 216 468 +rect 72 396 216 432 +rect 72 360 252 396 +rect 108 324 252 360 +rect 108 288 288 324 +rect 144 252 288 288 +rect 144 216 324 252 +rect 180 108 324 216 +rect 216 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5D.mag new file mode 100644 index 000000000..d2a9be030 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5D.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 648 324 756 +rect 216 108 324 648 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5E.mag new file mode 100644 index 000000000..464801980 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5E.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 648 216 756 +rect 0 540 324 648 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5F.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5F.mag new file mode 100644 index 000000000..0345a7058 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_5F.mag @@ -0,0 +1,9 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 0 432 108 +<< properties >> +string FIXED_BBOX 0 -216 540 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_60.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_60.mag new file mode 100644 index 000000000..a41d62266 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_60.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 216 756 +rect 0 432 108 540 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_61.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_61.mag new file mode 100644 index 000000000..2903933e1 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_61.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 504 288 540 +rect 0 432 324 504 +rect 216 324 324 432 +rect 36 288 324 324 +rect 0 216 324 288 +rect 0 108 108 216 +rect 216 108 324 216 +rect 0 36 324 108 +rect 36 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_62.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_62.mag new file mode 100644 index 000000000..66a3611cf --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_62.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 108 756 +rect 0 504 252 540 +rect 0 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 0 36 288 72 +rect 0 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_63.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_63.mag new file mode 100644 index 000000000..40be9e7eb --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_63.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 252 540 +rect 36 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 324 324 396 +rect 216 144 324 180 +rect 0 72 324 144 +rect 36 36 288 72 +rect 72 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_64.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_64.mag new file mode 100644 index 000000000..035ba8bd4 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_64.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 216 540 324 756 +rect 72 504 324 540 +rect 36 468 324 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_65.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_65.mag new file mode 100644 index 000000000..b5935b07b --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_65.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 36 504 288 540 +rect 0 432 324 504 +rect 0 324 108 432 +rect 216 324 324 432 +rect 0 252 324 324 +rect 0 216 288 252 +rect 0 108 108 216 +rect 0 36 324 108 +rect 36 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_66.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_66.mag new file mode 100644 index 000000000..4021d01b3 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_66.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 144 720 324 756 +rect 108 648 324 720 +rect 108 540 216 648 +rect 0 432 324 540 +rect 108 0 216 432 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_67.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_67.mag new file mode 100644 index 000000000..ac463562e --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_67.mag @@ -0,0 +1,20 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 252 540 +rect 36 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +rect 180 -108 324 0 +rect 0 -144 324 -108 +rect 0 -180 288 -144 +rect 0 -216 252 -180 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_68.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_68.mag new file mode 100644 index 000000000..68d1e7573 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_68.mag @@ -0,0 +1,14 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 108 756 +rect 0 504 252 540 +rect 0 468 288 504 +rect 0 396 324 468 +rect 0 0 108 396 +rect 216 0 324 396 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_69.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_69.mag new file mode 100644 index 000000000..c1ae761d9 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_69.mag @@ -0,0 +1,12 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 216 756 +rect 0 324 216 432 +rect 108 108 216 324 +rect 0 0 216 108 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6A.mag new file mode 100644 index 000000000..002323b9c --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6A.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 540 216 756 +rect 0 324 216 432 +rect 108 -108 216 324 +rect 0 -180 216 -108 +rect 0 -216 180 -180 +<< properties >> +string FIXED_BBOX 0 -216 324 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6B.mag new file mode 100644 index 000000000..0152d2b50 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6B.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 432 108 756 +rect 216 432 324 540 +rect 0 360 324 432 +rect 0 324 288 360 +rect 0 216 216 324 +rect 0 180 288 216 +rect 0 108 324 180 +rect 0 0 108 108 +rect 216 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6C.mag new file mode 100644 index 000000000..7034c682f --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6C.mag @@ -0,0 +1,9 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 0 108 756 +<< properties >> +string FIXED_BBOX 0 -216 216 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6D.mag new file mode 100644 index 000000000..3c4163e66 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6D.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 504 216 540 +rect 324 504 468 540 +rect 0 468 504 504 +rect 0 396 540 468 +rect 0 0 108 396 +rect 216 0 324 396 +rect 432 0 540 396 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6E.mag new file mode 100644 index 000000000..69f0286f6 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6E.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 504 252 540 +rect 0 468 288 504 +rect 0 396 324 468 +rect 0 0 108 396 +rect 216 0 324 396 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6F.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6F.mag new file mode 100644 index 000000000..074dcc105 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_6F.mag @@ -0,0 +1,16 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 252 540 +rect 36 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 36 36 288 72 +rect 72 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_70.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_70.mag new file mode 100644 index 000000000..21f5069df --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_70.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 252 540 +rect 36 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 0 36 288 72 +rect 0 0 252 36 +rect 0 -216 108 0 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_71.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_71.mag new file mode 100644 index 000000000..0a1bfc9e8 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_71.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 252 540 +rect 36 468 288 504 +rect 0 396 324 468 +rect 0 144 108 396 +rect 216 144 324 396 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +rect 216 -216 324 0 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_72.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_72.mag new file mode 100644 index 000000000..22bf247df --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_72.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 504 252 540 +rect 0 468 288 504 +rect 0 396 324 468 +rect 0 0 108 396 +rect 216 324 324 396 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_73.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_73.mag new file mode 100644 index 000000000..820e9d7d5 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_73.mag @@ -0,0 +1,19 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 72 504 324 540 +rect 36 468 324 504 +rect 0 432 324 468 +rect 0 324 144 432 +rect 0 288 252 324 +rect 36 252 288 288 +rect 72 216 324 252 +rect 180 108 324 216 +rect 0 72 324 108 +rect 0 36 288 72 +rect 0 0 252 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_74.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_74.mag new file mode 100644 index 000000000..99e138e45 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_74.mag @@ -0,0 +1,11 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 540 216 648 +rect 0 432 324 540 +rect 108 0 216 432 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_75.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_75.mag new file mode 100644 index 000000000..3a2d24920 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_75.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 144 108 540 +rect 216 144 324 540 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_76.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_76.mag new file mode 100644 index 000000000..128a3e778 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_76.mag @@ -0,0 +1,13 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 216 108 540 +rect 216 216 324 540 +rect 0 108 324 216 +rect 36 72 288 108 +rect 108 0 216 72 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_77.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_77.mag new file mode 100644 index 000000000..1cc1cbf66 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_77.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 144 108 540 +rect 216 144 324 540 +rect 432 144 540 540 +rect 0 72 540 144 +rect 36 36 540 72 +rect 72 0 216 36 +rect 324 0 540 36 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_78.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_78.mag new file mode 100644 index 000000000..90007ecfc --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_78.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 396 108 540 +rect 216 396 324 540 +rect 0 324 324 396 +rect 36 216 288 324 +rect 0 144 324 216 +rect 0 0 108 144 +rect 216 0 324 144 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_79.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_79.mag new file mode 100644 index 000000000..067ac2a6f --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_79.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 144 108 540 +rect 216 144 324 540 +rect 0 72 324 144 +rect 36 36 324 72 +rect 72 0 324 36 +rect 180 -108 324 0 +rect 0 -144 324 -108 +rect 0 -180 288 -144 +rect 0 -216 252 -180 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7A.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7A.mag new file mode 100644 index 000000000..a12f354b1 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7A.mag @@ -0,0 +1,15 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 432 324 540 +rect 144 324 324 432 +rect 108 288 288 324 +rect 72 252 252 288 +rect 36 216 216 252 +rect 0 108 180 216 +rect 0 0 324 108 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7B.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7B.mag new file mode 100644 index 000000000..760bc7341 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7B.mag @@ -0,0 +1,19 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 180 720 324 756 +rect 144 684 324 720 +rect 108 612 324 684 +rect 108 504 216 612 +rect 72 432 216 504 +rect 0 324 180 432 +rect 72 252 216 324 +rect 108 144 216 252 +rect 108 72 324 144 +rect 144 36 324 72 +rect 180 0 324 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7C.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7C.mag new file mode 100644 index 000000000..3a6523a7e --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7C.mag @@ -0,0 +1,10 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 324 108 756 +rect 0 -216 108 216 +<< properties >> +string FIXED_BBOX 0 -216 216 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7D.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7D.mag new file mode 100644 index 000000000..32aa8e8dd --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7D.mag @@ -0,0 +1,19 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 0 720 144 756 +rect 0 684 180 720 +rect 0 612 216 684 +rect 108 504 216 612 +rect 108 432 252 504 +rect 144 324 324 432 +rect 108 252 252 324 +rect 108 144 216 252 +rect 0 72 216 144 +rect 0 36 180 72 +rect 0 0 144 36 +<< properties >> +string FIXED_BBOX 0 -216 432 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7E.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7E.mag new file mode 100644 index 000000000..c37d2f5f7 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_7E.mag @@ -0,0 +1,17 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 108 720 288 756 +rect 36 684 324 720 +rect 0 648 324 684 +rect 432 648 540 684 +rect 0 612 540 648 +rect 0 576 108 612 +rect 216 576 540 612 +rect 216 540 504 576 +rect 252 504 432 540 +<< properties >> +string FIXED_BBOX 0 -216 648 756 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_A9.mag b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_A9.mag new file mode 100644 index 000000000..acca143c2 --- /dev/null +++ b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_alpha_small/magic/font_A9.mag @@ -0,0 +1,34 @@ +magic +tech gf180mcuD +magscale 1 5 +timestamp 1654634570 +<< metal5 >> +rect 6300 6120 6804 6156 +rect 6264 6084 6840 6120 +rect 6228 6048 6876 6084 +rect 6192 6012 6372 6048 +rect 6732 6012 6912 6048 +rect 6156 5976 6336 6012 +rect 6768 5976 6912 6012 +rect 6156 5940 6300 5976 +rect 6156 5400 6264 5940 +rect 6444 5904 6624 5940 +rect 6408 5868 6660 5904 +rect 6372 5796 6696 5868 +rect 6372 5544 6480 5796 +rect 6588 5724 6696 5796 +rect 6588 5544 6696 5616 +rect 6372 5472 6696 5544 +rect 6408 5436 6660 5472 +rect 6444 5400 6624 5436 +rect 6804 5400 6912 5976 +rect 6156 5364 6300 5400 +rect 6768 5364 6912 5400 +rect 6156 5328 6336 5364 +rect 6732 5328 6912 5364 +rect 6192 5292 6372 5328 +rect 6696 5292 6876 5328 +rect 6228 5256 6840 5292 +rect 6264 5220 6804 5256 +rect 6300 5184 6768 5220 +<< end >> diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_test.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_test.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..fbede52f5eb8c7c1de0f1b5d90839c392e398036 GIT binary patch literal 45148 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 HC*=PFc1&f0 literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_top.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/gf180mcu_ocd_sram_top.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..bdee085c4be27316203b8d70c95d4bc1e6491eb6 GIT binary patch literal 262 zcmV+h0r~zPiwFqfGzJYg$ zn@B}hj}&poz7`#3twRqlGL3LGgUhKc@W)P$D}H6w`3Iz`h*Q4dHqnzL)s`2S@}MQW^mhSBP5ARp7wB3l2y*Q(#DP z)-qzn>?LCj`Q4@-(aeim@$E6$sJ5y{Z7uWp-kdzVgan@TBVVC7Do|wXaHLv^&Y4nl z5-QekgFVKI{pby5X*jaQlBD7k$zbxKnG<>IPBgkEgcz;B)B-4?P0-hAeMmk zivFRdbs;2?e3wnY$AeVi`K#6r{@;P8KxD(+1LKK3N66N!=eDyJE@c%+3oL%VIAn0C criO_vb}do|)KytN-}0XP0brl4stp4G0B=B^0RR91 literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..4758d5e1aaeb551ad1a9f86c92ac51be4285459a GIT binary patch literal 279 zcmV+y0qFi8iwFqfGP4r42Acc z!biXu10zLQ^&*Ip=}4ifnrY5o^D_zAWHHj{dwzZom$+_8?KyqHdcmMe`uk8NuD2Ag z84ysbeJlC4$MOT{on3+ni&Li)l)T3)!uhOzbJ_t783H8v?4mVb;32Sf+y%C5CZRb< zG$zXs{4vjn9kcNjOW1vjQ&bOV8{6(@R9)1qvZGsDPc!#)0mN>swICG+CSx_Ut>`8! z0YL)1{Nc;I4WSA=1bo!*!uvaP2fsS-5Qye*{lIu&!w$kypG#)$+PH6rBN>?S`!myo d+cXVKJYzi~rJx)(e}C4i{sZ+xrOZPD0070ufaCxG literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb_pullup.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/horz_connects_resetb_pullup.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..cd0d427977238485fe574ff24b170ebf3d58acd0 GIT binary patch literal 209 zcmV;?051O@iwFqfG^)Vj-a6WO~N(?~`Jw_ilC zQ*!p^K_Dse5`4-w+(AuUwT4Ywi>||Cv4rzkMDH?~Dg#mq%u<4k{%R$epmbrQU>dO} zk9mu)-finz3aO7i`8?pK?f;DDXxB7uG2lcfYr4{W5K;`=6U2(u$7^m-!tvIx*W>IP LB@~Wi@Bjb+Q1W1f literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/horz_power_connect.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/horz_power_connect.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..7b00b4b173e3de302ff201c66407d23c9eb2ae46 GIT binary patch literal 388 zcmV-~0ek)*iwFqfG^O}HF z5#%AmvXrQ~2BK;ABCJaK?4=M}pEU+ojX6=w1=C3Tpmg08tJ$oT+{{XIa|~{W5GRVc zVAeV+sGU%IK~}TbI=z{-^)_n^Zif&jin(Ck&_1-@xxFB(l0JSjX98&&1a5~ACyIHI z3@#m7#Ht{xc@|i8m~hQB2Mq|{1poj;gnNKd83m+n1?nx#n~# zfPmJtwU%p3^#T~Yvq2_%IUNfS z5SljDa&4)efr57!BsyzWE6Dqj59c(V8m!mmQgQ=l)hdB7DmidMKH8q5cYWeMCi-I| zaZk+pvM-=$XFy$CfarsKKnzSvFb&N>6#ET?SojTu1aY|m`SZ|}^m(NE@CFok1}x(@ am`Y&xTS*5~CFQj3jXVH}uJl`n0RRALUtul) literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/lvlshift_down.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/lvlshift_down.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..587d51a07ba664a84088c544a39061f062ecfa5d GIT binary patch literal 631 zcmV--0*L(|iwFodS$1gv18jC|b7*O1bYEm|cWy3iVP^o1RNIOhF${g5uka5nSn_3T zSQZMQ^r3Hog+9)v-ZYTOE}7Z(_bbctT#{K@^5W)9^NYybR;D8B&tO&pgXy!)C|AQzzUdY zIEa*D^Vqy2Eu4WR0>P7>F&gG9i$NeQA|jU+03%fZx}^XxHOzpvbd#~3DFVdUk~eLh zW^Ubizpxp26d+Tw8GoO;*^1&BHVNBhb`KAiWY9}-WE?WZ8V;hljH`xaDioKg%u=%C ztTC%yfd@lzh=CSQ)4k~C^}$8YtT!)1)PA)LjQnF6O3nn-94E-^d2ctZQ{vQoU5XOc z@Qkwb9l%ybO37Ai~LbA#%cNV!^&YBnXONPG5@PZI0 z&*j{`r1OyH^2*2h&fVEw+x&2Ry{5G9E`zf4NS5F3dB1Po->zA`%aH!u6-_j$>e#J*c-7GA#j0&rdEV_x8Q3aw^Zt?rK9#4|!BU4r RPnVxr@xSx~BTl*o007v7IaUAw literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/ocd_mux_array.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/ocd_mux_array.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..385be7a2a702b62788071e5880fa7a671a7b8574 GIT binary patch literal 2098 zcmV-22+j8&iwFo8S$1gv18-wwUu|`GUtw}`VRogiV7*E6`ITl!il$}94~sm+gFQIpNJr$M=4t=s;coYOxchhc z^4X(%y8Hge?rHz!c(;E%EPnBB_xkX3IKJ+mzAe7w6abQk-Me?o)8Tdh=$H5JcQ1## z*Cl3jJ}f>t=b%630{zJcI0eKSd=)^f0JYQoc-WtiRrLL@+57fXU3C4a6wiPPIj#VQ z{V9f(tYj2G#H0Wz##2CXE|nDkp+9+_S3nH{Kw{`Q6jzBsawtAzln}*3C?dDkuP?U;&uZ$N_4ICWpS*BZpXsVdRip z$scg za^(rCSX8L7*P0yjdhkojIJLrq7Ld?yN4*k!l$*jYv6Y)`=c==StsZf8()EZ+loTv5 z0AfJQRRJ1YRWx3wt)k_gBmgJb3l=YfdW-f>qukJI)~(#wb!exb7AmZ@;2a;!_N11psJbCjdjA(sLI7BOY0I&?yBZI9+(pS05f-T(4u7iMHJoFHdau7Z6 zThL~4l4>28fy@M13$@+sFW7A)ZvjPzV1UvC_*}sflm1B}f=nMKM4rs<)w`sJ52LD2m>Kwwsew>%a_T4aq1f!LVBt z?`TU9F;EBwC`C1M31g|7xkRI=<{k4;6zid>LyR2@rt}cyTv1{VYFE^`e;5otZq_gn z-x)(ln{TVcC#FgqNL?+K4S~{{V_F^0x$J2j$U~FmJ~7##3hA~`rvPHuRLuajo6V+2 zwbUV1qiP0lh-%v+TYEA3wvh5>kEJP}1(2AN^g0|V4Lw1$r=NuR;!fdM>IIolR_%#xwYmO*|^8oFo%Q`^mRm`r81 z3<|@l2L>oTV64O2_p!}*dwvVrEKX9b12gd8=WJW#Sx_cJTLy`NLNGw-p^c8i{P)q( zn*TN#D)TQDCUDp56=t(mtt+f!8&JKmA!s_KSyk-?53Dl2+6u!An_w8A7OKs+!+7`k z));RA@Br*=*W;O3CS+S-cpYd$rg>TEfrn-pp>2f`hE*^O7=r0D_AuUk#x};A--33N zlN{?H3_PVf)AeL0qHY#kXesAPVYZ9 z1l<(S#e%*{z*rPu&EXV4469%Spckqwo_dQ~j58Mi-&VM4L)5JAJD5RVXOz)U<6(KeyZ`v(VIMxi&qY6c456C4`Q|rMTdCKV{nz8?=a;9&FK&U}7;^jJ z+fQ)2PtQLWteY#(v3adl%+}E&r+~kR2=;5hJYsXuO&V_#(ckut&3fP)MGUt^Ou@xB ziU_ww1aR(+BF38{)_~!yBBt9Sy6WFbtNFH7t^K3ajS<`FecXRKJRbY${k;C<&tO+R ze>L_$Uk-;4Ep9LV%l7Zb{r&FS^UG`d`Sp1C?*iTAW7!3|<8h<&=X79;Od~H`Wae}q zHnMO|7A{>pVudg#`|a=Y&&CH+zWK$~HNH%Ian3irwz$TZh%e3grUTM#v)c7f#7^#=S;0>F?It=rZf+w4T cH*5;)FwjY9M&$7IzPphB0pBp1+`%IN09@|#oB#j- literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/ocd_via2_3x.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/ocd_via2_3x.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..02b5be7215f7078c42c901f06262960d4a705886 GIT binary patch literal 187 zcmV;s07U;EiwFqfGGG8-zE^T3F0L_j;4uUWcMfW|$9HA|pQWC<- zi%iB58Yv-KJ-;-H0Zm-Hoc#CyyhMFum4yfBPbTQZw}VR5UztV$14gSHlUy^U8BFa_ zV}qeqZ3{dIpJ$3whOSc=;S8av(SmW_*#M2!9?O9?6h29&(SEaN?VkOZs(d-Td$G@W pDWF^9P22twS=b_SkF?Y9+aY}aS(U3lP?qUfEFNlYm4dDT007nBR15$B literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/vert_connects.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/vert_connects.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..092e10b09f4c6b1e0fbea3d1c4052cfe39d9bd52 GIT binary patch literal 594 zcmV-Y0KDcTrQDW~^$Gf&HK1@rN7dQ9VDtZ~s{FcIqy$W|x-tQ~!X=w*cw&PxJ`=?aW2j0O{U>=suTTCoZ}MNO#GK4nFldanUtUbziLLzT{qK z&Uy=w9t(<|QtWl&qHCa@cb-!RuwCX%$!)maj3u#Z6Lj|yWmR!iOOTY&^%)c83=~&2 zt&PmPKBldWxpmRoLZ&aFiNwfLSZ{>&?fz-lUQRSm|1LwDCY~Z58`zBvcZlZ$cJslU z2LX12AOk=hhh4{+b8BJOT4|}ZTQ_shxmmDl7L}g+0)1cjOQ{9Ww}2>D8~SP!P1}d& z?mM}P&{dI4*p4S%L9ay%c(8-s`aTfwU)9;~7G8VGo>hvI7>;K3rY z-vR*-Hc@;H1bnrMBsU!J)h@EDIN+;g*jM(J0<*Um)(vmNDtTo|Hex#yFOgFPUekPKp+h28Wv zl$0asl^k`IGbMG!Bt}q%#E1Y@%#_3x)7&)nacUlVhtV%ec5C~_Yh>&+!kF@VaW!K~ zMp5t~3MZiP*m@?bYz|vB rC#Sq_Usu0{#qZ>L58HB?#p&!q@D~xbn6Rl`f2Wzo~E>j?uyVC!PgU>f1wYb&1R61GS^}LmfSS)LP zE!tUr+o>5v(%eF1{d6KTdL@x}p_eEt(7T4fHvi-q@;EyZ}XHP@^_(ARu>N|W0x(NUP6Ts3P literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/vert_via_program_input.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/vert_via_program_input.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..ee65320081cef4022900ab1e38b9b4ae8ec09b0b GIT binary patch literal 225 zcmV<703QDziwFqfGp0x=8) z(0xwfBiLh4>_~`JFA}BcFoGad0_TUJ5~N;!22W}ZA?#sP3b4+v=h b6v=^qory-lt+RUm-YRr~v=~Mj2u+ literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__id.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__id.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..30b92dc9198bfb5c62d4be9dafdd16c3ef9ce8f8 GIT binary patch literal 39798 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 literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__logo.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/gf180mcu_ws_ip__logo.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..3265f536ec281f9bc7a20d899a2e363c0f9fdd8f GIT binary patch literal 5363 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 M4m|%=j^@<=03QQ}kpKVy literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f60c3f89822e3ee245daa879b2404ea4183e094 GIT binary patch literal 209 zcmV;?051O@iwFq5UUq2!19N3zY;tLCXD)4FX8>JJK?;K~5WMFVd+0ePF-8wXC}>Ne z^iaKv)tCy6N)kc(`l_@=$`0(#vO6=nRBeTvtRA2m8WCNM339EL)|Gky8j66EkPD7R zE5XY0Y1&Q|6NMky(SrQF_%!q*j+`kw+w?{Q1+v!M(Y>G6IgA7+5D>u#+V5d7{UD8N zrG+>~)-BR-O0puoCcq+2nJ?IOe>`7Oz}TCiYU_RD;F)0c+FoY);g)|i7+=g}S1&Ga L;99+@{r~^~1sh-n literal 0 HcmV?d00001 diff --git a/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring_x1.mag.gz b/testdata/magic/gf180mcu_ocd_sram_test/wafer_space/sealring_x1.mag.gz new file mode 100644 index 0000000000000000000000000000000000000000..bcae5254c32e191ff0357db77825a5a4a113ae97 GIT binary patch literal 603 zcmV-h0;K&PiwFqWM|Nod19N3zY;tLCXJ2?RE^T3F0PR-WYTG~%eb-m)57gP4Rx1dB zfYVYaeQ5GtRC%q4SgNoT0{!~#>~+-ChCH;CVlcbjIdjgAXO3+RP1m=@V%kU2?U|-S z`@AiNrkmU5Uvd1;1;uu7GJRYJ?+`kJ(lrhS^4eq6}SO>s2sLf&yoX;>?* zrQJ%Z?Gf^)`T5(f-|r!NIraoF2`Tnkc&}_8nT=NpF^5-Ls+8fVDH3ock;02tfPkPF zhUAC|NOg8rNETM?X>a`h= zMkI#N$_kM1HY@OxRsfT@#b-I$c&5lE+)v8iio63SiBe2f$b1nBLTt5$S z#DuR$(v%S|p%^bUQV6qAQ5i}3hmP#XGy#2j0{Esdfh>D!0$gV9FB5RFfQPzMX;AaJ z?h*GxWl=ceR;aA!d9LHr@%v)q!q;aW0o7aV{8@zWjIY_9C9 p+s#+AX%2vG>|xXWz?t_Cw_hIY)4qGMH{%X2_z9{fJDMB}0078FF(3c{ literal 0 HcmV?d00001