METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Hardware Verification dengan menggunakan Higher Order Logic (HOL) oleh Budi Rahardjo Mata Kuliah “Metoda Formal” – EL 688 Pasca Sarjana – Teknik Elektro, ITB
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Untuk para insinyur … Bob Colwell “Engineering, Science, and Quantum Mechanics,” IEEE Computer, March 2002: “Generally speaking, most engineers are comfortable with using theories and ideas that neither they nor anyone else completely understand”
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – HW Verification Kebutuhan dalam hardware verification –Formal language untuk menjelaskan behaviour dan proposition tentang desain tersebut. Expressive, concice notation Well-understood & simple semantics –Deductive calculus untuk membuktikan proposition. Logically sound dan cukup powerful.
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Penggunaan higher-order logic Keuntungan –Tidak perlu mengembangkan bahasa baru (formal language) –Sudah ada landasan matematiknya –Sudah ada tools untuk membantu
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Step dalam verification 1.Menuliskan formal specification S untuk menjelaskan behaviour dari device 2.Menuliskan specification untuk setiap komponen primitif. (Behaviour real device) 3.Mendefinisikan expression D yang menjelaskan behaviour dari device D = P 1 + … + P n dimana + merupakan operator composition P 1, …, P n adalah instance dari device [2] 4.Membuktikan bahwa D betul (correct) terhadap specification S D satisfies S
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Hierarchy verification Metoda dapat diaplikasikan secara hierarchy –Spesifikasi dari “primitive components” pada sebuah level dapat menjadi specification dari level berikutnya
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Keterbatasan HW verification Correctness proof tidak dapat menjamin bahwa device tidak malfunction –Disain sudah benar –Behaviour specification salah (misal terlalu kompleks) –Defect di proses fabrikasi –Belum terintegrasi dengan CAD untuk layout
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Abstraction vs accuracy Abstraction digunakan untuk menangani complexity Semakin akurat model yang dibuat semakin dekat dengan dunia nyata. Namun menjadi semakin kompleks. –CMOS: ignore transistor size ratio in behavioural
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Tools Beberapa tools yang sanggup menangani higher-order logic –HOL –PVS [yang masih aktif dlm. riset] –Isabelle
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Pengenalan HOL Banyak versi HOL Berbasis kepada HOL yang dikembangkan oleh Mike Gordon (Cambridge), yang berbasis kepada Church’s simple type theory
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Pengenalan HOL [2] Every term of the logic has an associated logical type
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Specifying hardware behaviour S[ a,b,c,d ] = T if the values a, b, c, and d could occur simultaneously on the corresponding external wires of the device Dev F otherwise Dev a bd c
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Specifying hardware behaviour Spesifikasi dengan terms dari values yang dapat diobservasi secara external Tidak ada perbedaan antara input dan output Dalam contoh, variabel yang digunakan memiliki type bool, yaitu two-valued set of boolean logic level
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Xor (i 1,i 2,o) = (o = (i 1 = i 2 )) atau Xor (i 1,i 2 ) = (i 1 = i 2 ) Biasanya external wires memiliki sifat biderectional Tidak mendefinisikan delay Bisa membingungkan: output i 1, input o Rangkaian kombinasional
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Ntrans (g,s,d) = (g (d = s)) Source s dan drain d bersifat bidirectional Jika gate g memiliki nilai T maka s dan d harus memiliki nilai boolean yang sama (dengan kata lain source dan drain terhubung) N-type transistor sd g
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Rangkaian Sekuensial Menggunakan fungsi yang memodelkan urutan values dalam urutan waktu Waktu direpresentasikan dalam bilangan natural (dalam higher order logic memiliki type num) f:num f(t) f adalah signal
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – D-type flip-flop Rise ck t = ck(t) ck(t+1) Dtype (ck,d,q) = t. q(t+1) = (Rise ck t d t | q t ) Waktu (diskrit) direppresentasikan dengan bilangan natural Variabel ck, d, dan q adalah higher order variables dengan type num bool Dtype a ck q
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – Partial specification Tidak komplit. Misal Dtype tadi pada waktu awal atau q(0) belum terdefinisi Dev( i,o ) = (P[ i ] ( o = E[ i ])) P[ i ] merupakan kondisi, jika P[ i ] = F maka implikasi (P[ i ] ( o = E[ i ])) akan tetap terpenuhi untuk semua nilai o
METODA FORMAL: Higher-Order Logic – Budi Rahardjo, Institut Teknologi Bandung – sd g