amclain has quit [Quit: Leaving]
m_w has quit [Quit: leaving]
<cr1901_modern> azonenberg: I can haz closeup pic of BGA decoupling (for my own reference)? https://twitter.com/azonenberg/status/861846977171947520
* lain fills pepper shaker with 0201 caps, sprinkles them onto board
<cr1901_modern> Heh http://processors.wiki.ti.com/index.php/General_hardware_design/BGA_PCB_design/BGA_decoupling#Methods_of_placement_for_bypass_capacitors "With the smaller pitches that are common on BGAs today, placing caps in between ball vias is usually impossible."
digshadow has quit [Quit: Leaving.]
<lain> 0402 fits nicely on 1mm pitch :D
<lain> (with via-in-pad)
<rqou> but via-in-pad is very $$$
<lain> eh
<lain> I've found it's not that much to add on if you're already doing a non-batch board
<lain> still, the same layout works without ViP if you just shift everything a bit
<azonenberg> cr1901_modern: yeah mine is 1mm and i am not using ViP (this is an oshpark board)
<azonenberg> when doing ViP on 1mm bga i just put the caps on the pads
<azonenberg> oops
<cr1901_modern> these are caps on pads?
<azonenberg> they're on the bottom of the board
<azonenberg> but connected to dogbone vias
<azonenberg> so basically the cap is in the same spot it'd be if i had vip
<azonenberg> but the via is offset a bit
<azonenberg> In some cases i had to move the cap a bit in order to route bottom-layer traces around it
<azonenberg> The gray outlines are front side bga pads
<azonenberg> then you can see some power/ground routing subdued in the background too
<azonenberg> this is incomplete, i have more caps to add
<cr1901_modern> I really just need to suck it up and do a BGA board. Ppl in this channel are willing to help me so I'm less likely to make mistakes. But I keep hesitating
<azonenberg> Do itttt
<lain> :D
<azonenberg> artix7 or spartan6 ftg256 package is quite friendly for 4 layers
<lain> PEER PRESSURE PEER PRESSURE
<azonenberg> I generally find myself unable to use 100% of the IOs but i can use a sizeable fraction
<azonenberg> Bank 35of this fpga, for example, is fully routed at this time
<rqou> i thought you started with an xc2c32a?
<azonenberg> and has 11 empty pins
<azonenberg> so ~80% loaded
<azonenberg> that's pretty typical utilization for a 16x16 bga on 4L oshpark rules
<azonenberg> i could probably squeeze more in if i wanted, there's at least one empty routing channel easily reachable
<azonenberg> a few more channels are blocked by a diff pair going in a weird direction
<azonenberg> etc
<azonenberg> rqou: my first bga was an xc2c32a
<azonenberg> it was a mistake
<cr1901_modern> I don't really care about using all the pins. The issue is mainly money/logistics. I can only afford one-offs from macrofab.
<azonenberg> i undersized the pads (oshpark really overetched at the time)
<azonenberg> some of the NC pads were completely etched away
<azonenberg> and it was a pain to hand place as a noob
<azonenberg> then i did a ftg256 and realized how easy bga was
<rqou> hmm interesting
<cr1901_modern> azonenberg: You said you could do ftg256 in a toaster oven
<rqou> is oshpark etch isotropic? do i have to oversize pads?
<azonenberg> Yes
<cr1901_modern> ?*
<azonenberg> rqou: It's a lot better now
<azonenberg> they switched fabs
<rqou> you should add a note to your blog posts :P
<azonenberg> the old fab had poor process control of trace width
<azonenberg> ~6 mil traces were more like 4 post etch iirc? have to measure
<azonenberg> cr1901_modern: i've done 0.35mm wlcsp in a toaster oven too ;p
<azonenberg> it just requires more effort to align before you put it in
<rqou> was it in isotropic etch profile or was it still somewhat anisotropic?
<azonenberg> it was a weird shape b/c of plating + etching
<azonenberg> so... a bit of both?
<lain> icosahedronal traces
<rqou> oh right, there are plating steps too
<azonenberg> I'll do a cross section of a board at some point and show you
<lain> hypercube traces.
<cr1901_modern> azonenberg: My issue is that by cr1901's Law of Inferior Duplication, I am often not able to duplicate the results of someone else's work even when I follow their instructions correctly.
<lain> vias are for scrubs I use higher-dimensional space to transit between layers
<rqou> so when a trace width is specified, is it normally the widest, narrowest, average, or "talk to your fab?"
<lain> rqou: per IPC it should be maximum
<lain> iirc
<lain> and then dimensional tolerance is "talk to your fab" unless they reference a specific IPC tolerance spec
<lain> (which they should)
* cr1901_modern almost makes an anime analogy, but decides not to
<rqou> wait but 1oz copper thickness is 1.4 mils
<rqou> so if the dimensions are "maximum" and you have an isotropic etch, you can have a trace that's actually super narrow at the top
<rqou> so a 4mil wide trace can actually be only 1.2mil at the top assuming a perfectly isotropic etch?
<lain> hmm I may have that wrong actually
<lain> can't find the relevant ipc document :/
<azonenberg> rqou: most etches are not isotropic
<azonenberg> they etch a thin foil then plate up
<rqou> ah ok
promach has quit [Remote host closed the connection]
<rqou> hmm, so what limits accuracy of the pcb copper layer?
<lain> thickness of base copper limits the minimum width due to etching
<lain> but not sure what limits the actual accuracy
<azonenberg> Process tolerance (over/underetch)
<azonenberg> Blur in the photoresist
<azonenberg> lots of things
<azonenberg> accuracy of the machine that makes the mask
<cr1901_modern> azonenberg: What toaster oven did you use to make BGA boards?
<lain> I've used the cheapest one available before, and just stopwatch + thermocouple for control lol
<lain> process control sucks but it does the job
<cr1901_modern> http://thanatos.virtual.antikernel.net/unlisted/starshipraider-x1-08.png Brain's broken today... what are the green squares in this image?
<rqou> bottom copper?
<rqou> i hate kicad's non-persistent layer colors
<rqou> (supposedly fixed in master)
<cr1901_modern> Some of them are labeled 1V0, others GND. I don't think they all go to the bottom?
<rqou> i like to be a traitor and have top copper be bright red and bottom copper be bright blue :P
<rqou> they should all be square pads on the bottom for capacitors
<cr1901_modern> Oh, the gray is a different layer
<rqou> huh interesting that azonenberg doesn't have anything in the silkscreen layer for the capacitors
<cr1901_modern> I still haven't actually successfully gotten a kicad design out the door since switching, tbh.
<rqou> yeah i barely have
<rqou> i got one
<cr1901_modern> Part of that is of course, fighting w/ kicad, but... I should prob update an old design I have from diptrace to kicad.
<rqou> my board has problems with the soldermask openings being too large
<rqou> apparently that's a hidden setting somewhere in kicad
<rqou> azonenberg: what's oshpark's soldermask-to-copper alignment like?
<cr1901_modern> rqou: If it's any consolation, exactly 0 designs I've sent out have come back mistake-free :D
<cr1901_modern> That's also one reason I don't like making boards, and my ability to rework them is limited to destroying traces and jumper wire
<cr1901_modern> s/and/as/
<azonenberg> cr1901_modern: the gray is multiple layers
<azonenberg> it's in high-contrast mode
<azonenberg> all of the green is bottom copper
<azonenberg> rqou: i intentionally use no silk on my high density footprints
<azonenberg> it buys me nothing
<azonenberg> and just gets in the way and looks ugly
<cr1901_modern> Why is there so little copper on the bottom?
<rqou> i really need to unf*ck my footprints at some point
<azonenberg> cr1901_modern: because the board is half finished? :p
<azonenberg> i only routed out the ram at the top
<azonenberg> and some of the caps
<rqou> i'm starting to realize that i really need to do power/ground/caps first
<cr1901_modern> Well I mean, you had to manually place that copper, right?
<azonenberg> the ethernet to the left, flash to the bottom, and io module header on the right are TODO
<rqou> otherwise it just ends up with a fail trying to squeeze in power/ground/caps between all the other signals
<azonenberg> cr1901_modern: i placed the caps and the traces going up
<azonenberg> rqou: yeah
<azonenberg> i normally do caps first, then signals and tweak the cap placement sometimes as i do the signals
<rqou> what grid do you use for placement?
<rqou> i in general need to probably work on my PCB skills
<whitequark> who needs a grid, use topological autorouting :]
<lain> I usually start with a larger grid like 1-5 mm for initial large component placement / grouping stuff
<lain> then narrow down the grid as I do detail work
<rqou> right, PCBs are this awkward mix of metric and customary
<cr1901_modern> The grey pads do NOT go to the bottom, right?
<lain> rqou: these days I'm 100% metric for pcbs, it took a while to get the hang of it though
<cr1901_modern> So why are the caps connecting to the bottom?
<azonenberg> lain: yeah same here
<azonenberg> cr1901_modern: you mean the vias? gray with yellow holes?
<cr1901_modern> azonenberg: no
<cr1901_modern> The BGA footprint*
<azonenberg> Those are on the top
<azonenberg> here, let me do one with all lalyers on
<azonenberg> The cap in the center here is decoupling H6 to G6
<rqou> where are the planes?
<lain> in the sky
<cr1901_modern> what cap?
<rqou> i really need to study up on "how to do decoupling right"
<azonenberg> rr the one dead center of the second image
<lain> rqou: one moment, I have a resource for you
<azonenberg> between H5-G5-F5
<azonenberg> rqou: Ground plane isn't yet placed, but will fill the whole yellow layer
<azonenberg> Blue layer is power, i have planes outlined but not filled in this render
<cr1901_modern> THAT'S a cap?!
<azonenberg> cr1901_modern: yes
<lain> rqou: https://youtu.be/9EaTdc2mr34 this will teach you everything you need to know :P
<azonenberg> thats an 0402
<cr1901_modern> That looks like two pieces of copper
<rqou> wait that's definitely not the normal kicad footprint for a 0402
<azonenberg> rqou: i dont use kicad footprints for anything
<rqou> because i just used one and the copper was a bit narrower than i liked :P
<azonenberg> i use my own made off IPC specs
* lain also makes her own from IPC
<azonenberg> and/or datasheet recommendations for connectors etc
<rqou> hmm i need to go pirate the ipc specs :P
<cr1901_modern> rqou: Don't. It's a world of hell
<lain> usually I go with nominal, but sometimes least copper
<cr1901_modern> They are awful to read
<rqou> hey, i've been struggling through the vhdl spec
<azonenberg> here's a 3d render of the back side showing the cap placements
<rqou> heh, i never bother to have working 3d models
<azonenberg> the sideways placement has lower parasitic L than hanging off the end, so i use it where layout permits
<lain> ipc specs are awful for trying to understand stuff, I agree. but once you know where the info you need is, they're easy to reference
<azonenberg> rqou: i use it for mechanical sanity checking
<azonenberg> now that kicad can read STEP files
<azonenberg> i use it for connector models etc
<cr1901_modern> This is a 4 layer board?
<azonenberg> Yes
<azonenberg> Front side 3d render as it stands now (clearly incomplete, lol)
<rqou> are your models autogenerated?
<rqou> at least for the chips?
<azonenberg> passives i use walter's model series
<azonenberg> ditto for most ICs
<rqou> what's the license?
<azonenberg> i forget, but i dont redistribute the models
<azonenberg> i just reference them by path
<azonenberg> i use my own footprints
<rqou> ugh, i really hate having to properly isolate out free/non-free stuff
<azonenberg> just use the 3rd party stuff for 3d
<cr1901_modern> How about redistibuting the footprints :D?
<azonenberg> well its not isolated
<azonenberg> it's just that i install them in a dir on my box
<azonenberg> and reference that dir
<azonenberg> the big gray squares are goign to have SMT probe clips on them
<azonenberg> havent found a 3d model for that
<azonenberg> the buck module and big samtec connector are imported steps
<azonenberg> rqou: and my footprints are all manual right now
<azonenberg> i do new IC footprints pretty rarely these days
<azonenberg> since i have a good library
<rqou> ah but most of the 3d models are "non-free" (to use a loaded term)
<cr1901_modern> azonenberg: Maybe making IPC footprints is fun, a blast, for you. But it's not for me :(
<azonenberg> and connectors are normally custom layouts you cant easily script
<rqou> otherwise i would have said "wow, that's so much work"
<azonenberg> cr1901_modern: use mine? they're on github
<cr1901_modern> azonenberg: This wasn't true last time I asked :P?
<azonenberg> rqou: Sure but again, i don't redistribute the 3d models
<cr1901_modern> Or if it was I misunderstood
<azonenberg> and they're not needed to reproduce the design
<cr1901_modern> Takes anywhere from 15 minutes to an hour to make a part for me
<lain> cr1901_modern: I use the land pattern wizard that comes with PADS, but there's a land pattern calculator that comes with ipc-7351B
<azonenberg> rqou: they're basically for me to make nice renders and sanity check the footprint as matching the model
<azonenberg> but if somebody else wants to make my board, or modify it, they dont need the 3d file
<azonenberg> so i dont redistribute it, and the whole licensing scheme becomes irrelevant
<azonenberg> if they want to acquire the model they're free to do so
<azonenberg> But they dont have to to use my design
<cr1901_modern> lain: Could I make TQFP144 with that calculator?
<azonenberg> cr1901_modern: i might have a tqfp144 footprint already
<cr1901_modern> Oh wait, I promised myself to suck it up and do BGA
<azonenberg> i know i have a bga256
<cr1901_modern> azonenberg: I don't see it in a quick scan, but that's okay.
<lain> cr1901_modern: I think so. I usually just make those by hand though, with PADS's step & repeat tool in the footprint editor
<azonenberg> yeah i do not have a qfp 144
<lain> same for bga
<lain> I'll make the A1 pad and step&repeat across, then step&repeat the whole row down
<azonenberg> i had an old one in the previous kicad library format
<azonenberg> never ported it to the new format because i basically dont use tqfp anymore
<cr1901_modern> Did kicad's library format change recently?
<azonenberg> cr1901_modern: maybe 2 yrs ago?
<lain> unless it's some whacked out intel bga footprint, then I wind up writing a script or something cause you have to employ trig to do that shit
<cr1901_modern> Oh, I'm good then
<lain> friggin diagonal matrix selective depop with
<lain> multiple ball sizes
* lain shakes fist at intel
<azonenberg> is the xilinx ft[g]256 footprint
<rqou> still waiting for eeschema-new
<azonenberg> rqou: yeah
<azonenberg> that will be nice
<lain> tl;dr on eeschema-new?
<azonenberg> lain: they're doing the same kind of revamp they did for the layout tool
<rqou> i specifically found a kicad dev to ask about this
<rqou> apparently the old code structure was "structure, what's that?"
<azonenberg> replacing the fugly old rendering engine (XOR based erasure of lines you're removing, etc) with opengl
<azonenberg> totally new data model internally i think
<rqou> CERN couldn't work with that and made a graphics abstraction layer
<azonenberg> Yeah
<azonenberg> i have done next to no dev on eeschema
<rqou> which is actually sanely "this part is the data, this part is the rendering"
<cr1901_modern> XOR based?
<azonenberg> all of my work has been pcbnew
<azonenberg> cr1901_modern: if you have a line you want to erase
<rqou> i find i absolutely hate working on c++
<azonenberg> just xor pixels with the color you drew it in
<lain> rqou: same
<azonenberg> then draw it again
<rqou> i've ported my vhdl tool to Rust now
<azonenberg> i love well written C++
<lain> I did enough c++ for a lifetime, I'm done with it
<azonenberg> which is hard to find :p
<azonenberg> aanyway off to the garage to work on some stuff
<azonenberg> back in a bit
<lain> C# is bae
<rqou> i've actually used C# since version 1
<lain> rust seems good for embedded stuff, need to actually use it on a project one of these days
<rqou> it's pretty nice
<lain> yeah
<lain> the newer stuff with pattern matching is interesting
<cr1901_modern> Good for embedded if you're only micros are ARM and/or openRISC :P
<rqou> somehow the C# culture doesn't seem to encourage as much IAbstractWidgetFactoryFactoryRunner as Java
<cr1901_modern> I think I took that "Why the Raspberry Pi is unsuitable for education" blog article too seriously
<lain> like, it used to be a nightmare to selectively do things based on typeof(obj), but now you can do something like: switch(obj) { case Circle circle: /* do something with circle */ break; case Rectangle rect: ... break; ...
<lain> where "case Circle circle:" is implicitly doing if(obj is Circle) { Circle circle = obj as Circle; ... }
<rqou> rust has that
<lain> ah nice
<rqou> it's a bit more powerful actually afaik
<lain> they probably borrowed it from rust haha
<lain> C# borrows the best bits of everything
<rqou> rust can do destructuring in a pattern
<lain> wuzzat
<azonenberg> rqou: I use C+
<lain> "C with classes"?
<azonenberg> as in, a carefully selected subset of C++ that keeps things relatively sane and not too java-y
<lain> :P
<lain> haha
<azonenberg> lain: and a bit more
<cr1901_modern> let (0, 1) = x, y
<lain> factory factory
<cr1901_modern> or something like that
<lain> oh
<azonenberg> I had a problem, so I used Java
<rqou> other way around
<azonenberg> Now I have a ProblemFactory
<lain> C# has that too now
<lain> with its tuple implementation
<lain> ^ all the new things
<cr1901_modern> I guess I'll do a board similar to minispartan6, but without the HDMI ports. Or SD card. Or the FT2232H. Or the RAM. Or the ADC.
<rqou> IAbstractProblemFactoryProxyBeanInjector :P
<lain> lol
<cr1901_modern> I guess I'll do a board.
<rqou> rust can destructure structs as well as tuples
<rqou> even C+ seems to encourage a lot of boilerplate
<lain> rqou: it also has like "case Rectangle s when (s.Length == s.Height):"
<lain> pattern shit
<lain> which is interesting
<rqou> that's interesting
<cr1901_modern> https://blogs.mentor.com/hyperblog/blog/tag/velocity-of-propagation/ "The most important thing you can take away from this post is that signal quality depends on edge rate, not operating frequency." TIL
<cr1901_modern> (Although I guess technically reflections are also a measure of signal quality as well)
* lain nods
<lain> the knee frequency also depends on the rise time, rather than the signal frequency
<lain> since the rise time is what largely determines the various signal components (and their powers)
<lain> (since square waves are equivalently composed of an infinite series of sine waves, etc)
<cr1901_modern> Isn't the rise time a function of the capacitance "seen" by the line anyway? As well as the slew rate from whatever is driving the signal high or low?
<cr1901_modern> capacitance == low pass filter effect which will slow down rise time
<lain> at high speed the bulk capacitance actually isn't a factor afaik, it's just the impedance that matters (so, it comes down to drive strength and termination)
<cr1901_modern> (But a real impedance is not going to change the frequency content of a signal)
<cr1901_modern> In any case, I'm trying to separate how a transmission line's impedance affect rise time from how it effects the actual signal delivered to the load (due to impedance mismatch). They seem like they should be related, but this blog post and what you're saying state they're not.
digshadow has joined ##openfpga
<cr1901_modern> (The minispartan6 has serpentine traces attached to the 133MHz SDRAM. I figured at 133MHz, this wouldn't be necessary, and I'm trying to calculate how important length matching actually is for this)
<lain> it might not be necessary, may just be to gain extra timing margin or etc
<cr1901_modern> which led to the above blog post about c/sqrt(permittivity_of_fr4)
<cr1901_modern> since I totally forgot most of this stuff like a moron
<rqou> i actually never studied transmission line theory
<lain> but, impedance mismatch I like to think of with the water analogy - instead of current flow (flowing water), for high speed imagine a pressure wave going down a pipe filled with water. if the pipe diameter suddenly shrinks, that's an increase in impedance, and you can imagine a lot of the pressure wave is going to smack into the wall where the pipe necks-down - that energy is reflected back toward the
<lain> source
<lain> stuff like that
<cr1901_modern> rqou: I'm gonna be honest. Normally I would ask "how did you get your degree without taking a class in that?" But I have no room to talk. I have a bunch of shit I didn't learn but should have.
<rqou> i tell EE people I have a CS degree and tell CS people I have an EE degree :P
<cr1901_modern> Like: threads, version control, SMPS, making own PCBs (okay, this was offerred outside of class), RF electronics (offered as an elective that I didn't take)
<cr1901_modern> OS design, how to use C++11 features
<rqou> at berkeley basically everything is an "elective" so you can totally chose to not learn these things
<rqou> although we don't have anything on "how to use C++11 features"
<rqou> i don't know how many professors even use C++11
<cr1901_modern> It came up multiple times in grad school as "the wave of the future".
<cr1901_modern> Before FP fever took over
<rqou> i don't think any professors here ever liked C++
<rqou> it seems it's always been C, Java, or functional programming
<cr1901_modern> I didn't think the first part of transmission line theory was all that bad. Most of it is intuitive if you concentrate. Antennas, on the other hand... bleh
<cr1901_modern> that shit sucked
<cr1901_modern> I was never good at them, and I even bought a book back in July on the theory that I barely touch b/c all it does is discourage me
<rqou> yeah i learned neither transmission line theory nor antennas
<lain> a lot of profs are really mathematical about it, rather than trying to provide an intuitive understanding they're just like "lol memorize these differentials"
<cr1901_modern> I don't understand the Maxwell's derivation of telegrapher's equations. I could do the RLGC version if I tried.
<lain> I found Optics to be an excellent introduction to the subject
<lain> (Eugene Hecht)
<rqou> heh, i actually took optics :P
<rqou> i agree
<lain> every other book on EM/optics is all math math math
<rqou> (we also used the Hecht textbook :P )
<lain> Hecht actually explains it with words and analogies that really work well for me
<lain> the math is there too
<lain> but it's optional extra :P
<rqou> what's interesting is that berkeley expects you to have both all the intuition and all the math
<rqou> simultaneously
<lain> lol
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
scrts has quit [Ping timeout: 264 seconds]
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
scrts has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
m_t has joined ##openfpga
scrts has quit [Ping timeout: 268 seconds]
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- It'll be on slashdot one day...]
scrts has joined ##openfpga
Bike has quit [Quit: lshgas]
Hootch has joined ##openfpga
m_t has quit [Quit: Leaving]
cr1901_modern1 has joined ##openfpga
cr1901_modern2 has joined ##openfpga
cr1901_modern has quit [Ping timeout: 240 seconds]
cr1901_modern1 has quit [Ping timeout: 240 seconds]
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
scrts has quit [Ping timeout: 260 seconds]
scrts has joined ##openfpga
promach has joined ##openfpga
cr1901_modern2 is now known as cr1901_modern
scrts has quit [Ping timeout: 268 seconds]
scrts has joined ##openfpga
pie_ has joined ##openfpga
Bike has joined ##openfpga
promach has quit [Ping timeout: 272 seconds]
davidc__ has quit [Ping timeout: 260 seconds]
davidc__ has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
pie_ has quit [Ping timeout: 260 seconds]
digshadow has quit [Quit: Leaving.]
promach has joined ##openfpga
pie_ has joined ##openfpga
m_w has joined ##openfpga
X-Scale has joined ##openfpga
cr1901_modern has quit [Read error: Connection reset by peer]
amclain has joined ##openfpga
Hootch has quit [Read error: Connection reset by peer]
promach has quit [Ping timeout: 255 seconds]
Hootch has joined ##openfpga
azonenberg_work has joined ##openfpga
digshadow has joined ##openfpga
m_t has joined ##openfpga
Hootch has quit [Ping timeout: 240 seconds]
cr1901_modern has joined ##openfpga
Hootch has joined ##openfpga
Hootch_Work has joined ##openfpga
Hootch has quit [Ping timeout: 264 seconds]
Hootch_Work has quit [Ping timeout: 240 seconds]
seu has quit [Remote host closed the connection]
promach has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
m_t has quit [Quit: Leaving]
promach has quit [Client Quit]
scrts has quit [Ping timeout: 240 seconds]
seu has joined ##openfpga
scrts has joined ##openfpga
eduardo has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
pie_ has quit [Ping timeout: 272 seconds]
promach has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
digshadow has quit [Client Quit]
digshadow has joined ##openfpga
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
digshadow has quit [Quit: Leaving.]