C3Subtitles: 34c3: Reverse engineering FPGAs
back

Reverse engineering FPGAs

Dissecting FPGAs from bottom up, extracting schematics and documenting bitstream formats

If you suspend your transcription on amara.org, please add a timestamp below to indicate how far you progressed! This will help others to resume your work!

Please do not press “publish” on amara.org to save your progress, use “save draft” instead. Only press “publish” when you're done with quality control.

Video duration
00:42:09
Language
English
Abstract
In this talk I describe the basic makeup of FPGAs and how I reverse engineered the Xilinx 7 Series and Lattice iCE40 Series together with the implications.

FPGAs are used in many applications ranging from networking, wireless communications to high performance computing, ASIC prototyping and so forth.

They would be perfect to create true open source hardware but we would still be bound to use proprietary toolchains provided by the manufacturers.

To generate a valid configuration file this toolchain needs to know every single wire, switch, possible connection, logic block and the corresponding bits to configure each them.

In other words you are required to have the blueprints of the FPGA in your toolchain to be able to do the place&routing and generation of the bitstream file from your netlist.

Naturally manufacturers do not like to disclose this information, possibly because someone could reverse engineer valuable intellectual property cores.

I will explain each component used in FPGAs from Lattice and Xilinx, like switchboxes, the interconnect, logic blocks, memory blocks.

Furthermore I will talk about how I reverse engineered the 7 Series from Xilinx and the iCE40 from Lattice.

At the end I will demonstrate how to create your own bitstream by hand, implementing a small logic circuit and testing it live on a Zynq 7000 FPGA from Xilinx.

Talk ID
9237
Event:
34c3
Day
2
Room
Saal Clarke
Start
2 p.m.
Duration
01:00:00
Track
Hardware & Making
Type of
lecture
Speaker
MathiasL
0.0% Checking done0.0%
0.0% Syncing done0.0%
0.0% Transcribing done0.0%
100.0% Nothing done yet100.0%

English: Transcribed until

Last revision: 11 months, 3 weeks ago