• Tidak ada hasil yang ditemukan

PERCOBAAN IV RANGKAIAN LOGIKA SEKUENSIAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERCOBAAN IV RANGKAIAN LOGIKA SEKUENSIAL"

Copied!
11
0
0

Teks penuh

(1)

PERCOBAAN IV 

RANGKAIAN LOGIKA SEKUENSIAL 

TUJUAN 

1. Mengerti perbedaan perilaku antara latch dan flip‐flop.  2. Mendesain sekuensial rangkaian untuk implementasi didalam FPGA.  3. Mengenal dan memahami cara menggunakan hierarki dalam desain rangkaian 

4. Mengenal  dan  memahami  cara  menggunakan  FPGA  sebagai  prototype  system  untuk  memverifikasi fungsi rangkaian. 

PERSIAPAN 

Pelajari  kembali  bahan  kuliah  anda  mengenai  rangkaian  logika  sekuensial.  Pelajari  juga  keseluruhan  petunjuk  praktikum  untuk  modul  rangkaian  logika  sekuensial  ini.Kerjakan  tugas  pendahuluan dan kumpulkan sesuai ketentuan yang berlaku. 

Bawa  rangkaian  hasil  percobaan  anda  pada  modul  3.  Jika  belum  selesai  atau  masih  ada  kesalahan, selesaikan di rumah. 

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 

(2)

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. 

TUGAS PENDAHULUAN 

1. Buatlah tabel keadaan dan nilai masukan dari BCD counter dengan memanfaatkan table  yang berada di akhir modul ini! Lihat bagian awal percobaan3a untuk spesifikasi system  yang akan dibangun.  2. Buatlah K‐map untuk masukan D Flip‐Flop dengan memanfaatkan table yang berada di  akhir  modul  ini,  kemudian  minimisasikan  sehingga  mendapatkan  persamaan  POS/SOP  yang minimum! 

3. Buatlah  rangkaian  BCD‐counter  dan  divide  by  N  anda  di  rumah  dengan  mengikuti  petunjuk praktikum percobaan3a dan percobaan3b!!   • Upload file anda ke ftp labdasar folder PraktikanSisDig, buat folder baru didalamnya  dengan nama kelompokxx(xx diisi dengan kode kelompok anda,mis A1)  4. Jelaskan tentang latch dan D Flip‐Flop! 

PERCOBAAN 

PERALATAN YANG DIGUNAKAN 

• Komputer/PC yang telah terinstal program Quartus II 6.0  • Osiloskop 

• FPGA  development  board,  tipe  ALTERA  UP2  atau  DE1  beserta  perlengkapannya  yang  meliputi: 

a. Board FPGA tipe UP2 

b. Catu daya+ kabel dan konektor tambahan 

c. Kabel downloader ‘ByteBlaster II’   

(3)

PROSEDUR PERCOBAAN 

Untuk  tahapan  percobaan  anda  akan  mendesain  dan  menguji(dalam  simulasi)  sebuah  BCD  counter yang dapat di‐cascade dan sebuah divide‐by‐N counter. 

PERCOBAAN 4A: Mendesain Dan Mensimulasikan BCD Counter  

Kita akan mendesain BCD counter 16‐bit menggunakan 4 buah D flip‐flop. Dalam kasus ini, anda  akan  menggunakan  primitive  Altera  DFFE  yang  memiliki  3  masukan  pengendali  utama.  Yang  pertama  masukan  Clock  Enable(ENA)  dimana  DFF  hanya  dapat  bergerak  ke  state  selanjutnya  ketika ENA=1. Jika ENA=0 DFF akan tetap pada statenya saat ini.  

Yang kedua masukan CLRN dimana ketika CLR=’0’ DFF akan menghasilkan keluaran Q=’0’.   Yang ketiga adalah masukan PRN dimana ketika PRN=’0’ DFF akan menghasilkan keluaran Q=’1’.    Dengan menggunakan 4 DFF, kita memiliki 16 state yang bisa digunakan. Untuk BCD counter ini  kita  hanya  memakai  10  state  untuk  menampung  keluaran  0‐9,  sedangkan  sisanya  tidak  digunakan sehingga program kita harus dirancang untuk tidak akan pernah masuk kedalam state  sisa tersebut.   PRN CLRN D ENA Q DFFE inst1   Gambar 1 : DFF yang akan digunakan pada blok BCD counter  Prinsip kerja rangkaian ini sederhana, pulsa yang melalui kaki CLK akan diteruskan ke masukan  clock dari setiap DFF sehingga mereka akan bekerja secara bersamaan. Selama inpu CE=’1’ dan  sinyal  clock  pada  DFF  tersedia  maka  rangkaian  BCD  akan  selalu  bergerak  ke  state  berikutnya.  Jika  state  mencapai  angka  perhitungan  9  dan  CE=’1’,  maka  state  akan  berputar  ke  posisi  0  dengan sambil menghasilkan pulsa pada pin TC hanya pada saat itu. Jika CE=’0’, maka rangkaian  BCD  counter  kita  akan  tetap  pada  state  sekarang  hingga  kembali  CE=’1’.  Jika  CLR=’1’  maka  rangkaian BCD counter akan kembali ke state 0/reset.  

  Tabel 1 : Konfigurasi pin input/output yang digunakan pada blok BCD counter 

PROSEDUR PERCOBAAN: 

(4)

1. Buatlah  sebuah  proyek  Quartus  baru  dengan  nama  BCD_CNT.  Import  pin  assignment standar yang kita gunakan. 

2. Buatlah sebuah skematik diagram baru yang diberi nama BCD_CNTR. Anda akan  mendesain  rangkaian  BCD  counter  dalam  file  ini  dan  menggunakannya  untuk  membuat sebuah blok rangkaian. 

3. Tempatkanlah  empat  DFFE  flip‐flop  kedalam  file  skematik  BCD_CNTR  anda,  tambahkan  pin  masukan/keluaran  yang  dinamakan  seperti  pada  table  1  sebelumnya dan tambahkan gerbang logika yang diperlukan. Karena flip‐flop ini  sudah  mengimplementasikan  clock  enable,  kita  tidak  perlu  membuat  lagi.  Kita  hanya  butuh  menghubungkan  bersama‐sama  semua  masukan  flip‐flop  dengan  pin input CE. 

 

b. Mensimulasikan Project BCD Counter 

1. Pertama  anda  akan  melakukan  simulasi    secara  fungsional  counter  anda  dan  verifikasi  apakah  sudah  benar,  debug  dan  modifikasi  seperlunya.  Untuk  melakukannya,  set  BCD_CNTR  sebagai  top‐level  entity  dengan  mengklik  tab  Hierarchy, kemudian klik kanan pada Compilation Hierarchy, pilih Setting… dan  didalam General, set top level entity sebagai BCD_CNTR. 

2. Compile  project  anda,  kemudian  buka  Simulator  Tool.  Set  menjadi  Fungsional  dan  klik  Generate  Functional  Simulation  Netlist.  Kemudian,  pilih  Open  untuk  membuka  jendela  waveform  dan  gunakan  Node  Finder[set  filter  menjadi  Pins:(Unassigned)]  untuk  memilih  seluruh  pin  input/output  BCD_CNTR.  Kemudian set CE menjadi 1 selama simulasi. Set CLK sebagai 10ns clock dan set  CLR ke nilai 1 untuk 10ns pertama dan 0 untuk berikutnya. Save waveform anda  dan lakukan simulasi.  3. Setelah anda yakin counter anda bekerja dengan baik, gunakan untuk membuat  hierarchy block yang diberi nama BCD_CNTR.  4. Print skematik BCD counter anda untuk bahan laporan anda. 

5. Download  skematik  CNTR_TEST  dari  halaman  web  praktikum.  Anda  akan  menggunakan  skematik  ini  untuk  menguji  blok  counter  anda  dalam  koneksi  cascade.  Tambahkan  skematik  tersebut  ke  project  anda  dan  set  sebagai  top  level entity. Compile dan buatlah waveform simulasi yang akan mentest counter  dimana  dia  akan  melakukan  perhitungan  0‐99  dan  kembali  lagi  ke  0.  Setelah  disimulasikan,  ubah  skala  waveform  simulasi  sehingga  seluruh  kemungkinan  operasi bisa terlihat, print screen dan simpan untuk bahan laporan anda. 

(5)

  Gambar 2 : Skematik pada file CNTR_TEST     PERCOBAAN 4B: Mendesain dan Mensimulasikan Divide by N Counter  Disini anda akan mendesain counter divide‐by‐N dimana N = 25175 untuk board UP2, sedangkan  untuk board DE1 gunakan salah satu nilai yaitu N = 24000, N = 27000, atau N = 50000.(Nilai ini  akan  berguna  pada  percobaan  berikutnya  untuk  membuat  delay  1ms  didasarkan  pada  FPGA  board dengan clock internal).  

Pada  prinsipnya  rangkaian  ini  akan  menghitung  banyaknya  pulsa  CLK  yang  masuk  pada  blok  counter  16‐bit,  jika  jumlah  pulsa  yang  masuk  =N  maka  counter  akan  mengeluarkan  nilai  HIGH  selama 1 pulsa dan me‐reset blok counter sehingga N=0.  

PROSEDUR PERCOBAAN: 

a. Membuat Project DIVBY_N 

1. Buatlah  sebuah  project  baru  dengan  nama  DIVBY_N.  Import  pin  assignment  standar untuk praktikum ini. Buatlah skematik baru bernama DIVBY_N. 

2. Download  file  COUNT16.ZIP  dari  halaman  web  praktikum  dan  ekstrak  2  file  didalamnya(COUNT16.V  dan  COUNT16.BSF)  ke  direktori  proyek.  Ini  adalah  file  yang berisi symbol dan desain untuk blok COUNT16. 

3. Tempatkan satu blok counter COUNT16 dengan klik kanan pada skematik, pilih  Insert Symbol… dan browse untuk mencari COUNT16.BSF. Ini adalah counter 16  bit dengan masukan reset asynchronous. 

4. Tambahkan  sebuah  kaki  masukan,  dua  buah    keluaran,  dan  logic  yang  diperlukan  untuk  memaksa  terjadinya  reset  sesuai  dengan  implementasi 

(6)

counter  modulus‐2000.  Sinyal  reset  ini  juga  akan  digunakan  sebagai  keluaran  dari counter anda. 

5. Hubungkan  masukan  counter  anda  ke  kaki  masukan  CLK0  dan  hubungkan  keluaran counter dengan HEX1[0] dan GPIO[16] . 

6. Dibawah terdapat gambar referensi untuk Divide‐by‐2000 counter, pelajari dan  ubah  rangkaian  tersebut  seperlunya  untuk  nilai  N  yang  anda  perlukan  (N=25175).  

7. Garis  tebal  yang  terlihat  pada  gambar  4  adalah  BUS.  Untuk  menggunakannya  Pilihlah  ikon  Orthogonal  Bus  Tools  yang  ada  di  sebelah  ikon  Orthogonal  Node  Tools yang selama ini kita pakai. Dalam penggunaan BUS yang disatukan dengan  NODE,  kita  perlu  menspesifikasikan  nama  pin  yang  terdapat  pada  BUS(mis  Q[15..0]ÆBUS Q memiliki 16 kabel) dan NODE(mis Q15 Æ Node tsb terhubung  dengan  kabel  Q15  pada  BUS  Q)  untuk  menandai  bahwa  NODE  tersebut  terhubung pada elemen BUS yang mana. Untuk menspesifikasikannya klik kanan  pada  BUS/NODE  yang  akan  diset,  kemudian  pilih  properties.  Pada  kolom  General anda dapat menuliskan nama NODE 

  Gambar 4 : Contoh rangkaian Divide by N, N=2000 

(7)

8. Simulasikan  secara  fungsional  desain  anda  menggunakan  clock  100MHz  untuk  mensimulasikan  CLK masukan dan masukkan pada laporan anda hasil simulasi  yang  memperlihatkan  satu  siklus  lengkap  untuk  keluaran  output.  Untuk  mendapatkan  pengukuran  waktu  yang  akurat  masukkan  TimeBar  kedua(klik  kanan dan pilih Insert Time Bars…) dan tempatkan pada titik yang sesuai untuk  memperlihatkan waktu yang diperlukan untuk satu siklus keluaran counter.  9. Catat hasil percobaan pada BCL anda.    PERCOBAAN 4C: Mengaplikasikan Rangkaian BCD Counter  Untuk pengujian ini kita akan menambahkan rangkaian bcd‐to‐7‐segment yang sudah kita buat  pada  modul  3  sehingga  anda  dapat  melihat  secara  langsung  performa  dari  rangkaian  BCD  counter yang anda buat.  

a. Setting Pengujian 

1. Kopi  file  Bcd_7seg.bdf  dari  modul  3  kedalam  folder  project  BCD  Counter,  pilih  FileÆOpen  dan  buka  file  tersebut.  Kemudian  pilih  FileÆCreate/UpdateÆCreate Symbol Files for Current File. 

2. Tambahkan  2  simbol  bcd_7seg  kedalam  skematik  CNTR_TEST.bdf.  Ubah  rangkaian pada file CNTR_TEST.bdf dan Buatlah rangkaian seperti pada gambar  5 di halaman belakang 

3. Pada  saat  merancang  bcd‐to‐7‐segment  dan  BCD  counter  kita  menggunakan  asumsi  seluruh  keluaran  dan  masukan  adalah  active  HIGH,  untuk  itu  berikan  inverter  seperlunya  pada  posisi  masukan/keluaran  yang  tidak  sesuai  dengan  asumsi kita sebelumnya. 

4. Untuk  input  kita  akan  menggunakan  push  button  untuk  CLK  dan  DIP‐switch  untuk  yang  lainnya,sedangkan  output  menggunakan  7‐segment  display.  Cek  penggunaan pin FPGA apakah sudah sesuai. Compile program anda. 

5. Setelah  selesai  perlihatkan  dahulu  kepada  asisten  skematik  dan  pin  assignment yang anda buat!!!  

6. Download  program  anda  kedalam  board  FPGA  dan  coba  mainkan  tombol  atau  switch  yang  digunakan  pada  program  ini.  Apakah  angka‐angkanya  cepat  berubah?? Mengapa?? 

7. Catat hasil percobaan pada BCL anda.   

(8)

PERCOBAAN 4D: Mengaplikasikan Rangkaian Divide By­N Counter 

a. Setting Pengujian 

1. Bukalah project DIVBY_N yang sudah anda buat. 

2. Pakailah  kabel  jumper  pada  pin  GPIO[16]  dan  GND,  kemudian  hubungkan  osiloskop dengan kabel jumper tersebut untuk melihat keluaran rangkaian.  3. Setelah  selesai  perlihatkan  dahulu  kepada  asisten  skematik  dan  pin 

assignment yang anda buat!!!  4. Download program anda kedalam board FPGA dan lihat keluaran osiloskop  5. Catat hasil percobaan pada BCL anda.  Setelah percobaan selesai, simpan seluruh file modul 4 ini karena akan digunakan kembali pada  modul 5. Jika belum selesai, maka selesaikan di rumah. 

.MENGAKHIRI PERCOBAAN 

1. Sebelum  keluar  dari  ruang  praktikum,  rapikan  meja  praktikum.  Bereskan  kabel  dan  matikan komputer, osiloskop, generator sinyal, dan power supply DC. Cabut daya dari  jala‐jala ke kit FPGA dan letakkan kembali pada tempat semula.  

2. Periksa  lagi  lembar  penggunaan  meja.  Praktikan  yang  tidak  menandatangani  lembar  penggunaan  meja  atau  membereskan  meja  ketika  praktikum  berakhir  akan  mendapatkan potongan nilai sebesar minimal 10. 

3. Pastikan asisten telah menandatangani catatan percobaan kali ini pada Buku Catatan  Laboratorium  anda.  Catatan  percobaan  yang  tidak  ditandatangani  oleh  asisten  tidak  akan dinilai. 

   

(9)
(10)

Tabel keadaan dan nilai masukan BCD counter 

(11)

 

Karnaugh Map untuk masukan D‐flip‐flop 

Gambar

Tabel keadaan dan nilai masukan BCD counter 

Referensi

Dokumen terkait