noobineer has quit [Remote host closed the connection]
theMagnumOrange has joined ##openfpga
digshadow1 has quit [Ping timeout: 252 seconds]
enriq has joined ##openfpga
m_t has quit [Quit: Leaving]
DocScrutinizer05 has quit [Quit: EEEEEEK]
DocScrutinizer05 has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
digshadow has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pie_ has joined ##openfpga
Hootch has joined ##openfpga
sunxi_fan1 has joined ##openfpga
ZipCPU|Laptop has joined ##openfpga
pie_ has quit [Ping timeout: 248 seconds]
pie_ has joined ##openfpga
pie_ has quit [Ping timeout: 240 seconds]
azonenberg_work has quit [Ping timeout: 246 seconds]
azonenberg has quit [Ping timeout: 255 seconds]
azonenberg_work has joined ##openfpga
azonenberg has joined ##openfpga
ZipCPU|Laptop has quit [Ping timeout: 240 seconds]
ZipCPU|Laptop has joined ##openfpga
ZipCPU|Laptop has quit [Ping timeout: 255 seconds]
azonenberg has quit [Ping timeout: 246 seconds]
azonenberg_work has quit [Ping timeout: 246 seconds]
azonenberg has joined ##openfpga
azonenberg_work has joined ##openfpga
pie_ has joined ##openfpga
teepee has quit [Ping timeout: 240 seconds]
teepee has joined ##openfpga
teepee has quit [Ping timeout: 258 seconds]
teepee has joined ##openfpga
qu1j0t3 has quit [Ping timeout: 248 seconds]
teepee has quit [Ping timeout: 248 seconds]
teepee has joined ##openfpga
pie_ has quit [Ping timeout: 264 seconds]
indy has quit [Ping timeout: 240 seconds]
indy has joined ##openfpga
pie_ has joined ##openfpga
qu1j0t3 has joined ##openfpga
scrts has quit [Ping timeout: 248 seconds]
scrts has joined ##openfpga
m_t has joined ##openfpga
teepee has quit [Ping timeout: 252 seconds]
teepee has joined ##openfpga
teepee has quit [Ping timeout: 240 seconds]
teepee has joined ##openfpga
teepee has quit [Ping timeout: 258 seconds]
teepee has joined ##openfpga
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
teepee has quit [Ping timeout: 248 seconds]
enriq has joined ##openfpga
teepee has joined ##openfpga
teepee has quit [Ping timeout: 252 seconds]
teepee has joined ##openfpga
digshadow has quit [Ping timeout: 240 seconds]
teepee has quit [Ping timeout: 240 seconds]
teepee has joined ##openfpga
m_w has joined ##openfpga
digshadow has joined ##openfpga
m_w has quit [Ping timeout: 240 seconds]
m_w has joined ##openfpga
gruetzko- has joined ##openfpga
gruetzkopf has quit [Ping timeout: 240 seconds]
<rqou> azonenberg: ping?
<azonenberg> ack
<azonenberg> rqou:
<azonenberg> I'm home and at my desk now
<azonenberg> Have to take care of a few things re general work stuff, then will be working on inferring buses
digshadow has quit [Ping timeout: 240 seconds]
digshadow has joined ##openfpga
<awygle> welcome back
enriq has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enriq has joined ##openfpga
Hootch has quit [Quit: Leaving]
enriq has quit [Client Quit]
massi has quit [Remote host closed the connection]
<azonenberg_work> Soo
<azonenberg_work> It looks like nobody has decapped an ice40 yet
<azonenberg_work> I have a few in my garage that somebody sent me to do
<azonenberg_work> Going to try and get those done this week if possible, so i can get a figure in my talk to work with
<rqou> wait no
<rqou> i swear i saw a pic
<azonenberg_work> If you can find one, i want to see it
<sn00n> :)
<azonenberg_work> I wanted ideally a "stripped to active layer" image
<rqou> hmm, maybe i'm mistaken
<azonenberg_work> well i think somebody sent me a few
<rqou> there's definitely no stripped/dash-etched one that i'm aware of
<azonenberg_work> so if i can dig them up i might try and decap soon
<azonenberg_work> Ok
enriq has joined ##openfpga
enriq has quit [Client Quit]
<rqou> azonenberg_work: does a "very long time" hf etch of a chip remove the poly as well, or can you time it to remove only metal without poly?
<rqou> *keeping the poly
<azonenberg_work> If you "strip" (meaning, uncontrolled HF etch for a long time)
<azonenberg_work> you will undercut the field oxide and remove the poly
<azonenberg_work> That being said, depending on the process technology
<azonenberg_work> you may be able to do a controlled-depth etch that exposes just poly and not metal
<azonenberg_work> http://siliconpr0n.org/archive/lib/exe/fetch.php?cache=&media=azonenberg:microchip:pic12f683_poly_bf_neo10x_4k.jpg
<azonenberg_work> Microchip 350nm, for example, i have had good results with
<azonenberg_work> UMC 180 is a lot harder and anything below 130 you pretty much need to use a mix of polishing/plasma
<rqou> was this the one where you just did timed HF etches to remove metal layers?
<azonenberg_work> Yes
<azonenberg_work> We have a RIE system at the lab but i am not yet trained on it
<azonenberg_work> And doubt i will be in time for hardwear
<azonenberg_work> but ideally, for REcon next year, we can make progress
<azonenberg_work> I would love if, in a couple of years
<azonenberg_work> we could present a simple standard cell device, say pic10f200 or so
<azonenberg_work> fully RE'd to human readable HDL
<rqou> btw offtopic: apparently you can no longer buy phenolphthalein at the drugstore :P
<azonenberg_work> With manually added annotations for what various things did
<azonenberg_work> i thought it was used in... fantastik
<azonenberg_work> ?
<azonenberg_work> some COTS bathroom cleaner
<azonenberg_work> forget the brand
<rqou> it's a ph indicator that was used as a laxative
<azonenberg_work> impure but if you just want a pH indication and aren't mixing it in with your sample
<rqou> apparently it might be carcinogenic
<azonenberg_work> contaminants arent a big deal
<rqou> why does a bathroom cleaner need it?
<rqou> i should probably just buy a ph probe :P
<azonenberg_work> why does a laxative? i know very little about the chemical other than that it turns pink at one pH and is clear in the other (I forget which)
<azonenberg_work> also, i prefer universal indicator strpis
<azonenberg_work> strips*
<rqou> not if you're doing titrations
<azonenberg_work> they give you readings to about +/- 1 pH unit
<azonenberg_work> oh
<rqou> then you don't want strips
<azonenberg_work> Titrating what?
<rqou> eh, just titrating e.g. drain cleaner to measure sulfuric acid concentration
<azonenberg_work> it's syrupy
<azonenberg_work> i would assume >90%, probably >95%
<azonenberg_work> its probably technical grade with the main impurity being a dye and then maybe some dissolving of the plastic bottle it's stored in
<rqou> or if i ever do a "diy WFNA" reaction
<azonenberg_work> http://siliconpr0n.org/archive/lib/exe/fetch.php?cache=&media=azonenberg:microchip:pic12f683_poly_02_bf_neo40x_annotated.jpg
<azonenberg_work> btw
<azonenberg_work> I think we can totally get a chip like this to be machine readable
<azonenberg_work> we have automated SEM and optical imaging at IOA
<azonenberg_work> so i can do the data capture
<azonenberg_work> there is some CV code floating around somewhere (not sure where the repo is)
<azonenberg_work> i may or may not be able to use it
<azonenberg_work> But that is the long shot goal
<azonenberg_work> At that point we can have a feedback system where we decap a new FPGA, delayer it, RE the silicon
<azonenberg_work> then create bitstream docs from that
<rqou> anyways, i saw some youtube video where somebody does a sulfuric acid distillation using an electric stove heating element as a heating mantle
<rqou> apparently that works
<rqou> there's also one youtube video where somebody claims to have made HF in a really really unsafe environment
<rqou> btw azonenberg_work i _think_ i have a "safe enough" apparatus setup for DIY HF production
<azonenberg_work> How pure do you want? Can you not buy Whink?
<rqou> i was thinking for future homecmos endeavors
<azonenberg_work> lol its not hazmat for shipping?
<azonenberg_work> oh you want trace metals gradE?
<azonenberg_work> grade*
<azonenberg_work> that makes it harder :p
<rqou> is "CaF2 + sulfuric acid in a lead pipe" pure enough for homecmos endeavors?
<azonenberg_work> the lead im not sure of
<azonenberg_work> i'd do it in a PTFE container if possible (i.e. if temp allows it etc)
<azonenberg_work> But lead may be OK
<azonenberg_work> i just dont know how soluble Pb is in HF
<rqou> i don't know either
<azonenberg_work> also the Ca residue might be problematic
<rqou> hrm
<azonenberg_work> alkali metals are really bad for PN junctions
<azonenberg_work> if you did multiple distillations of the resulting HF you might be able to pull it ogff
<azonenberg_work> off*
<azonenberg_work> but i reeeeally would not be comfortable distilling HF
<rqou> but all of the metal fluorides are solids
<rqou> and yes, i was trying to avoid having to try to figure out an apparatus for how to distill HF
<azonenberg_work> Since you couldn't even use glassware
<azonenberg_work> (plus yeesh hot HF vapor)
<azonenberg_work> Honestly, i would just buy trace metals basis chemicals if possible
<azonenberg_work> I would rather start from "full professional" and work down to see what we can get away with
<rqou> i don't even know how i would "legitimately" buy HF
<rqou> we're not in RU after all :P
<azonenberg_work> vs trying a full bootstrap and not knowing which of the 300 variables is making our chip not work
digshadow has quit [Ping timeout: 246 seconds]
<rqou> you know, it's amazing how chemically resistant glass is
* azonenberg_work has never tried to buy from e.g. Sigma
<rqou> azonenberg_work: for diy chip decap, do you think "diy HF+NH4F BOE" would be better than whink, or no difference?
<rqou> i noticed in some interview that even "dr decap" was using whink
<azonenberg_work> dig has had good results with homebrew BOE
<azonenberg_work> but i think he used ~10% HF?
<rqou> do i want to know where he gets it?
* azonenberg_work would be mildly terrfied of using that
<azonenberg_work> Reference: case study (incl. graphic photos) of someone who cleaned an air conditioner with a metal brightener containing 10% HF http://www.emdocs.net/hydrofluoric-acid-burn-keeps-burning/
<rqou> wtf household variants up to 40%?!
<azonenberg_work> It always amazes me the things that are allowed in consumer products
<azonenberg_work> that would make an EH&S person in a lab go "WTF"
<azonenberg_work> in general safety requirements for home stuff are terrifyingly lax
<azonenberg_work> like, 98% H2SO4 sold over the counter at hardware stores for drain cleaning
<rqou> nah, not 98%, only around 93% :P
<rqou> or does 98 exist and i don't know about it?
<azonenberg_work> I've never titrated it
<azonenberg_work> But it's strong enough to be syrupy
<rqou> i've read most of it is more like 93-95%
<azonenberg_work> Which means it's in "rather scary acid" territory
<azonenberg_work> Gallons of concentrated HCl for pool stuff
<azonenberg_work> etc
<rqou> oh yeah, i love how more than half of Nurdrage/NileRed's feedstocks seem to come from the pool supply store
<azonenberg_work> Like, if i am working with conc HCl
<azonenberg_work> i am going to want a face shield, lab coat, apron, full-length gloves
<azonenberg_work> goggles
<azonenberg_work> and ideally a fume hood
<rqou> nah, it's not that scary
<rqou> HCl is pretty tame
* azonenberg_work has never actually got HCl on himself
<azonenberg_work> and plans to keep it that way :p
<rqou> NileRed demonstrated it on purpose
<rqou> not much happens
<rqou> nitric acid is much scarier
<azonenberg_work> Well yeah
<azonenberg_work> NO2 is not friendly either
eduardo_ has joined ##openfpga
<azonenberg_work> Aaanyway i have a call in a couple minutes but when i get back i'm gonna work on bus stuff
<rqou> i'd probably be willing to handle HCl in a ghetto diy lab with just a face shield and gloves
theMagnumOrange has quit [Ping timeout: 252 seconds]
<azonenberg_work> BTW we should probably try to work on clock gating inference for greenpak at some point
<azonenberg_work> i.e. rather than wasting logic creating combinatorial muxes for DFF without CE
<azonenberg_work> We might have better luck creating a gated clock and driving an unconditional DFF with that
<azonenberg_work> in particular if you drive >1 DFF with a given control set
theMagnumOrange has joined ##openfpga
gnufan has joined ##openfpga
<rqou> that's strictly your problem :P
<rqou> er actually
<rqou> no it isn't
<rqou> xc2 can do that too, because control term clocks
<rqou> but you only need this if you're doing something weird like a TFF or latch with clock enable
<rqou> although i do need bufg inference
<rqou> does bufg inference belong in yosys or the par tool?
<azonenberg_work> Hmm
<azonenberg_work> Good question
<azonenberg_work> In general coolrunner seems like it would handle gated clocks well
<rqou> yeah, see the "RGH" jed :P
<rqou> zero bufgs used
<rqou> you know, other than cpld scaling issues, xc2 is pretty nice
<azonenberg_work> Yeah
<azonenberg_work> If i were to build myself a custom CPLD from scratch down the road
<azonenberg_work> i would likely model it on the XC2C architecture heavily, but change the ZIA to a 2D interconnect fabric (the dead xilinx bladerunner architecture, which i independently designed and then discovered)
<azonenberg_work> and add a small sram block or two
<azonenberg_work> say a few 8 bit x 64 blocks
<azonenberg_work> one per FB maybe
<azonenberg_work> for larger state storage, fifos, etc
<rqou> isn't this a psoc? :P
<rqou> or do i misunderstand how a psoc works
<azonenberg_work> no, there'd be no CPU
<azonenberg_work> and i dont know a ton about how the psoc udbs connect
<rqou> sure
<azonenberg_work> They're tiny though
<rqou> i meant the udb+dsi
<azonenberg_work> this would be a more sane size
<pointfree> If I had the means to put a real fpga/cpld in silicon I would use a hilbert curve for loading bitstream, relocating configuration, live reconfig, etc. http://people.rennes.inria.fr/Christophe.Huriaux/static/huriaux-configcomp13.pdf
<rqou> do people not already do that?
<pointfree> rqou: I don't know, do they? For improved live reconfig performance too?
<azonenberg> rqou: no i dont think so
<azonenberg> i think its normally a row-column structure
<azonenberg> To allow random access
digshadow has joined ##openfpga
theMagnumOrange has quit [Ping timeout: 255 seconds]
fpgacraft2_ has joined ##openfpga
dingbat_ has joined ##openfpga
laintoo_ has joined ##openfpga
cblam_ has joined ##openfpga
kmehall_ has joined ##openfpga
soylentyellow has joined ##openfpga
<awygle> pointfree: that's pretty cool
cyrozap-ZNC has joined ##openfpga
SuperChickeNES has joined ##openfpga
digshadow has quit [*.net *.split]
fpgacraft2 has quit [*.net *.split]
pointfree1 has quit [*.net *.split]
nicdev has quit [*.net *.split]
kmehall has quit [*.net *.split]
dingbat has quit [*.net *.split]
ChickeNES has quit [*.net *.split]
cblam has quit [*.net *.split]
cyrozap has quit [*.net *.split]
laintoo has quit [*.net *.split]
fpgacraft2_ is now known as fpgacraft2
cblam_ is now known as cblam
dingbat_ is now known as dingbat
<awygle> On the subject of nontraditional FPGA architectures, has anybody done serious research on using high speed differential signaling to speed up the routing fabric? Or is the situation such that that won't help?
<rqou> who wants me to run clifford's riscv-formal against my class project to see how bad i am at HDL? :P
<rqou> awygle: afaik serdes are so difficult to build and take up so much space that that isn't effective at all
indy has quit [Ping timeout: 260 seconds]
theMagnumOrange has joined ##openfpga
indy has joined ##openfpga
pointfree1 has joined ##openfpga
digshadow has joined ##openfpga
<pie_> awygle, but y?
fpgacraft2 has quit [Quit: ZNC 1.7.x-git-709-1bb0199 - http://znc.in]
fpgacraft2 has joined ##openfpga
<awygle> pie_: gotta go fast
<awygle> rqou: I'm picturing more along the lines of the sense amps on DRAM than like, PCIe. You're not really doing proper SerDes unless it's a NoC architecture.
<awygle> It still may be a stupid idea though. I r bad @ cmos
<pie_> c mos befor c hos
soylentyellow has quit [Ping timeout: 240 seconds]
pie_ has quit [Ping timeout: 246 seconds]
ZipCPU|Laptop has joined ##openfpga
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/v51lW
<openfpga-github> openfpga/master 26a6670 Andrew Zonenberg: Updated Adder test
soylentyellow has joined ##openfpga
teepee has quit [Ping timeout: 258 seconds]
<openfpga-github> [yosys] azonenberg pushed 1 new commit to master: https://git.io/v51Rz
<openfpga-github> yosys/master c8f35db Andrew Zonenberg: Initial version of extract_bus pass
<openfpga-github> [yosys] rqou pushed 1 new commit to master: https://git.io/v51Rp
<openfpga-github> yosys/master 7ce3b56 Robert Ou: recover_adder_core: Fix merge bug?
pie_ has joined ##openfpga
teepee has joined ##openfpga
<openfpga-github> [yosys] azonenberg pushed 2 new commits to master: https://git.io/v51Eu
<openfpga-github> yosys/master 4d07f4c Andrew Zonenberg: Cleaned up some dead code
<openfpga-github> yosys/master 29edbc9 Andrew Zonenberg: Merge branch 'master' of github.com:azonenberg/yosys
pie_ has quit [Remote host closed the connection]
pie_ has joined ##openfpga
ZipCPU has left ##openfpga ["See 'yall later!"]
GenTooMan has joined ##openfpga
pie_ has quit [Ping timeout: 240 seconds]
<openfpga-github> [yosys] rqou pushed 1 new commit to master: https://git.io/v51zh
<openfpga-github> yosys/master 1289b5a Robert Ou: recover_adder_core: Fix bug with carry into XOR3 not into port C
sunxi_fan1 has quit [Ping timeout: 255 seconds]
sunxi_fan2 has joined ##openfpga
gnufan has quit [Ping timeout: 260 seconds]
gnufan has joined ##openfpga
pie_ has joined ##openfpga
<azonenberg> Soooo sanity check here
<azonenberg> What's the DeMorgan equivalent of an XOR, and does it depend on the number of inputs?
<azonenberg> Suppose I have an XOR-n
<azonenberg> i add inverters to every input
<azonenberg> Since XOR is commutative, and XORing by 1 is inversion
<azonenberg> this is the same as XORing every input by 1
<azonenberg> so I have (a ^ 1) ^ (b ^ 1) ^... (z ^ 1)
<azonenberg> then we can use the associative property to convert this to (a ^ b ^ ... z) ^ (1 ^ 1 ^ 1 ...)
<azonenberg> At that point we can convert the 1^ 1^1 to either an inversion or no change
<azonenberg> So my conclusion is that the DeMorgan of a XOR is either an XOR (if even number of inputs) or XNOR (if odd number of inputs)
<rqou> that sounds right
<azonenberg> I won't implement xor demorgan just yet, but keeping it in the code as a TODO
<rqou> i haven't seen a reduce_xor actually get recovered
<azonenberg> Yeah
<azonenberg> For the time being i wont support them
<rqou> i can't really think of any use case for an xor chain
<azonenberg> you mean a reduce_xor?
<rqou> yeah
<azonenberg> parity check
<rqou> other than some coding-theory/crypto thing
pie__ has joined ##openfpga
pie_ has quit [Remote host closed the connection]
gnufan has quit [Quit: Leaving.]
soylentyellow has quit [Ping timeout: 248 seconds]