You are on page 1of 7

RANGKAIAN LOGIKA SEKUENSIAL / MODUL IV

Praktikan: Nicholas Melky S Sianipar (13206010)


Asisten: Bryan (13204152)
Waktu Percobaan: 11 November 2008
EL2195 – Sistem Digital
Laboratorium Dasar Teknik Elektro
Sekolah Teknik Elektro dan Informatika – ITB

Abstrak

Pada praktikum ini praktikan mencoba mendesain rangkaian sekuensial BCD counter dan
menghubungkannya dengan decoder BCD-to-7-segmen untuk diimplementasikan di dalam
FPGA. Setelah perancangan dibuat, rangkaian verifikasi fungsinya menggunakan simulasi
fungsional. Apabila fungsi telah sesuai dengan yang diharapkan, maka program dapat
didownload ke FPGA dan dilakukan pencobaan terhadap flex switch atau button sebagai
input dan hasil tampilan pada 7-segmen sebagai output. Pada praktikum ini praktikan
juga mencoba memahami perbedaan Flip-flop dan switch dengan menggunakan analisis
fungsional dan timing.

1 Pendahuluan

Pada praktikum ini praktikan akan mencoba merancang rangkaian digital pada software
Altera Quartus II 6.0. Untuk mendesain rangkaian dan mencobanya pada FPGA praktikan
harus mengetahui prosedur percobaan yang mana prosedurnya sama dengan prosedur pada
percobaan modul II dan modul III. Urutan prosedur percobaan adalah : Pembuatan project
BCD counter dan DIVBY_N, Memasukan desain skematik atau VHDL, Kompilasi,
Pembuatan Netlist dan simulasi fungsional, Simulasi Timing, dan Memprogram ke dalam
FPGA. FPGA yang digunakan pada praktikum ini adalah FPGA EPF10K70RC240-4.

2 Dasar Teori
Dalam percobaan ini, ada dua prinsip rangkaian yang akan didesain. Yang pertama adalah
synchronous binary‐coded‐ decimal(BCD) counter dengan reset asynchronous dan
masukan clock enable untuk mengijinkan konter individu untuk dicascade kedalam multi‐
digit synchronous counter. Anda akan mendesain konter ini dari komponen flip‐flop dan
logika masukan. Anda juga akan mengkonversikan rangkaian ini kedalam blok hierarki
untuk mempermudah membuat banyak instances dari counter. Untuk menguji counter
anda, sebuah skematik akan digunakan sebagai test platform akan diberikan untuk anda.
Rangkaian kedua yang akan didesain adalah counter divide‐by‐N dimana N adalah suatu
bilangan konstan. Dalam kasus ini, anda akan mengimplementasikan counter ini
menggunakan counter primitive yang memberikan 16‐bit counter dengan synchronous
reset, dan hanya menambahkan logika untuk memaksa counter reset pada hitungan yang
diinginkan.
Dalam desain synchronous, usaha kita didasarkan pada asumsi bahwa clock timbul secara
simultan pada setiap flip‐flop. Walaupun kelihatannya mudah, sebenarnya memberikan
clock kesemua flip‐flop dengan delay yang dapat diterima tidak selalu mudah. Untuk
memfasilitasi hal ini, FPGA memiliki pin, buffer dan routing channel khusus.untuk
digunakan sebagai pengantar clock. Ketika mengerjakan desain synchronous, kita harus
memastikan bahwa sinyal clock kita menggunakan fasilitas tersebut.

Dalam percobaan ini, anda juga akan belajar tentang perbedaan dalam time‐based behavior
antara latch dan flip‐flop. Bit file untuk bagian eksperimen ini akan diberikan. Sebagai
persiapan, baca kembali pelajaran bagian D Latch dan flip‐flop.

3 Metodologi
Secara umum alur perancangan rangkaian digital dengan menggunakan FPGA dari
ALTERA dapat digambarkan seperti flowchart pada gambar dibawah ini:

Gambar 3-1 Flowchart umum proses perancangan digital


Gambar 3-2 Rangkaian Percobaan 4A BCD_CNTR dalam Skematik

Gambar 3-3 Rangkaian Percobaan 4A CNTR_TEST dalam Skematik


Gambar 3-4 Rangkaian Percobaan 4B DIVBY_N dalam Skematik

Gambar 3-5 Rangkaian Percobaan 4E FFvsLatch dalam Skematik

4 Hasil dan Analisis

Data hasil percobaan didapatkan sebagai berikut :


Gambar 4-1. Hasil Simulasi Fungsional Rangkaian Percobaan 4A BCD_CNTR

Clock Time = 10.0 ns


Gambar 4-2. Hasil Simulasi Timing Rangkaian Percobaan 4A CNTR_TEST

Clock Time = 10.0 ns


Dari data diatas dapat disimpulkan hasil output rangkaian sesuai dengan desain sekuensial
sekmatik BCD counter yang diinginkan. Yaitu, pada setiap rising clock edge keempat bit
tersebut mengalami suksesor (peningkatan senilai satu bit pada MSBnya yaitu pada Q1).
Dan juga pada saat CLR = 1, dapat dilihat bahwa keempat bit bernilai 0. Begitu juga pada
TC yang bernilai 1 pada saat nilai 4-bit 1001 (atau 9). Output dari TC pertama digunakan
sebagai input BCD counter kedua, sehingga apabila sudah terjadi satu cycle (1001 
0000) (TC 10), BCD counter kedua mengalami suksesor yang menyebabkan BCD
conter kedua memiliki nilai 10 x nilai BCD counter pertama. Kedua BCD counter menjadi
sebuah nilai integer desimal (basis 10).
Gambar 4-3. Hasil Simulasi Fungsional Rangkaian Percobaan 4B DIVBY_N

Clock Time = 100MHz


Dari data diatas dapat dilihat bahwa output TC bernilai 1 pada waktu = 151.75ns. Nilai ini
merupakan nilai N yang membagi waktu clock sebesar N (sesuai namanya DIVBY_N).
Pada skematiknya rangkaian dibuat apabila BUS memiliki nilai 0110101001000110 maka
output TC bernilai 1, dan output TC ini digunakan untuk mereset kembali counter 16 bit
yang menyebabkan counter ini memiliki cycle sebesar N.

Gambar 4-4. Hasil Simulasi Timing Rangkaian Percobaan 4C BCD_CNTR with BCD-to-7-segmen
Clock Time = 10.0 ns
Tabel 4-5. Hasil Pengimplementasian pada FPGA

Switch -1 Switch -2 Button OUTPUT


(Input CE) (INPUT CLR) (INPUT CLK)
1 0 1

1 0 1

1 0 1

1 0 1

0Switch terbuka 1Switch tertutup 1Button ditekan


Dari data diatas hasil pengimplementasian BCD counter with Decoder BCD to 7 segmen
sesuai dengan simulasi fungsionalnya. Namun apabila button ditekan penambahan nilai
BCD counter tidak tepat 1 pada bit MSBnya. Hal ini terjadi karena karena bouncing pada
button yang menyebabkan terjadi input beberapa kali.
Gambar 4-5. Hasil Simulasi Fungsional Rangkaian Percobaan 4E FFvsLatch

Gambar 4-6. Hasil Simulasi Fungsional Rangkaian Percobaan 4E FFvsLatch

Clock Time = 10.0 ns


Gambar 4-7. Hasil Simulasi Timing Rangkaian Percobaan 4E FFvsLatch

Clock Time = 10.0 ns


Dari data simulasi diatas, dapat disimpulkan perbedaan antara Flip-Flop dan Latch.
Keluaran Flip Flop (Bar1_1) terhadap CLK0 yaitu pada saat CLK0 Bar1_1
menghasilkan output sama dengan input Dnya (pada percobaan ini inputnya NOT Bar1_3).
Sedangkan selain dari CLK0 output Bar1_1 tetap. Keluaran Latch (Bar1_2) terhadap
CLK0 yaitu pada saat CLK0=1 (sehingga ENA=1) Bar1_2 menghasilkan output sama
dengan input Dnya (pada percobaan ini inputnya NOT Bar1_4). Sedangkan selain dari
CLK0=1/ ENA=1 output dari Bar1_2 tetap. Ouput Q Latch ketika ENA=1 dipengaruhi
oleh delay rangkaian maka outputnya juga terdapat delay yang dipengaruhi rangkaian
sesuai dengan tampilan timing simulation.

5 Kesimpulan

Peracangan rangakaian sekuensial dapat dilakukan pada FPGA baik menggunakan flip flop
maupun latch pada rangkaian skematiknya. Hasil perancangan Latch dan Flip Flop dapat
disimulasikan sehingga dapat diketahui bahwa Flip Flop bersifat edge-sensitive dan Latch
bersifat level-sensitive. Dengan menggunkan FPGA sebagai prototype system maka
rangkaian sekuensial dapat diverifikasi dengan menggunakan input button dan flex switch
serta output 7-segmen pada FPGA.

6 Daftar Pustaka

[1] Frank Vahid, Digital Design, Hal. 165-170, John Wiley & Sons Inc., California,
2007

[2] Z. Vranesic, Fundamentals of Digital Logic, Hal. 271-278, McGraw-Hill, New York,
2005

You might also like