VHDL, verilog itu hanyalah model. Iyah model dari hardware. Jadi sebelum anda koding vhdl atau verilog, anda harus tahu apa yang dimodelkan.
Kalau block diagram itu apa?
Block diagram atau arsitektur itu merupakan representasi (apa sih beda representasi dengan presentasi ?) dari hardware. Representasi dari bagaimana blok-blok itu berhubungan, bagaimana IO-nya. Tapi bagaimana sekuen dan timing lebih detailnya, tidak diceritakan lebih eksplisit. Tapi lumayan kalau sudah ada block diagramnya.
Kalau flowchart itu apa?
Flowchart merupakan representasi dari algoritma, bagaimana flow dalam suatu algoritma. Tidak semua hardware dapat dimodelkan oleh flowchart, paling hanya state machine atau flow data/control dalam suatu rangkaian modul-modul.
Model matlab dan c merupakan model sekuen, bisa untuk referensi fungsional dari hardware yang akan dibuat. Referensi fungsional dari matlab dan c menjadi acuan dalam model hardware. Jika model matlab/c nya lengkap dan detail, misalnya bit precisision. Contohnya lebar bit mutiplier/adder sudah ditetapkan, maka model hardware pun terdefinisi jelas dan terbatas. Effort/problem dari desain model hardware pun dapat diperkirakan. Maka dianjurkan sebelum desain model hardware dengan HDL, dianjurkan untuk membuat model matlab/c secara lengkap dan detail. Dan harus diingat tidak ada tool/software yang dapat mengkonvert matlab/c ke HDL (CMIW).
Dari matlab/c kemudian ditulis kode HDL, tapi bukan berarti menulis kode HDL berdasar kode matlab/c yang ada. Matlab/c adalah model software, HDL adalah model hardware. HDL bukan model dari model software. Jadi dari model software ini diturunkan blok diagramnya/arsitektur, (dan flowchartnya) yang merepresentasikan hardware sesungguhnya (fisik).
Gampangannya:
Problem –> matlab/c –> arsitektur/blok diagram –> HDL (verilog/VHDL)
Kenapa sih harus pakai matlab/c ?
Misalkan problemnya : membuat image viewer pada VGA dengan sumber gambar jpg.
Anda tentu harus membuat matlab/c nya terlebih dahulu untuk menguji apakah benar algoritma anda dapat menghasilkan raw RGB dari gambar jpg? Kalau matlab/c anda berhasil mendekode jpg ke raw RGB, oke anda sudah benar2 ngerti algoritmanya. Jadi jika nanti ternyata fpga anda gagal, kemungkinan bukan salah di pemahaman algoritmanya, tapi mungkin salah di pembuatan blok diagramnya, mungkin salah di kode HDL-nya, atau mungkin salah di FPGA/Implementasinya.
Nah kalau anda tiba-tiba langsung main nulis kode HDL, itu berarti anda katrok!
- Pak Mul -
source : http://mulyantogoblog.wordpress.com/2008/05/16/pemodelan-katro/
