# BEE2 board specification # Support macros and constants # Last Changes: # Pierre-Yves Droz 5/20/2004 1:48PM # Best viewed with tab_length=6 #### #### # # #### ##### #### # # # # ## # # # # # # # # # # #### # #### # # # # # # # # # # # # # # ## # # # # # #### #### # # #### # #### # Constants !! set horiz_lnk_size 138 !! set vert_lnk_size 64 !! set bus_data_lnk_size 36 !! set bus_ctrl_lnk_size 7 !! set nb_gpleds 6 !! set nb_gpleds_ctrl 8 !! set nb_gpios 20 !! set fpgas [list ctrlfpga fpga1 fpga2 fpga3 fpga4] !! set usr_fpgas [list fpga1 fpga2 fpga3 fpga4] !! array set put_via "" !! set put_via(ctrlfpga_rx_0) 1 !! set put_via(ctrlfpga_tx_0) 2 !! set put_via(ctrlfpga_rx_1) 1 !! set put_via(ctrlfpga_tx_1) 2 !! set put_via(fpga1_rx_0) 1 !! set put_via(fpga1_tx_0) 2 !! set put_via(fpga1_rx_1) 1 !! set put_via(fpga1_tx_1) 2 !! set put_via(fpga1_rx_2) 1 !! set put_via(fpga1_tx_2) 1 !! set put_via(fpga1_rx_3) 1 !! set put_via(fpga1_tx_3) 1 !! set put_via(fpga2_rx_0) 1 !! set put_via(fpga2_tx_0) 1 !! set put_via(fpga2_rx_1) 1 !! set put_via(fpga2_tx_1) 1 !! set put_via(fpga2_rx_2) 0 !! set put_via(fpga2_tx_2) 1 !! set put_via(fpga2_rx_3) 0 !! set put_via(fpga2_tx_3) 1 !! set put_via(fpga3_rx_0) 1 !! set put_via(fpga3_tx_0) 2 !! set put_via(fpga3_rx_1) 1 !! set put_via(fpga3_tx_1) 2 !! set put_via(fpga3_rx_2) 1 !! set put_via(fpga3_tx_2) 1 !! set put_via(fpga3_rx_3) 1 !! set put_via(fpga3_tx_3) 1 !! set put_via(fpga4_rx_0) 1 !! set put_via(fpga4_tx_0) 1 !! set put_via(fpga4_rx_1) 1 !! set put_via(fpga4_tx_1) 1 !! set put_via(fpga4_rx_2) 0 !! set put_via(fpga4_tx_2) 1 !! set put_via(fpga4_rx_3) 0 !! set put_via(fpga4_tx_3) 1 # # ## #### ##### #### #### ## ## # # # # # # # # # # ## # # # # # # # # #### # # ###### # ##### # # # # # # # # # # # # # # # # # # # #### # # #### #### # Macros # Resistors !! proc res_type {value {tolerance 5%} {for_inline_script 0}} { !! return [res $value $tolerance $for_inline_script 1] !! } !! proc res {value {tolerance 5%} {for_inline_script 0} {for_type 0}} { !! global files res_nbs cap_nbs hdr_nbs ind_nbs sw_nbs !! if {[catch {set tmp $files}]} { !! set files "" !! set res_nbs "" !! set cap_nbs "" !! set hdr_nbs "" !! set ind_nbs "" !! set sw_nbs "" !! } !! upvar [expr $for_inline_script+$for_type+1] file file_local !! set index [lsearch $files $file_local] !! if {$index == -1} { !! lappend files $file_local !! lappend res_nbs 1 !! lappend cap_nbs 0 !! lappend hdr_nbs 0 !! lappend ind_nbs 0 !! lappend sw_nbs 0 !! } else { !! lset res_nbs $index [expr [lindex $res_nbs $index] + 1] !! } !! !! set value_sav $value !! if {[string is digit -failindex exp_pos $value]} { !! puts stderr "Non-valid resistor value: ${value}" !! return 1 !! } !! set exp [string index $value $exp_pos] !! set prefix [string range $value 0 [expr $exp_pos-1]] !! set suffix [string range $value [expr $exp_pos+1] end] !! if {$prefix == ""} { !! set prefix 0 !! } !! if {![string is integer $prefix] || $prefix < 0} { !! puts stderr "Non-valid resistor value: ${value}" !! return 1 !! } !! if {$suffix == ""} { !! set suffix 0 !! } !! if {![string is integer $suffix] || $suffix < 0} { !! puts stderr "Non-valid resistor value: ${value}" !! return 1 !! } !! set exp_mult -1 !! if {$exp == "R"} { !! set exp_mult 1 !! } !! if {$exp == "K"} { !! set exp_mult 1000 !! } !! if {$exp == "M"} { !! set exp_mult 1000000 !! } !! if {$exp_mult == -1} { !! puts stderr "Non-valid resistor value: ${value}" !! return 1 !! } !! set value [expr ${prefix}.${suffix} * $exp_mult] !! set value [expr int($value)]R[string index [expr 10 * fmod($value,1)] 0] !! if {$tolerance == "1%"} { !! set package 0603 !! switch $value { !! 200000R0 { !! set part_nb ERJ-3EKF2003V !! set order_nb P200KHCT-ND !! } !! 100000R0 { !! set part_nb ERJ-3EKF1003V !! set order_nb P100KHCT-ND !! } !! 22100R0 { !! set part_nb ERJ-3EKF2212V !! set order_nb P22.1KHCT-ND !! } !! 6810R0 { !! set part_nb ERJ-3EKF6811V !! set order_nb P6.81KHCT-ND !! } !! 5110R0 { !! set part_nb ERJ-3EKF5111V !! set order_nb P5.11KHCT-ND !! } !! 2490R0 { !! set part_nb ERJ-3EKF2491V !! set order_nb P2.49KHCT-ND !! } !! 2210R0 { !! set part_nb ERJ-3EKF2211V !! set order_nb P2.21KHCT-ND !! } !! 1000R0 { !! set part_nb ERJ-3EKF1001V !! set order_nb P1.00KHCT-ND !! } !! 511R0 { !! set part_nb ERJ-3EKF5110V !! set order_nb P511HCT-ND !! } !! 487R0 { !! set part_nb ERJ-3EKF4870V !! set order_nb P487HCT-ND !! } !! 475R0 { !! set part_nb ERJ-3EKF4750V !! set order_nb P475HCT-ND !! } !! 332R0 { !! set part_nb ERJ-3EKF3320V !! set order_nb P332HCT-ND !! } !! 249R0 { !! set part_nb ERJ-3EKF2490V !! set order_nb P249HCT-ND !! } !! 130R0 { !! set part_nb ERJ-3EKF1300V !! set order_nb P130HCT-ND !! } !! 100R0 { !! set part_nb ERJ-3EKF1000V !! set order_nb P100HCT-ND !! } !! 82R5 { !! set part_nb ERJ-3EKF82R5V !! set order_nb P82.5HCT-ND !! } !! 61R9 { !! set part_nb ERJ-3EKF61R9V !! set order_nb P61.9HCT-ND !! } !! 49R9 { !! set part_nb ERJ-3EKF49R9V !! set order_nb P49.9HCT-ND !! } !! 47R5 { !! set part_nb ERJ-3EKF47R5V !! set order_nb P47.5HCT-ND !! } !! 35R7 { !! set part_nb ERJ-3EKF35R7V !! set order_nb P35.7HCT-ND !! } !! 25R5 { !! set part_nb ERJ-3EKF25R5V !! set order_nb P25.5HCT-ND !! } !! 22R6 { !! set part_nb ERJ-3EKF22R6V !! set order_nb P22.6HCT-ND !! } !! 22R1 { !! set part_nb ERJ-3EKF22R1V !! set order_nb P22.1HCT-ND !! } !! 20R0 { !! set part_nb ERJ-3EKF20R0V !! set order_nb 0.0HCT-ND !! } !! default { !! puts stderr "Resistor value not implemented yet: ${value}/${tolerance}" !! return 1 !! end !! } !! } !! set www "http://www.panasonic.com/industrial/components/pdf/AOA0000CE2.pdf" !! } !! if {$tolerance == "5%"} { !! set package 0603 !! switch $value { !! 1000000R0 { !! set part_nb ERJ-8GEYJ105V !! set order_nb P1.0MECT-ND !! set package 1206 !! } !! 15000R0 { !! set part_nb ERJ-3GEYJ153V !! set order_nb P15KGCT-ND !! } # start - added in rev 1 !! 8200R0 { !! set part_nb ERJ-3GEYJ822V !! set order_nb P8.2KGCT-ND !! } # end - added in rev 1 !! 4700R0 { !! set part_nb ERJ-3GEYJ472V !! set order_nb P4.7KGCT-ND !! } !! 2200R0 { !! set part_nb ERJ-3GEYJ222V !! set order_nb P2.2KGCT-ND !! } !! 1500R0 { !! set part_nb ERJ-3GEYJ152V !! set order_nb P1.5KGCT-ND !! } !! 1000R0 { !! set part_nb ERJ-3GEYJ102V !! set order_nb P1.0KGCT-ND !! } !! 330R0 { !! set part_nb ERJ-3GEYJ331V !! set order_nb P330GCT-ND !! } !! 200R0 { !! set part_nb ERJ-3GEYJ201V !! set order_nb P200GCT-ND !! } !! 150R0 { !! set part_nb ERJ-3GEYJ151V !! set order_nb P150GCT-ND !! } !! 36R0 { !! set part_nb ERJ-3GEYJ360V !! set order_nb P36GCT-ND !! } !! 27R0 { !! set part_nb ERJ-3GEYJ270V !! set order_nb P27GCT-ND !! } !! 0R0 { !! set part_nb ERJ-8GEY0R00V !! set order_nb P0.0ECT-ND !! set package 1206 !! } !! default { !! puts stderr "Resistor value not implemented yet: ${value}/${tolerance}" !! return 1 !! end !! } !! } !! set www "http://www.panasonic.com/industrial/components/pdf/AOA0000CE1.pdf" !! } !! !! if {$part_nb == ""} { !! puts stderr "Non-valid resistor tolerance: ${tolerance}" !! return 1 !! } !! if {$for_type} { !! return RES_${package} !! } else { !! if {$for_inline_script} { !! return [list value "$value_sav" tolerance "$tolerance" package "$package" part_number "$part_nb" manufacturer Panasonic www "$www" description "surface-mount resistor" distributor Digikey order_number "$order_nb" availability available power_rating 1/10W] !! } else { !! return "value $value_sav tolerance $tolerance package $package part_number $part_nb manufacturer Panasonic www $www description surface-mount resistor distributor Digikey order_number $order_nb availability available power_rating 1/10W" !! } !! } !! } # Headers !! proc hdr_type {silkscreen type {for_inline_script 0}} { !! return [hdr $silkscreen $type $for_inline_script 1] !! } !! proc hdr {silkscreen type {for_inline_script 0} {for_type 0}} { !! global files res_nbs cap_nbs hdr_nbs ind_nbs sw_nbs !! if {[catch {set tmp $files}]} { !! set files "" !! set res_nbs "" !! set cap_nbs "" !! set hdr_nbs "" !! set ind_nbs "" !! set sw_nbs "" !! } !! upvar [expr $for_inline_script+$for_type+1] file file_local !! set index [lsearch $files $file_local] !! if {$index == -1} { !! lappend files $file_local !! lappend res_nbs 0 !! lappend cap_nbs 0 !! lappend hdr_nbs 1 !! lappend ind_nbs 0 !! lappend sw_nbs 0 !! } else { !! lset hdr_nbs $index [expr [lindex $hdr_nbs $index] + 1] !! } !! !! if {$for_type} { !! return HDR_${type} !! } else { !! switch $type { !! 1x2 { !! return "package 2SIP part_number N/A manufacturer N/A www N/A description 2-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x3 { !! return "package 3SIP part_number N/A manufacturer N/A www N/A description 3-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x4 { !! return "package 4SIP part_number N/A manufacturer N/A www N/A description 4-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x5 { !! return "package 5SIP part_number N/A manufacturer N/A www N/A description 5-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x6 { !! return "package 6SIP part_number N/A manufacturer N/A www N/A description 6-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x9 { !! return "package 9SIP part_number N/A manufacturer N/A www N/A description 9-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 1x11 { !! return "package 11SIP part_number N/A manufacturer N/A www N/A description 11-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 2x3 { !! return "package 6DSIP part_number N/A manufacturer N/A www N/A description 2x3-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 2x5 { !! return "package 10DSIP part_number N/A manufacturer N/A www N/A description 2x5-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 2x8 { !! return "package 16DSIP part_number N/A manufacturer N/A www N/A description 2x8-pins shrouded header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 2x9 { !! return "package 18DSIP part_number N/A manufacturer N/A www N/A description 2x9-pins breakaway header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! 2x11 { !! return "package 22DSIP part_number N/A manufacturer N/A www N/A description 2x11-pins shrouded header distributor BWRC stock order_number N/A availability N/A silkscreen ${silkscreen}" !! } !! default { !! puts stderr "Header type not implemented yet: ${type}" !! return 1 !! end !! } !! } !! } !! } # Switches !! proc sw_type {silkscreen {for_inline_script 0}} { !! return [sw $silkscreen $for_inline_script 1] !! } !! proc sw {silkscreen {for_inline_script 0} {for_type 0}} { !! global files res_nbs cap_nbs hdr_nbs ind_nbs sw_nbs !! if {[catch {set tmp $files}]} { !! set files "" !! set res_nbs "" !! set cap_nbs "" !! set hdr_nbs "" !! set ind_nbs "" !! set sw_nbs "" !! } !! upvar [expr $for_inline_script+$for_type+1] file file_local !! set index [lsearch $files $file_local] !! if {$index == -1} { !! lappend files $file_local !! lappend res_nbs 0 !! lappend cap_nbs 0 !! lappend hdr_nbs 0 !! lappend ind_nbs 0 !! lappend sw_nbs 1 !! } else { !! lset sw_nbs $index [expr [lindex $sw_nbs $index] + 1] !! } !! !! if {$for_type} { !! return SW !! } else { !! return "package custom part_number KSR231J manufacturer ITT Industries www http://www.ittcannon.com/media/pdf/catalogs/ksr.pdf description Push button distributor Digikey order_number 401-1095-2-ND availability available silkscreen ${silkscreen}" !! } !! } # Caps !! proc cap_type {value technology {for_inline_script 0}} { !! return [cap $value $technology $for_inline_script 1] !! } !! proc cap {value technology {for_inline_script 0} {for_type 0}} { !! global files res_nbs cap_nbs hdr_nbs ind_nbs sw_nbs !! if {[catch {set tmp $files}]} { !! set files "" !! set res_nbs "" !! set cap_nbs "" !! set hdr_nbs "" !! set ind_nbs "" !! set sw_nbs "" !! } !! upvar [expr $for_inline_script+$for_type+1] file file_local !! set index [lsearch $files $file_local] !! if {$index == -1} { !! lappend files $file_local !! lappend res_nbs 0 !! lappend cap_nbs 1 !! lappend hdr_nbs 0 !! lappend ind_nbs 0 !! lappend sw_nbs 0 !! } else { !! lset cap_nbs $index [expr [lindex $cap_nbs $index] + 1] !! } !! !! set value_sav $value !! if {[string is digit -failindex exp_pos $value]} { !! puts stderr "Non-valid capacitor value: ${value}" !! return 1 !! } !! set exp [string range $value $exp_pos [expr $exp_pos+1]] !! set prefix [string range $value 0 [expr $exp_pos-1]] !! set suffix [string range $value [expr $exp_pos+2] end] !! if {$prefix == ""} { !! set prefix 0 !! } !! if {![string is integer $prefix] || $prefix < 0} { !! puts stderr "Non-valid capacitor value: ${value}" !! return 1 !! } !! if {$suffix == ""} { !! set suffix 0 !! } !! if {![string is integer $suffix] || $suffix < 0} { !! puts stderr "Non-valid capacitor value: ${value}" !! return 1 !! } !! set exp_mult -1 !! if {$exp == "F"} { !! set exp_mult 1 !! } !! if {$exp == "mF"} { !! set exp_mult 0.001 !! } !! if {$exp == "uF"} { !! set exp_mult 0.000001 !! } !! if {$exp == "nF"} { !! set exp_mult 0.000000001 !! } !! if {$exp == "pF"} { !! set exp_mult 0.000000000001 !! } !! if {$exp_mult == -1} { !! puts stderr "Non-valid capacitor value: ${value}" !! return 1 !! } !! set value [expr ${prefix}.${suffix} * $exp_mult] !! set value [expr $value*1000000000000]pF !! switch $technology { !! electrolytic { !! switch $value { !! 2200000000.0pF { !! set part_nb EEV-FK1E222M !! set order_nb PCE3463CT-ND !! set package RADIAL_J16 !! } !! 470000000.0pF { !! set part_nb EEV-FK1E471P !! set order_nb PCE3411CT-ND !! set package RADIAL_G !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set tolerance +-20% !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/EEV-FK%20Series%20Electro.pdf !! set manufacturer Panasonic !! set max_voltage 25V !! } !! ceramic_high_value { !! switch $value { !! 10000000.0pF { !! set part_nb C2012X5R0J106M !! set order_nb 445-1363-1-ND !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set tolerance +-20% !! set www http://rocky.digikey.com/WebLib/TDK%20Corp/Web%20Data/C%20Series%20For%20General%20Use.pdf !! set manufacturer TDK !! set max_voltage 6.3V !! set package 0805 !! } !! ceramic { !! switch $value { !! 470000.0pF { !! set part_nb ECJ-1VB1A474K !! set order_nb PCC2275CT-ND !! set tolerance +-10% !! set max_voltage 10V !! set package 0603 !! } !! 220000.0pF { !! set part_nb ECJ-0EB0J224K !! set order_nb PCC2269CT-ND !! set tolerance +-10% !! set max_voltage 6.3V !! set package 0402 !! } !! 100000.0pF { !! set part_nb ECJ-0EB1A104K !! set order_nb PCC2146CT-ND !! set tolerance +-10% !! set max_voltage 10V !! set package 0402 !! } !! 47000.0pF { !! set part_nb ECJ-0EB1A473K !! set order_nb PCC2142CT-ND !! set tolerance +-10% !! set max_voltage 10V !! set package 0402 !! } !! 10000.0pF { !! set part_nb ECJ-0EB1C103K !! set order_nb PCC103BQCT-ND !! set tolerance +-10% !! set max_voltage 16V !! set package 0402 !! } !! 2200.0pF { !! set part_nb ECJ-1VB1H222K !! set order_nb PCC1776CT-ND !! set tolerance +-10% !! set max_voltage 50V !! set package 0603 !! } !! 1000.0pF { !! set part_nb ECJ-1VB1H102K !! set order_nb PCC1772CT-ND !! set tolerance +-10% !! set max_voltage 50V !! set package 0603 !! } !! 270.0pF { !! set part_nb ECJ-1VC1H271J !! set order_nb PCC271ACVCT-ND !! set tolerance +-5% !! set max_voltage 50V !! set package 0603 !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/ECJ%20Series.pdf !! set manufacturer Panasonic !! } !! ceramic_X7R { !! switch $value { !! 220000.0pF { !! set part_nb C1608X7R1C224K !! set order_nb 445-1318-1-ND !! set tolerance +-10% !! set max_voltage 16V !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set www http://rocky.digikey.com/WebLib/TDK%20Corp/Web%20Data/C%20Series%20For%20General%20Use.pdf !! set manufacturer TDK !! set package 0603 !! } !! ceramic_low_value { !! switch $value { !! 24.0pF { !! set part_nb GRM1885C2A240JA01D !! set order_nb 490-1336-1-ND !! set max_voltage 100V !! } !! 22.0pF { !! set part_nb GRM1885C1H220JA01D !! set order_nb 490-1411-1-ND !! set max_voltage 50V !! } !! 18.0pF { !! set part_nb GRM1885C1H180JA01D !! set order_nb 490-1409-1-ND !! set max_voltage 50V !! } !! 5.0pF { !! set part_nb GRM1885C1H5R0CZ01D !! set order_nb 490-1390-1-ND !! set max_voltage 50V !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set tolerance +-5% !! set www http://www.murata.com/catalog/c02/es0011.pdf !! set manufacturer Murata !! set package 0603 !! } !! tantalum { !! switch $value { !! 220000000.0pF { !! set part_nb ECS-T0JD227R !! set order_nb P11308CT-ND !! set package "7343" !! set max_voltage 6.3V !! } !! 100000000.0pF { !! set part_nb ECS-T1AD107R !! set order_nb P11313CT-ND !! set package "7343" !! set max_voltage 10V !! } !! 47000000.0pF { !! set part_nb ECS-T1AC476R !! set order_nb P11312CT-ND !! set package "6032" !! set max_voltage 10V !! } !! 33000000.0pF { !! set part_nb ECS-T1AX336R !! set order_nb P11311CT-ND !! set package "3528" !! set max_voltage 10V !! } !! 10000000.0pF { !! set part_nb ECS-T1AY106R !! set order_nb P11309CT-ND !! set package "3216" !! set max_voltage 10V !! } !! 4700000.0pF { !! set part_nb ECS-T1AY475R !! set order_nb PCS2475CT-ND !! set package "3216" !! set max_voltage 10V !! } !! 1000000.0pF { !! set part_nb ECS-T1VY105R !! set order_nb P11332CT-ND !! set package "3216" !! set max_voltage 35V !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! set tolerance +-20% !! set www http://www.maco.panasonic.co.jp/www-data/pdf/ABF0000/ABF0000CE1.pdf !! set manufacturer Panasonic !! } !! film { !! switch $value { !! 100000.0pF { !! set part_nb ECH-U1C104JB5 !! set order_nb PCF1088CT-ND !! set tolerance +-5% !! set package "1210" !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/ECHU(B)%20Series.pdf !! set manufacturer Panasonic !! set max_voltage 16V !! } !! 3300.0pF { !! set part_nb ECH-U1C332JB5 !! set order_nb PCF1070CT-ND !! set tolerance +-5% !! set package "0805" !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/ECHU(B)%20Series.pdf !! set manufacturer Panasonic !! set max_voltage 16V !! } !! 1000.0pF { !! set part_nb ECH-U1C102JX5 !! set order_nb PCF1471CT-ND !! set tolerance +-5% !! set package "0603" !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/ECHU(X).pdf !! set manufacturer Panasonic !! set max_voltage 16V !! } !! 33.0pF { !! set part_nb MC12FD330J !! set order_nb 338-1006-ND !! set tolerance +-5% !! set package "1210" !! set www http://rocky.digikey.com/WebLib/Cornell%20Dublier%20Electronics/Web%20Data/Type%20MC%20Surface-Mount%20Mica%20Chip%20Capacitors.pdf !! set manufacturer "Cornell Dubilier" !! set max_voltage 500V !! } !! default { !! puts stderr "Capacitor value not implemented yet: ${technology}/${value}" !! return 1 !! end !! } !! } !! } !! default { !! puts stderr "Capacitor technology not implemented yet: ${technology}" !! return 1 !! end !! } !! } !! set description "${technology} capacitor" !! if {$for_type} { !! return CAP_${package} !! } else { !! if {$for_inline_script} { !! return [list value "$value_sav" tolerance "$tolerance" max_voltage "$max_voltage" package "$package" part_number "$part_nb" manufacturer "$manufacturer" www "$www" description "$description" distributor Digikey order_number "$order_nb" availability available] !! } else { !! return "value $value_sav tolerance $tolerance max_voltage $max_voltage package $package part_number $part_nb manufacturer $manufacturer www $www description $description distributor Digikey order_number $order_nb availability available" !! } !! } !! } # Inductors !! proc ind_type {value type {for_inline_script 0}} { !! return [ind $value $type $for_inline_script 1] !! } !! proc ind {value type {for_inline_script 0} {for_type 0}} { !! global files res_nbs cap_nbs hdr_nbs ind_nbs sw_nbs !! if {[catch {set tmp $files}]} { !! set files "" !! set res_nbs "" !! set cap_nbs "" !! set hdr_nbs "" !! set ind_nbs "" !! set sw_nbs "" !! } !! upvar [expr $for_inline_script+$for_type+1] file file_local !! set index [lsearch $files $file_local] !! if {$index == -1} { !! lappend files $file_local !! lappend res_nbs 0 !! lappend cap_nbs 0 !! lappend hdr_nbs 0 !! lappend ind_nbs 1 !! lappend sw_nbs 0 !! } else { !! lset ind_nbs $index [expr [lindex $ind_nbs $index] + 1] !! } !! !! switch $value/$type { !! 3uH5/7.5A { !! set part_nb 308-1073-1-ND !! set order_nb CDRH127-3R5NC !! set tolerance +40%/-20% !! set www http://rocky.digikey.com/WebLib/Sumida/Web%20Data/CDRH127%20S-074-516.pdf !! set manufacturer Sumida !! set package RADIAL_CUSTOM !! set distributor Digikey !! } !! 15uH/350mA { !! set part_nb ELJ-PB150KF !! set order_nb PCD1524CT-ND !! set tolerance +-10% !! set www http://rocky.digikey.com/WebLib/Panasonic/Web%20data/ELJ-PB%20Series.pdf !! set manufacturer Panasonic !! set package 1812 !! set distributor Digikey !! } !! 1000Ohm/FB { !! set part_nb BLM18AG102SN1D !! set order_nb N/A !! set tolerance +-25% !! set www http://search.murata.co.jp/Ceramy/owa/CATALOG.showcatalog?sHinnmTmp=BLM11A102S&sLang=2&sNhnm=BLM18AG102SN1D&sHnTyp=NEW !! set manufacturer Murata !! set package 0603 !! set distributor Arrow !! } !! 600Ohm/FB { !! set part_nb LM15AG601SN1D !! set order_nb 490-1006-1-ND !! set tolerance +-25% !! set www http://www.murata.com/catalog/c31/es0100.pdf !! set manufacturer Murata !! set package 0402 !! set distributor Digikey !! } !! 125Ohm/FB { !! set part_nb MI1812K121R-00 !! set order_nb 240-1040-1-ND !! set tolerance +-25% !! set www http://dkc3.digikey.com/PDF/T041/0699.pdf !! set manufacturer Steward !! set package 1812 !! set distributor Digikey !! } !! 30Ohm/FB { !! set part_nb MPZ2012S300A !! set order_nb 445-1566-1-ND !! set tolerance N/A !! set www http://rocky.digikey.com/WebLib/TDK%20Corp/Web%20Data/MPZ1608.pdf !! set manufacturer TDK !! set package 0805 !! set distributor Digikey !! } !! default { !! puts stderr "Inductor value or type not implemented yet: ${value}/${type}" !! return 1 !! end !! } !! } !! set description "${value}/${type} inductor" !! if {$for_type} { !! return IND_${package} !! } else { !! return "value $value tolerance $tolerance package $package part_number $part_nb manufacturer $manufacturer www $www description $description distributor $distributor order_number $order_nb availability available" !! } !! } # Line terminations !! proc add_lvpecl_25_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net}_p VCC2_5 lvpecl_25_term_${net}_p_vcc_$id [res_type 249R 1% 1] $bitwidth 1 [res 249R 1% 1] !! add_term_net $db $version ${net}_m VCC2_5 lvpecl_25_term_${net}_p_gnd_$id [res_type 249R 1% 1] $bitwidth 1 [res 249R 1% 1] !! add_term_net $db $version ${net}_p GND lvpecl_25_term_${net}_m_vcc_$id [res_type 61R9 1% 1] $bitwidth 1 [res 61R9 1% 1] !! add_term_net $db $version ${net}_m GND lvpecl_25_term_${net}_m_gnd_$id [res_type 61R9 1% 1] $bitwidth 1 [res 61R9 1% 1] !! } !! proc add_lvpecl_33_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net}_p VCC2_5 lvpecl_25_term_${net}_p_vcc_$id [res_type 130R 1% 1] $bitwidth 1 [res 130R 1% 1] !! add_term_net $db $version ${net}_m VCC2_5 lvpecl_25_term_${net}_p_gnd_$id [res_type 130R 1% 1] $bitwidth 1 [res 130R 1% 1] !! add_term_net $db $version ${net}_p GND lvpecl_25_term_${net}_m_vcc_$id [res_type 82R5 1% 1] $bitwidth 1 [res 82R5 1% 1] !! add_term_net $db $version ${net}_m GND lvpecl_25_term_${net}_m_gnd_$id [res_type 82R5 1% 1] $bitwidth 1 [res 82R5 1% 1] !! } !! proc add_lvds_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net}_p ${net}_m lvds_term_${net}_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_lvcmos_18_up_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC1_8 lvcmos_18_up_term_${net}_vcc_$id [res_type 49R9 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_lvcmos_18_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC1_8 lvcmos_18_term_${net}_vcc_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! add_term_net $db $version ${net} GND lvcmos_18_term_${net}_gnd_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_lvcmos_25_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC2_5 lvcmos_25_term_${net}_vcc_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! add_term_net $db $version ${net} GND lvcmos_25_term_${net}_gnd_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_lvcmos_33_term {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC3_3 lvcmos_33_term_${net}_vcc_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! add_term_net $db $version ${net} GND lvcmos_33_term_${net}_gnd_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_lvcmos_term_gnd {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} GND lvcmos_term_${net}_gnd_$id [res_type 49R9 1% 1] $bitwidth 1 [res 49R9 1% 1] !! } # Pullups / pulldowns !! proc add_pullup_5 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC5 pullup_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_pullup_33 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC3_3 pullup_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_pullup_25 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC2_5 pullup_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_pullup_18 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC1_8 pullup_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_pullup_15 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC1_5 pullup_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_pulldown {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} GND pulldown_${net}_$id [res_type 4K7 5% 1] $bitwidth 1 [res 4K7 5% 1] !! } !! proc add_strong_pullup_5 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC5 pullup_${net}_$id [res_type 1K 1% 1] $bitwidth 1 [res 1K 1% 1] !! } !! proc add_strong_pullup_33 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC3_3 pullup_${net}_$id [res_type 1K 1% 1] $bitwidth 1 [res 1K 1% 1] !! } !! proc add_strong_pullup_25 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC2_5 pullup_${net}_$id [res_type 1K 1% 1] $bitwidth 1 [res 1K 1% 1] !! } !! proc add_strong_pullup_15 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC1_5 pullup_${net}_$id [res_type 1K 1% 1] $bitwidth 1 [res 1K 1% 1] !! } !! proc add_very_strong_pullup_33 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC3_3 pullup_${net}_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_very_strong_pullup_25 {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} VCC2_5 pullup_${net}_$id [res_type 100R 1% 1] $bitwidth 1 [res 100R 1% 1] !! } !! proc add_strong_pulldown {net {bitwidth 1} {id 0}} { !! global db version !! add_term_net $db $version ${net} GND pulldown_${net}_$id [res_type 1K 1% 1] $bitwidth 1 [res 1K 1% 1] !! } # Bypass caps !! proc add_bypass_bulk_5 {name {number 1} {value 10uF}} { !! global db version !! add_term_net $db $version VCC5 GND bypass_cap_5_${name}_bulk_${value} [cap_type ${value} tantalum 1] $number 1 [cap ${value} tantalum 1] !! } !! proc add_bypass_hspeed_5 {name {number 1} {value 100nF}} { !! global db version !! add_term_net $db $version VCC5 GND bypass_cap_5_${name}_hspeed_${value} [cap_type ${value} ceramic 1] $number 1 [cap ${value} ceramic 1] !! } !! proc add_bypass_bulk_33 {name {number 1} {value 10uF}} { !! global db version !! add_term_net $db $version VCC3_3 GND bypass_cap_33_${name}_bulk_${value} [cap_type ${value} tantalum 1] $number 1 [cap ${value} tantalum 1] !! } !! proc add_bypass_hspeed_33 {name {number 1} {value 100nF}} { !! global db version !! add_term_net $db $version VCC3_3 GND bypass_cap_33_${name}_hspeed_${value} [cap_type ${value} ceramic 1] $number 1 [cap ${value} ceramic 1] !! } !! proc add_bypass_bulk_25 {name {number 1} {value 10uF}} { !! global db version !! add_term_net $db $version VCC2_5 GND bypass_cap_25_${name}_bulk_${value} [cap_type ${value} tantalum 1] $number 1 [cap ${value} tantalum 1] !! } !! proc add_bypass_hspeed_25 {name {number 1} {value 100nF}} { !! global db version !! add_term_net $db $version VCC2_5 GND bypass_cap_25_${name}_hspeed_${value} [cap_type ${value} ceramic 1] $number 1 [cap ${value} ceramic 1] !! } !! proc add_bypass_bulk_18 {name {number 1} {value 10uF}} { !! global db version !! add_term_net $db $version VCC1_8 GND bypass_cap_18_${name}_bulk_${value} [cap_type ${value} tantalum 1] $number 1 [cap ${value} tantalum 1] !! } !! proc add_bypass_hspeed_18 {name {number 1} {value 100nF}} { !! global db version !! add_term_net $db $version VCC1_8 GND bypass_cap_18_${name}_hspeed_${value} [cap_type ${value} ceramic 1] $number 1 [cap ${value} ceramic 1] !! } !! proc add_bypass_bulk_15 {name {number 1} {value 10uF}} { !! global db version !! add_term_net $db $version VCC1_5 GND bypass_cap_15_${name}_bulk_${value} [cap_type ${value} tantalum 1] $number 1 [cap ${value} tantalum 1] !! } !! proc add_bypass_hspeed_15 {name {number 1} {value 100nF}} { !! global db version !! add_term_net $db $version VCC1_5 GND bypass_cap_15_${name}_hspeed_${value} [cap_type ${value} ceramic 1] $number 1 [cap ${value} ceramic 1] !! }