Index: TODO/disj.lht =================================================================== --- TODO/disj.lht (revision 35549) +++ TODO/disj.lht (nonexistent) @@ -1,853 +0,0 @@ -ha:pcb-rnd-board-v8 { - - ha:meta { - ha:size { - thermal_scale = 0.500000 - x = 7.7mm - y = 6.2mm - } - ha:grid { - spacing = 0.05mm - offs_x = 0.0 - offs_y = 0.0 - } - board_name = HDMI firewall dongle - } - - ha:data { - li:padstack_prototypes { - - unused = 1 - unused = 1 - ha:ps_proto_v6.2 { - hdia=0.2mm; hplated=1; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.45mm; } - ha:combining { } - ha:layer_mask { - copper = 1 - top = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:ps_circ { x=0.0; y=0.0; dia=0.45mm; } - ha:combining { } - ha:layer_mask { - bottom = 1 - copper = 1 - } - clearance=0.0 - } - - ha:ps_shape_v4 { - ha:combining { } - ha:layer_mask { - copper = 1 - intern = 1 - } - clearance=0.0 - ps_hshadow = - } - } - } - - - unused = 1 - unused = 1 - unused = 1 - } - - li:objects { - ha:padstack_ref.21186 { - proto=2; x=6.65mm; y=5.15mm; rot=0.000000; xmirror=0; smirror=0; clearance=30.0mil; - ha:flags { - clearline=1 - } - - li:thermal { - li:2 { - on - solid - noshape - } - li:3 { - on - solid - noshape - } - li:20 { - on - solid - noshape - } - li:21 { - on - solid - noshape - } - } - } - ha:subc.8619 { - ha:attributes { - value=untrusted device - footprint=CONNECTOR_HDMI-001S.lht - refdes=J1 - } - ha:data { - li:padstack_prototypes { - - ha:ps_proto_v6.0 { - hdia=0.0; hplated=0; htop=0; hbottom=0; - li:shape { - - ha:ps_shape_v4 { - ha:combining { } - ha:layer_mask { - copper = 1 - top = 1 - } - clearance=0.2mm - li:ps_poly { - -0.15mm - -1.3mm - 0.15mm - -1.3mm - 0.15mm - 1.3mm - -0.15mm - 1.3mm - } - } - - ha:ps_shape_v4 { - ha:combining { sub=1; auto=1; } - ha:layer_mask { - top = 1 - mask = 1 - } - clearance=0.0 - li:ps_poly { - -0.2mm - -1.35mm - 0.2mm - -1.35mm - 0.2mm - 1.35mm - -0.2mm - 1.35mm - } - } - - ha:ps_shape_v4 { - ha:combining { auto=1; } - ha:layer_mask { - top = 1 - paste = 1 - } - clearance=0.0 - li:ps_poly { - -0.15mm - -1.3mm - 0.15mm - -1.3mm - 0.15mm - 1.3mm - -0.15mm - 1.3mm - } - } - } - } - - unused = 1 - unused = 1 - } - - li:objects { - ha:padstack_ref.8674 { - proto=0; x=5.085mm; y=5.15mm; rot=90.000000; xmirror=0; smirror=0; clearance=0.2mm; - ha:flags { - clearline=1 - } - - li:thermal { - li:2 { - on - solid - noshape - } - } - - ha:attributes { - term=2 - name=2 - } - } - } - li:layers { - - ha:subc-aux { - lid=0 - ha:combining { } - - li:objects { - ha:line.8620 { - x1=0.85mm; y1=1.15mm; x2=0.85mm; y2=1.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=origin - } - } - ha:line.8623 { - x1=0.85mm; y1=1.15mm; x2=0.85mm; y2=0.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=x - } - } - ha:line.8626 { - x1=0.85mm; y1=1.15mm; x2=1.85mm; y2=1.15mm; thickness=0.1mm; clearance=0.0; - ha:attributes { - subc-role=y - } - } - } - ha:type { - top = 1 - misc = 1 - virtual = 1 - } - } - - ha:top-silkscreen { - lid=1 - ha:combining { } - - li:objects { - } - ha:type { - silk = 1 - top = 1 - } - } - - ha:top-assembly { - lid=2 - ha:combining { } - - li:objects { - ha:line.8653 { - x1=0.85mm; y1=1.85mm; x2=0.85mm; y2=0.45mm; thickness=0.1mm; clearance=0.0; - } - ha:line.8656 { - x1=0.15mm; y1=1.15mm; x2=1.55mm; y2=1.15mm; thickness=0.1mm; clearance=0.0; - } - ha:arc.8671 { - x=0.85mm; y=1.15mm; width=0.5mm; height=0.5mm; astart=90.000000; adelta=360.000000; thickness=0.1mm; clearance=0.0; - } - ha:text.8672 { - string=%a.parent.refdes%; x=-1.65mm; y=-0.35mm; scale=100; fid=0; - ha:flags { - dyntext=1 - floater=1 - } - rot = 90.000000 - } - } - ha:type { - top = 1 - doc = 1 - } - purpose = assy - } - - ha:top-courtyard { - lid=3 - ha:combining { } - - li:objects { - } - ha:type { - top = 1 - doc = 1 - } - purpose = ko.courtyard - } - } - } - uid = UsZVGY9SkJLERZiC+TcAAAAj - } - } - li:layers { - - ha:top-sig { - lid=0 - group=3 - ha:combining { } - - ha:attributes { - {pcb-rnd::key::vis}={l; Shiftt} - {pcb-rnd::key::select}={l; t} - } - - li:objects { - } - color = {#238b27} - } - - ha:bottom-sig { - lid=1 - group=13 - ha:combining { } - - ha:attributes { - {pcb-rnd::key::vis}={l; Shiftb} - {pcb-rnd::key::select}={l; b} - } - - li:objects { - } - color = {#38ee39} - } - - ha:top-gnd { - lid=2 - group=3 - ha:combining { } - - li:objects { - ha:line.22371 { - x1=6.65mm; y1=5.15mm; x2=5.085mm; y2=5.15mm; thickness=0.3mm; clearance=0.4mm; - } - } - color = {#104e8b} - } - - ha:bottom-gnd { - lid=3 - group=13 - ha:combining { } - - li:objects { - } - color = {#6164ff} - } - - ha:outline { - lid=4 - group=9 - ha:combining { } - - li:objects { - } - color = {#00868b} - } - - ha:bottom-silk { - lid=5 - group=15 - ha:combining { auto=1; } - - ha:attributes { - {pcb-rnd::key::vis}={l; Shiftx} - {pcb-rnd::key::select}={l; x} - } - - li:objects { - } - color = {#000000} - } - - ha:top-silk { - lid=6 - group=1 - ha:combining { auto=1; } - - ha:attributes { - {pcb-rnd::key::vis}={l; Shifts} - {pcb-rnd::key::select}={l; s} - } - - li:objects { - } - color = {#000000} - } - - ha:top-paste { - lid=7 - group=0 - ha:combining { auto=1; } - - li:objects { - } - color = {#cd00cd} - } - - ha:top-mask { - lid=8 - group=2 - ha:combining { sub=1; auto=1; } - - li:objects { - } - color = {#ff0000} - } - - ha:bottom-mask { - lid=9 - group=14 - ha:combining { sub=1; auto=1; } - - li:objects { - } - color = {#ff0000} - } - - ha:bottom-paste { - lid=10 - group=16 - ha:combining { auto=1; } - - li:objects { - } - color = {#cd00cd} - } - - ha:slot-plated { - lid=11 - group=17 - ha:combining { auto=1; } - - li:objects { - } - color = {#8b7355} - } - - ha:slot-unplated { - lid=12 - group=18 - ha:combining { auto=1; } - - li:objects { - } - color = {#00868b} - } - - ha:top-assy { - lid=13 - group=19 - ha:combining { } - - li:objects { - } - color = {#444444} - } - - ha:bot-assy { - lid=14 - group=20 - ha:combining { } - - li:objects { - } - color = {#444444} - } - - ha:fab { - lid=15 - group=21 - ha:combining { auto=1; } - - li:objects { - } - color = {#222222} - } - - ha:top-courtyard { - lid=16 - group=10 - ha:combining { } - - li:objects { - } - color = {#104e8b} - } - - ha:bot-courtyard { - lid=17 - group=11 - ha:combining { } - - li:objects { - } - color = {#cd3700} - } - - ha:top-pwr { - lid=18 - group=3 - ha:combining { } - - li:objects { - } - color = {#c24744} - } - - ha:bottom-pwr { - lid=19 - group=13 - ha:combining { } - - li:objects { - } - color = {#ff5759} - } - - - - ha:inner-top { - lid=20 - group=5 - ha:combining { } - - li:objects { - } - color = {#548b54} - } - - ha:inner-bottom { - lid=21 - group=7 - ha:combining { } - - li:objects { - } - color = {#8b7355} - } - - ha:break-tabs { - lid=22 - group=12 - ha:combining { } - - li:objects { - } - color = {#00868b} - } - } - } - - ha:layer_stack { - li:groups { - ha:0 { - name = top_paste - ha:type { top=1; paste=1; } - li:layers { 7; } - } - ha:1 { - name = top_silk - ha:type { silk=1; top=1; } - li:layers { 6; } - } - ha:2 { - name = top_mask - ha:type { top=1; mask=1; } - li:layers { 8; } - } - ha:3 { - name = top_copper - ha:type { copper=1; top=1; } - li:layers { 0; 18; 2; } - ha:attributes { - thickness=0.035mm - } - } - ha:4 { - name = grp_4 - ha:type { substrate=1; intern=1; } - li:layers { } - ha:attributes { - thickness={0.2mm } - } - } - ha:5 { - name = Intern - ha:type { copper=1; intern=1; } - li:layers { 20; } - ha:attributes { - thickness=0.0175mm - } - } - ha:6 { - ha:type { substrate=1; intern=1; } - li:layers { } - name = grp_6 - ha:attributes { - thickness=1.065mm - } - } - ha:7 { - name = Intern - ha:type { intern=1; copper=1; } - li:layers { 21;} - ha:attributes { - thickness={0.0175mm} - } - } - ha:8 { - name = grp_9 - ha:type { intern=1; substrate=1; } - li:layers { } - ha:attributes { - thickness=0.2mm - } - } - ha:9 { - ha:type { boundary=1; } - li:layers { 4;} - name = global_outline - purpose = uroute - } - ha:10 { - name = top-courtyard - ha:type { top=1; doc=1; } - li:layers { 16;} - ha:attributes { - init-invis=true - } - purpose = ko.courtyard - } - ha:11 { - name = bot-courtyard - ha:type { bottom=1; doc=1; } - li:layers { 17; } - purpose = ko.courtyard - ha:attributes { - init-invis=true - } - } - ha:12 { - name = global-doc - ha:type { doc=1; } - li:layers { 22; } - } - ha:13 { - name = bottom_copper - ha:type { bottom=1; copper=1; } - li:layers { 1; 19; 3; } - ha:attributes { - thickness=0.035mm - } - } - ha:14 { - name = bottom_mask - ha:type { bottom=1; mask=1; } - li:layers { 9; } - } - ha:15 { - name = bottom_silk - ha:type { bottom=1; silk=1; } - li:layers { 5; } - } - ha:16 { - name = bottom_paste - ha:type { bottom=1; paste=1; } - li:layers { 10; } - } - ha:17 { - name = pmech - ha:type { mech=1; } - li:layers { 11; } - purpose = proute - } - ha:18 { - name = umech - ha:type { mech=1; } - li:layers { 12; } - purpose = uroute - } - ha:19 { - name = top_assy - ha:type { doc=1; top=1; } - li:layers { 13; } - purpose = assy - ha:attributes { - init-invis=1 - } - } - ha:20 { - name = bot_assy - ha:type { doc=1; bottom=1; } - li:layers { 14; } - ha:attributes { - init-invis=1 - } - purpose = assy - } - ha:21 { - name = fab - ha:type { top=1; doc=1; } - li:layers { 15; } - ha:attributes { - init-invis=1 - } - purpose = fab - } - } - } - li:pcb-rnd-conf-v1 { - ha:overwrite { - ha:design { - via_proto = 2 - text_font_id = 0 - text_scale = 100 - min_slk = 0.15240000 mm - text_thickness = 0 - line_thickness = 200.00 um - ha:drc { - min_ring = 0.125 mm - min_copper_overlap = 5.0 mil - min_drill = 0.2 mm - min_copper_thickness = 5.0 mil - min_copper_clearance = 5.0 mil - } - min_wid = 0.15240000 mm - bloat = 0.15240000 mm - clearance = 30.00 mil - } - ha:editor { - grid_unit = mm - grids_idx = 8 - grid = 50.00 um - buffer_number = 0 - line_refraction = 1 - rubber_band_mode = false - ha:view { - flip_y = 0 - } - show_solder_side = 0 - clear_line = false - } - ha:rc { - li:library_search_paths { - $(rc.path.design)/coraleda/subc - $(rc.path.design)/coraleda/subc - ?../pcblib - ?~/pcblib/ - $(rc.path.share)/pcblib - } - } - ha:plugins { - ha:import_sch { - li:args { - ./hdmi_firewall.sch - } - import_fmt = lepton - } - ha:show_netnames { - enable = true - } - } - } - ha:append { - ha:plugins { - ha:drc_query { - li:rules { - ha:net-length { - type = net length - title = network length violation - desc = network length is not within the specified range - query = {rule net_len_min -let ALLNETS netlist() -let LNET (ALLNETS.a."len_min" != "") -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (netlen(LNET) < coord(LNET.a."len_min")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is too short: ", DRCTEXT, LNET.name, DRCMEASURE, netlen(LNET), DRCEXPECT, LNET.a."len_min") -rule net_len_max -let ALLNETS netlist() -let LNET (ALLNETS.a."len_max" != "") -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (netlen(LNET) > coord(LNET.a."len_max")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is too long: ", DRCTEXT, LNET.name, DRCMEASURE, netlen(LNET), DRCEXPECT, LNET.a."len_max") -rule net_len_match_net -let ALLNETS netlist() -let LNET ((ALLNETS.a."len_match_net" != "") && (ALLNETS.a."len_match_tol" != "")) -assert (isvoid(netlen(LNET))) thus violation(DRCGRP1, LNET, DRCTEXT, "network can not be verified for length (not a 2-terminal net): ", DRCTEXT, LNET.name) -assert (abs(netlen(LNET) - netlen(LNET.a."len_match_net")) > coord(LNET.a."len_match_tol")) thus violation(DRCGRP1, LNET, DRCTEXT, "network is length match out of range: ", DRCTEXT, LNET.name, DRCTEXT, " vs. ", DRCTEXT, LNET.a."len_match_net", DRCMEASURE, abs(netlen(LNET) - netlen(LNET.a."len_match_net")), DRCEXPECT, LNET.a."len_match_tol") -} - } - } - } - } - } - } - ha:pixmaps { - } - ha:netlists { - - li:input { - ha:D2- { - li:conn { J1-3; J2-3; } - } - ha:CK+ { - li:conn { J1-10; J2-10; } - } - ha:CK- { - li:conn { J1-12; J2-12; } - } - ha:SDA { - li:conn { J1-16; R2-1; U1-3; } - } - ha:SCL { - li:conn { J1-15; R3-1; U1-1; } - } - ha:GND { - li:conn { C1-1; C2-1; J1-2; J1-5; J1-8; J1-11; J1-17; J2-2; J2-5; J2-8; J2-11; J2-17; R4-1; R6-1; R6-2; U1-2; U1-5; } - } - ha:5V { - li:conn { C1-2; C2-2; J1-18; J2-18; R1-2; R2-2; R3-2; R4-2; R5-1; R5-2; U1-4; } - } - ha:unnamed_net3 { - li:conn { J1-19; R1-1; } - } - ha:D0+ { - li:conn { J1-7; J2-7; } - } - ha:D0- { - li:conn { J1-9; J2-9; } - } - ha:D1+ { - li:conn { J1-4; J2-4; } - } - ha:D1- { - li:conn { J1-6; J2-6; } - } - ha:D2+ { - li:conn { J1-1; J2-1; } - } - } - li:netlist_patch { - ha:change_attrib { net=CK+; key=len_match_net; val=HDMI; } - ha:change_attrib { net=CK-; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D0+; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D0-; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D1+; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D1-; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D2+; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D2-; key=len_match_net; val=HDMI; } - ha:change_attrib { net=D2-; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=D2+; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=D1-; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=D1+; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=D0-; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=D0+; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=CK-; key=len_match_tol; val=0.05mm; } - ha:change_attrib { net=CK+; key=len_match_tol; val=0.05mm; } - } - } - ha:attributes { - thickness=1.6mm - } - li:styles { - } -}