Sekuriti - Spesifikasi Sistem Digital

Melalui keamanan perangkat keras, penting untuk memahami bagaimana perangkat keras dibangun terlebih dahulu. Maka disini kita akan mengungkapkan secara singkat fundamentalnya desain logika digital. Kita berbicara tentang sistem digital. Dan kita akan bicara tentang desain atau sintesis sistem tersebut.

Di mulai dengan cara menentukan sistemnya, bagaimana menerapkan sistem digital, dan bagaimana kita dapat mengoptimalkan keterbatasan tersebut. Kita menggunakan contoh dari logika kombinasional dan sirkuit berurutan untuk menunjukkan prosedur dan konsep ini. Dan akhirnya kita akan membicarakannya kondisi "tidak peduli".

Ini adalah kondisi yang memainkan peran penting dalam hal sintesis dan optimalisasi sistem. Dan kondisi "tidak peduli" bisa juga menyebabkan kerentanan keamanan. Namun, bila digunakan dengan benar, kondisi tidak peduli, juga dapat memberi kita kesempatan unik untuk membangun sistem lebih aman, sistem yang lebih tepercaya. Suatu sistem dapat dilihat sebagai kotak hitam. Di mana kita memiliki sistem di sini, dibutuhkan input dan menghasilkan output. Dan pasangan input output, apa hubungan mereka, biasa kita sebut fungsionalitas.

Dan sistem sudah digunakan dengan model dunia nyata, diman dunia nyata dianggap dunia analog. Jadi yang ditangkap oleh angka, Baik sinyal input dan output, mereka adalah sinyal analog. Dan ini menangkap atau menjelaskan secara tepat apa terjadi di dunia nyata Anda, anggap dalam suatu diagram, sumbu x ini adalah waktunya.

Jadi apa yang kita lakukan adalah mendigitalkan semua sinyal ini. Sinyal digital dmhanya mengambil nilai diskrit. Kemudian berdasarkan apa sinyal-sinyal ini dapat berubah sesuai waktu t. Kita dapat menempatkan sistem sinyal menjadi dua kategori.

Sistem yang disinkronkan dan sistem digital yang tidak sinkron. Dalam sistem yang disinkronkan waktu, sinyal hanya dapat mengubah nilainya pada waktu diskrit yang biasanya periodik yang disebut 'Clock'. Di setiap clock, mereka mungkin atau mungkin tidak berubah. Dan kemudian selama posisi clock, sinyal tetap pada nilai konstan. Dan dalam versi asinkronisasi nilai input dan output dapat berubah kapan saja.

Kita lanjut antara perbedaan logika kombinasional dan logika sekuensial. Jadi dalam logika kombinasional, setiap kali Anda mengambil kombinasi input yang rata, Anda selalu memiliki output yang sama. Tidak peduli berapa kali Anda menjalankan sistem dan saat Anda memasukkan input dengan logika kombinasional maka output sama. Tetapi untuk sistem berurutan, input dan pasangan output mungkin tidak unik, yang berarti untuk input yang sama dengan output Anda mungkin tidak sama, mungkin berbeda.

Jadi mengapa demikian? Itu karena di dalam sistem sekuensial, ada unit yang disebut elemen memori. Output tergantung pada input, dan nilai saat ini dari unit memori, yang berarti logika kombinasional di dalam rangkaian sekuensial akan mengambil input dari output primer, dan juga secara internal, dari unit memori. Dan kita menggunakan ini untuk mengevaluasi apa yang akan menjadi output. Dan kemudian, itu akan memperbarui unit memori.

Jadi sekarang kita bicara tentang bagaimana caranya tentukan sistem digital. Spesifikasi suatu sistem adalah deskripsi fungsi dan karakteristik lainnya yang diperlukan untuk penggunaannya. Jadi, ketika orang menentukan sistem digital, biasanya mereka pergi dari level tinggi ke level rendah, atau level biner. Dan kami telah menyebutkan tentang sistem. Biasanya mereka mengambil input dari dunia nyata. Dan dunia nyata adalah analog. Jadi langkah pertama yang perlu kita lakukan adalah kita perlu mengubah sinyal analog ini menjadi digital. Dan terkadang untuk sinyal digital, kita masih harus melakukan encoding. Jadi ini adalah pengkodean input dan saat itulah output sistem.

Output akan mengumpan balik ke kata sebenarnya. Kita juga ingin melakukan encoding. Jadi setelah perhitungan, kita mendapat keluaran biner dan kemudian perlu mengonversi kembali ke kata aslinya. Bisa digital, bisa analog. Dan di tengah, kita perlu menentukan bagaimana kita bisa mendapatkan output dari input. Itu yang kita sebut fungsi Boolean. Fungsi ini menentukan, memberi input, apa yang akan menjadi output. Dan biasanya, fungsi Boolean ini akan direpresentasikan sebagai tabel kebenaran untuk logika kombinasional. Atau kadang-kadang kita sebut tabel transisi state atau grafik transisi keadaan.

Ini digunakan kemudian untuk model sistem sinkronisasi. Jadi mari kita lihat contoh kecil untuk dilihat bagaimana kita dapat menentukan sistem digital. Jadi kita ingin merancang sistem, itu akan memberi tahu Anda apakah satu bulan, satu bulan memiliki 31 hari atau tidak. Jadi kita memikirkannya, Untuk sistem ini, misalnya inputnya adalah 12 bulan dalam setahun. Jadi kita menulis spesifikasi sistem tingkat tinggi.

Input x dapat pergi ke dari Januari hingga Desember. Cara mana yang akan disajikan oleh angka desimal dari 1 hingga 12. Keluaran akan mengetahui apakah ini bulan memiliki 31 hari atau tidak. Jadi kita bisa mewakili ini dengan bit z tunggal 0 atau 1, dan 1 berarti memiliki 31 hari dan 0 berarti tidak memiliki 31 hari. Dan fungsi dari sistem ini dapat diwakili oleh langkah yang disebut fungsi langkah.

Ketika x adalah 2, 4, 6, 9, atau 11. Ini berarti ketika x adalah Februari, April, Juni, September, atau November tidak akan memiliki 31 hari. Pada bulan-bulan lain, itu akan memiliki 31 hari. Dan kita bisa dengan mudah menggambar untuk mewakili informasi yang sama. Input x berlaku mulai Januari sampai Desember. Dan kemudian output z memberitahu Anda bahwa bulan mana yang memiliki 31 hari. Bulan mana yang tidak memiliki 31 hari. Dan ini adalah spesifikasi sistem tingkat tinggi, dan sebelum kita dapat merancang sistem ini, kita perlu mengonversi spesifikasi sistem tingkat tinggi, spesifikasi sistem tingkat rendah.

Dan dengan level rendah, kita berbicara tentang level biner. Maksudku, sistem dengan input x memiliki 12 nilai berbeda, 12 nonces berbeda. Dan untuk mewakili 12 nilai berbeda yang kita butuhkan empat bit. Itu sebabnya bit input akan pergi dari x3, x2, x1, ke x0. Dan output hanya memiliki dua kemungkinan, 0 atau 1. Jadi hanya ada satu bit untuk output. Jadi sekarang kita konversikan ke tabel kebenaran sebelumnya yang merupakan tabel kebenaran di tingkat biner.

Jadi x nantinya pada tingkat tinggi beralih dari Januari hingga Desember. Maka output yang memberitahu Anda apakah z ini memiliki 31 hari atau tidak 31 hari. Dan di tengah kita lihat input pengkodean, tempat kita menggunakan pengkodean Biner.

Jadi Januari, yang 1 dikodekan sebagai 0, 0, 0, 1. Dan kemudian April yang 4 dikodekan sebagai 0, 1, 0, 0 yang merupakan biner 4. Jadi langkah selanjutnya yang kita butuhkan lakukan di sini adalah mencoba mencari tahu apa yang akan menjadi fungsionalitas.

Dan ingat sebelum kita menulis fungsi sebagai fungsi langkah. Dan sekarang karena kita telah turun ke bawah level, atau deskripsi level biner. Jadi, kita perlu memikirkan bagaimana cara fungsi ini di tingkat Boolean, di tingkat yang lebih rendah.

Jadi, apa yang kita lakukan adalah kita melihatnya input, input dan output empat bit. Dan ini adalah fase desain. Jadi kita ingin menyatakan output sebagai fungsi Boolean dari input. Dan dengan mengamati, kita melakukan segala macam teknik optimasi dalam hal ini output z. X3 ini melengkapi, kali x0, ditambah x3, kali x0 melengkapi, yang sama dengan x3, eksklusif atau, dengan x0. Yang berarti bahwa setiap kali x3 dan x0, mereka berbeda output z akan menjadi 1. Setiap kali mereka sama, output akan menjadi 0. Misalnya 0 1 memberi Anda 1, 0 0 beri 0, 0 1, beri Anda satu, dan 1 0 beri Anda 1. Setiap kali mereka sepakat satu sama lain, 1 dan 1, itu memberi Anda 0.