azonenberg changed the topic of ##openfpga to: Open source tools for FPGAs, CPLDs, etc. Silicon RE, bitfile RE, synthesis, place-and-route, and JTAG are all on topic. Channel logs: https://libera.irclog.whitequark.org/~h~openfpga
cr1901 has quit [Read error: Connection reset by peer]
Degi_ has joined ##openfpga
Degi has quit [Ping timeout: 260 seconds]
Degi_ is now known as Degi
specing has quit [Ping timeout: 258 seconds]
specing_ has joined ##openfpga
specing_ is now known as specing
cr1901 has joined ##openfpga
indy has quit [Read error: Connection reset by peer]
indy has joined ##openfpga
pie__ has quit [*.net *.split]
DrWhax has quit [*.net *.split]
Ekho has quit [*.net *.split]
zyp has quit [*.net *.split]
zyp has joined ##openfpga
DrWhax has joined ##openfpga
pie_ has joined ##openfpga
Ekho has joined ##openfpga
egg|cell|egg has quit [Ping timeout: 258 seconds]
egg|cell|egg has joined ##openfpga
kristianpaul has quit [Read error: Connection reset by peer]
kristianpaul has joined ##openfpga
_franck_ has quit [Ping timeout: 265 seconds]
_franck_ has joined ##openfpga
stefanct has quit [Ping timeout: 246 seconds]
stefanct has joined ##openfpga
braincode has joined ##openfpga
<braincode> Hello folks, I'm recently minted in CPLD adventures, so please bear that in mind, not an expert ;)
<braincode> I'm currently on a trip to reading out a Xilinx XC95288XL CPLD (https://github.com/GlasgowEmbedded/glasgow/pull/285) I bought on Aliexpress: https://www.aliexpress.com/item/1005001502267945.html... this board comes pre-loaded with a simple binary counting example on the external LEDs of the board.
<braincode> We managed to dump the bitstream via JTAG with my Glasgow, here's a hexdump of the contents:
<braincode> So given that .bit file, how hard it is nowadays to elucidate the individual gates/blocks from it and/or overall functionality?
stefanct has quit [Ping timeout: 264 seconds]
<whitequark> note that this .bit file is a Glasgow-specific format
<whitequark> you probably want to convert it to JED if you want anyone else to be able to make sense of it
<whitequark> (it's just a dump of data from the internal flash the way it's laid out there)
* braincode greps for JED flags/options on Glasgow codebase…
<whitequark> `glasgow tool program-xc9500xl`
<whitequark> except... it doesn't currently do bit-to-jed conversion, oops
<braincode> Hehehe
<vup> braincode: anuejn and I played around with fuzzing ISE for the xc95{x,}xxXL a bit, I think most of the macrocell configuration would be pretty easy to figure out, but we got a bit stuck with the switch matrix, as we did not figure out a nice way to fuzz it yet
<vup> but reading this back now it could be rewritten to be a lot easier to understand :)
<braincode> Oh, wow, so much to read/learn, thanks! … that's fuzzing though, which I presume it's very useful when there's IP readout security, but if the CPLD allows reading, is fuzzing still needed to reconstruct and understand the logic implemented?
<vup> well the fuzzing is to understand the bitstream format
<vup> it does not fuzz a specific bitstream to figure out its operation, but rather generates a big number of bitstreams and tries to figure out the meaning of the single bits by comparing them
<braincode> Fascinating, thanks for explaining!
<braincode> I thought that fuzzing on CPLDs was just to bruteforce the I/O of an application so that one explores all the combinatorial space given a set of input/output pins… which I always thought it could be intractable in almost all cases.
<vup> yeah fuzzing the IOs of a CPLD to reverse engineer the bitstream / configuration sounds very tricky indeed
braincode has quit [Quit: Leaving.]
<whitequark> vup: check out how i fuzz the matrix in prjbureau
<whitequark> except for the devices where the matrix is sparse, i generally get every single bit
braincode has joined ##openfpga
braincode has quit [Client Quit]
<vup> whitequark: interesting, I think I had a similar idea previously (atleast the first two stages), but I never actually implemented it fully
X-Scale` has joined ##openfpga
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
stefanct has joined ##openfpga
balrog has quit [Quit: Bye]
balrog has joined ##openfpga
specing_ has joined ##openfpga
specing has quit [Killed (NickServ (GHOST command used by specing_))]
specing_ is now known as specing
X-Scale` has joined ##openfpga
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
_franck_0 has joined ##openfpga
_franck_ has quit [Ping timeout: 244 seconds]
_franck_0 is now known as _franck_
braincode has joined ##openfpga
braincode has left ##openfpga [##openfpga]
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined ##openfpga