11
MK Perancangan Sistem Digital. 1 Modul 1. Pendahuluan Modul 1. Pendahuluan. Silabus Kuliah : 1. Pendahuluan 2. Diagram alir perancangan. 3. Contoh rancangan: Counter. 4. Verilog Syntax dan Semantics 5. Gate Level Modeling 6. Modul komponen yang dirancang pengguna. 7. Operator Verilog 8. Intruksi penting 9. Procedural Coding 10. Procedural Timing Control 11. Subrutin 12. Pembuatan TestBench 13. Memory dan Finite State Machine. 14. Optimasi gerbang digital. eko ihsanto

PSD Modul 1

Embed Size (px)

DESCRIPTION

Elektronika digital

Citation preview

MK Perancangan Sistem Digital. 1Modul 1. Pendahuluan

Modul 1. Pendahuluan.

Silabus Kuliah :

1. Pendahuluan

2. Diagram alir perancangan.

3. Contoh rancangan: Counter.

4. Verilog Syntax dan Semantics

5. Gate Level Modeling

6. Modul komponen yang dirancang pengguna.

7. Operator Verilog

8. Intruksi penting

9. Procedural Coding

10.Procedural Timing Control

11.Subrutin

12.Pembuatan TestBench

13.Memory dan Finite State Machine.

14.Optimasi gerbang digital.

eko ihsanto

MK Perancangan Sistem Digital. 2Modul 1. Pendahuluan

1.1. Definisi Verilog HDL.

Verilog adalah salah satu HDL (Hardware Description Language), yaitu bahasa

penulisan program yang digunakan untuk mewakili sistem digital, misalnya mikrokontroler,

decoder, memory atau hanya flip-flop dan gerbang digital sederhana. Ringkasnya, dengan

menggunakan HDL seseorang dapat menjelaskan rangkaian digital pada level apapun, mulai

dari gerbang digital sederhana seperti AND, OR, NOT, sampai rangkaian digital amat

kompleks seperti mikrokontroler.

Berikut ini adalah contoh sederhana fungsi digital yang diwakili oleh persamaan

boolen, gerbang atu rangkaian digital dan kode HDL menggunakan verilog seperti berikut ini.

module circuit ( output f,input x, y, z );

assign f = (x | (y & ~z)) & ~ (y & z);

endmodule

Gambar 1.1. Contoh representasi fungsi digital dengan 3 macam cara.

Verilog merupakan HDL yang dipakai luas di Amerika Serikat dan Asia untuk

industri perancangan sistem digital. Verilog memungkinkan kita untuk perancangan sistem

pada beragam level seperti level perilaku sistem (behavior level), RTL (register transfer

level), level AND, OR, NOT (gate level) bahkan level saklar transistor (switch level). Verilog

memungkinkan para disainer digital untuk mengekspresikan disain mereka dengan kontruksi

perilaku rangkaian, menunda rincian implementasi pada tingkat akhir perancangan.

Banyak insinyur yang ingin mempelajarinya, umumnya pertanyaan mereka adalah,

berapa waktu yang dibutuhkan untuk mempelajarinya ? Jawabannya, mungkin kurang dari 1

pekan, seandainya kita telah menguasai salah satu dari bahasa pemrograman software seperti

bahasa C misalnya.

eko ihsanto

MK Perancangan Sistem Digital. 3Modul 1. Pendahuluan

1.2. Urutan Perancangan.

Dalam perancangan sistem digital, terdapat 2 pendekatan, yaitu bottom up dan top

down. Pendekatan bottom up biasa dipilih pada metode tradisional, dimulai dari perancangan

tingkat gerbang (gate level) kemudian digabungkan dengan modul-modul lainnya menjadi

sistem yang lebih kompleks. Sedangkan pendekatan top down sebaliknya, dimulai dari garis

besar rancangan, diuji secara global kemudian dilanjutkan dengan pengujian setiap blok,

lebih rinci sampai yang paling rinci.

Walaupun top down lebih disukai dan lebih realistis untuk dilakukan, kenyatannya

yang dilakukan disainer pada umumnya adalah menggabungkan 2 pendekatan ini. Berikut ini

adalah contoh pendekatan top down. Dari sistem secara utuh sampai rincian tiap komponen.

Gambar 1.2. Flowchart pendekatan Top Down.

Awalnya didefinisikan spesifikasi sistem digital yang diinginkan, misalnya

merancang mikrokontroler dengan instruction set, tipe memory dan kelengkapan input/output

device tertentu. Kemudian ditentukan blok diagram sistem untuk mendukung spesifikasi tadi.

Selain menggambarkan hubungan setiap blok dengan blok lainnya, diagram ini juga harus

menyertakan fungsi dari tiap blok termasuk bentuk input dan outputnya. RTL adalah Register

eko ihsanto

MK Perancangan Sistem Digital. 4Modul 1. Pendahuluan

Transfer Level, setiap blok dirinci menjadi komponen-komponen setingkat register. Dan

seterusnya. Berikut ini adalah contoh perancangan dalam beragam level.

Gambar 1.3. Contoh Spesifikasi (kiri dan bawah) dan High Level Design (Kanan)

Gambar 1.4. Contoh Low Level Design dari CLB pada gambar 1.3 kanan.

eko ihsanto

MK Perancangan Sistem Digital. 5Modul 1. Pendahuluan

Gambar 1.5. Contoh RTL (Register Transfer Level).

Gambar 1.6. Contoh Timing Analysis untuk Verifikasi fungsional.

eko ihsanto

MK Perancangan Sistem Digital. 6Modul 1. Pendahuluan

Gambar 1.7. Contoh Place and Route.

Gambar 1.8. Kaitan antar tahapan perancangan.

1.3. Abstraksi Perancangan.

Secara ringkas, hanya ada 3 level abstraksi pada perancangan sistem digital, yaitu

- Level Perilaku (Behavioral Level)

- Level Register (Register Transfer Level)

- Level Gerbang (Gate Level).

Pada Behavioral Level, dideskripsikan sistem dengan algoritma serentak (concurrent

algorithms). Setiap algoritma merupakan operasi serial atau berurutan. Function, Tasks dan

Always adalah elemen utamanya. Belum dipikirkan seperti apa realisasi disain strukturalnya.

Sedangkan RTL dan Gate Level dapat dilihat pada gambar 1.5 dan 1.1

eko ihsanto

MK Perancangan Sistem Digital. 7Modul 1. Pendahuluan

Berikut ini adalah contoh kode dalam verilog dan kaitannya dengan gambar

rangkaian.

Gambar 1.9. Beragam kode dalam verilog dan rangkaian digitalnya.

eko ihsanto

MK Perancangan Sistem Digital. 8Modul 1. Pendahuluan

module seven_seg_decoder ( output [7:1] seg,input [3:0] bcd,input blank );

reg [7:1] seg_tmp;always @*

case (bcd)4'b0000: seg_tmp = 7'b0111111; // 04'b0001: seg_tmp = 7'b0000110; // 14'b0010: seg_tmp = 7'b1011011; // 24'b0011: seg_tmp = 7'b1001111; // 34'b0100: seg_tmp = 7'b1100110; // 44'b0101: seg_tmp = 7'b1101101; // 54'b0110: seg_tmp = 7'b1111101; // 64'b0111: seg_tmp = 7'b0000111; // 74'b1000: seg_tmp = 7'b1111111; // 84'b1001: seg_tmp = 7'b1101111; // 9default: seg_tmp = 7'b1000000; // "-" for invalid code

endcase

assign seg _ blank ? 7’b0000000 : seg_tmp;

endmodule

eko ihsanto