From a0eee238ad656de8fcf2b5634ea1c3c735bbf427 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Fri, 3 Jun 2022 23:55:19 -0700 Subject: More complex library functionality for ICs with subcomponents. --- test.rb | 58 ++++++++++++---------------------------------------------- 1 file changed, 12 insertions(+), 46 deletions(-) (limited to 'test.rb') diff --git a/test.rb b/test.rb index b524539..d6cfbe2 100755 --- a/test.rb +++ b/test.rb @@ -3,57 +3,23 @@ require "./lace" require "./library" -def led(color="red") - comp("D", "0805", "LED", "1.5V 10mA #{color}") - r(220) -end - -def inverter() - $inverters ||= [] - if $inverters.empty? - u = comp("U", "TSOP-14", "74HCT04", "hex inverter") - $vcc - u[14] - c("100n") - u[7] - $gnd - $inverters += [ - pair(u[1], u[2]), - pair(u[3], u[4]), - pair(u[5], u[6]), - pair(u[9], u[8]), - pair(u[11], u[10]), - pair(u[13], u[12]), - ] - end - $inverters.shift -end - -def btn(color="black") - sw = comp("SW", "BTN", "SPST button", color) - sw[1] - sw[4] - sw[2] - sw[3] - pair(sw[1], sw[3]) -end +nl = Lace::Netlist.new do + vcc = net("vcc") + gnd = net("gnd") -def probe(attenuation=20, impedance=50) - jack = comp("J", "SMB", "SMB jack", "#{attenuation}x #{impedance}Ω probe") - jack[2] - jack[3] - jack[4] - jack[5] - if attenuation == 1 - pair(jack[1], jack[2]) - else - pair(r((attenuation-1)*impedance) - jack[1], jack[2]) + stock_ic("inverter", "CD74HC04") do | ic | + vcc - ic[14] - c("100nF") - ic[7] - gnd end -end - -nl = Lace::Netlist.new do - $vcc = net("vcc") - $gnd = net("gnd") - $vcc - led - $gnd + vcc - led(220) - gnd - $vcc - btn - led("green") - $gnd - $vcc - btn("orange") - inverter() - led("white") - $gnd + vcc - btn - led(220, "green") - gnd + vcc - btn("orange") - ic("inverter") - led(220, "white") - gnd - x = $vcc - btn("white") - x - net("x") - led("amber") - $gnd - x - inverter() - net("x̅") - led("blue") - $gnd - x - probe - $gnd + x = vcc - btn("white") + x - net("x") - led(220, "amber") - gnd + x - ic("inverter") - net("xbar") - led(220, "blue") - gnd + x - probe - gnd end nl.kicad -- cgit v1.2.3