ENS L3 : Systèmes numériques : de l'algorithme aux circuits

52
ENS L3 : "Systèmes numériques : de l'algorithme aux circuits" Leçon : langages de description de matériel Sylvain GUILLEY 6 décembre 2016

Transcript of ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Page 1: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

ENS L3 : "Systèmes numériques :de l'algorithme aux circuits"

Leçon : langages de description de matériel

Sylvain GUILLEY6 décembre 2016

Page 2: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Programme

● EDA (Electronic Design Automation)● Verilog● Exemples

– Elements de base

– C-element

– Table de substitution d'AES

– Pipelines de processeurs

● Synthétisabilité● Exercices : TD en ligne

Page 3: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

EDA

Page 4: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

EDA

Page 5: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Commands

Page 6: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Test des circuits intégrés

Deux modes, en fonction de TEN

Page 7: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Test des cartes électroniquesBoundary-scan, défini dans le standard IEEE Std.-1149.1

Page 8: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Vérifications finales

DRC : Design Rules CheckLVS : Layout Versus Schematic

Page 9: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Niveaux de description

● Transaction-Level Model● Register-Transfert Level :

– Comportemental

– dataflow

● Netlist (structurel)

Page 10: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Langages

● System-C (IEEE 1666)

– Testbench

– Dimensionnement de performances

● Verilog (IEEE 1076), VHDL (IEEE 1364)

– Simulation + synthèse

– Netlist

Page 11: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

SystemC

Page 12: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Page 13: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Page 14: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Page 15: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Syntaxic sugar :

Il y a 123 mots réservésdans verilog !

Page 16: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Page 17: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog

Ternaires :

Page 18: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog : combinatoire

Page 19: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Syntaxe Verilog : sequentiel

● ez : compteur modulo 2● q : compteur modulo 23, avec enable sur ez● ex : est affecté 2x, mais sous des conditions différentes

Page 20: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Petits exemples de codes en Verilog

Page 21: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Petits exemples de codes en Verilog

Page 22: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Petits exemples de codes en Verilog

Page 23: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 24: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

C-Element : comportemental

Page 25: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

C-Element : structures en transistors

Page 26: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

C-Element : structures en transistors

Page 27: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

C-Element : structures en transistors

Page 28: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Sboxes en cryptographie (sym.)

AES : Advanced Encryption Standard

NIST FIPS 197Included in ISO/IEC 18033-3 standard

Page 29: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 30: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 31: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 32: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 33: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 34: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

SubBytes = Substitute Bytes

Page 35: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Hardware view

Page 36: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Synthèse logique [1/2]

Page 37: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Synthèse logique

Page 38: ENS L3 : Systèmes numériques : de l'algorithme aux circuits
Page 39: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Decode – Permute - Encode

Page 40: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Algebraic structure

Sbox : a → b=a-1, then b → b'

Page 41: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Conclusion for AES

Page 42: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Pipeline de processeurs

● Example on 6502 processor (8 bit) :– download here : https://github.com/chenxiao07/vhdl-nes/tree/master

– read in file vhdl-nes-master/src/free6502.vhd lines 765 to 772

765

772

Page 43: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Pipeline de processeursExample on LEON processor (32 bit) :

see gaisler/leon3v3/iu3.vhd

Page 44: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Synthétisabilité

Page 45: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Assistance à la synthèse

● VHDL– attribute keep of clock_signal_name: signal is "true";

● Verilog– // synthesis attribute keep of clock_signal_name is true;

● Comme des scripts :– set_dont_touch [get_cells I_cdnuser_cts/S_CKsunderM_DLY_1 ]

Page 46: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Fibonacci

● U0 = 0

● U1 = 1

● U2 = U1+U0

● U3 = U2+U1

● ...

Page 47: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Fibonacci en SystemVerilog

Page 48: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Simulation

● vlog fibonacci.sv fibonacci_tb.sv

● vsim fibonacci_tb

Page 49: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Exercice d'arithmétique

Page 50: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Exercice d'arithmétique

Lemmas :

● (x+y) = (x | y) + (xy)● (xy) = (x | y) – (x & y)

Page 51: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

Exercice d'arithmétique

Lemmas :

● (x+y) = (x | y) + (xy)● (xy) = (x | y) – (x & y)

Otherwise, consider(a>>1) + (b>>1) + ((a%2 + b%2)>>1)

Page 52: ENS L3 : Systèmes numériques : de l'algorithme aux circuits

TD (Travaux Dirigés)

● Exercices :– http://perso.telecom-paristech.fr/~guilley/ENS/2016

1206/TP/

● Entrainement de type MOOC :– http://hdl.telecom-paristech.fr/