2. • Закончил аспирантуру TU Berlin, тема новые виды анализа чипов
• Работаю совместно с Olivier THOMAS и Texplained SARL во Фрации
• Фрилансер и тренер “IC RE 101” и “Keep it Synple Stupid”
• Преподаю “Hardware Security” в TU Berlin
• Буду разрабатывать конкурента Yubikey
• Twitter: @nedos
Email: dmitry@h.rdw.re
Кратко обо мне...
4. WTFPGA?!
• FPGA - Программируемая
Пользователем Вентильная Матрица.
• Позволяет реализовать зачет
конфигурируемых логических
элементов логическую схему.
• Зачет этого возможно реализовать
логические и комбинаторные и сек.
логические схемы.
• С помощью тактового сигнала
возможно очень точно описать
поведение логической схемы.
7. HDL
• Логические схемы не “програмируют” их
“описывают” (HDL - Hardware Description
Language).
• Языки HDL описывают как меняется
состояние схемы и сигналов в
зависимости от состояния других сигналов
или в следующем тактовом цикле.
• В императивных языков все выполняется в
последовательно, в HDL всё выполняется
паралельно.
• Есть множество языков, самые
популярные это Verilog и VHDL.
8. Конечный Автомат
Figure 11: UART Timing Diagram
UART START
UART DATA
UART STOP
Default assignments
valid <= 1’b0;
etu cnt <= (etu cnt + 1);
state <= state;
bit cnt <= bit cnt;
data out <= data out; etu half
state <= ‘UART DATA;
etu cnt <= 9’d0;
bit cnt <= 3’d0;
data out <= 8’d0;
din == 1’b1
etu cnt <= 9’d0;
etu full
etu cnt <= 9’d0;
data out <= {din, data out[7:1]};
bit cnt <= (bit cnt + 1);
bit cnt == 3’d7
state <= ‘UART STOP;
etu full
etu cnt <= 9’d0;
state <= ‘UART START;
valid <= din;
Figure 12: UART receiver state machine.