Saturday, December 28, 2013

Jump Start RTL Project (Simulasi dan Sintesis) Menggunakan CMake

Dalam membuat project RTL, biasanya kita akan berhadapan dengan beberapa kebutuhan berikut:
  • Mixed language (Verilog/VHDL)
  • Scripting (Modelsim, Quartus, ISE, dll)
  • Multiple target (Altera, Xilinx, Artisan, dll.)
  • Repeatable process (design, simulation, synthesis, field testing, back to design, ..)
Untuk itu diperlukan environment project yang flexible dan mendukung kebutuhan diatas. Untuk memulai project RTL dengan environment flexible tersebut, bisa dicoba dengan menggunakan CMake:


Berikut struktur directoy-nya:


Environment tersebut dibuat menggunakan CMake. Untuk mulai menggunakannya, build dulu makefile-nya dengan CMake atau CMake-GUI (download dari http://www.cmake.org/cmake/resources/software.html).

Info selengkapnya dapat dibaca di: http://www.cmake.org/cmake/help/runningcmake.html

Quick Guide:
  1. Untuk menjalankan simulasi: make sim
  2. Untuk menjalankan simulasi dengan GUI (melihat waveform): make sim_gui
  3. Untuk menjalankan sintesis (otomatis memilih QUartus atau ISE): make syn
  4. Untuk mengubah target ke Altera, Xilinx, atau RTL model, modifikasi file /CMakeLists.txt, pada baris: set(TARGET "xilinx"), ganti "xlilinx" dengan "altera" atau "model"
  5. Untuk menambahkan desain Verilog, modifikasi file /src/CMakeLists.txt, pada baris: set(VERILOG_SYN_SRC_FILES buffer.v), tambahkan jadi set(VERILOG_SYN_SRC_FILES buffer.v file1.v file2.v), dan seterusnya.
  6. Untuk menambahkan desain VHDL, modifikasi file /src/CMakeLists.txt, pada baris: set(VHDL_SYN_SRC_FILES adder.vhd), tambahkan jadi set(VHDL_SYN_SRC_FILES adder.vhd file1.vhd file2.vhd), dan seterusnya.
  7. Untuk menambahkan Xilinx Core, modifikasi file /src/xilinx/CMakeLists.txt, tambahkan pada baris: set(XILINX_VERILOG_SYN_SRC_FILES ) untuk file Verilog, atau set(XILINX_VHDL_SYN_SRC_FILES ) untuk file VHDL.
  8. Untuk menambahkan Altera Core, modifikasi file /src/altera/CMakeLists.txt, tambahkan pada baris: set(ALTERA_VERILOG_SYN_SRC_FILES ) untuk file Verilog, atau set(ALTERA_VHDL_SYN_SRC_FILES ) untuk file VHDL.
Dengan enviroment ini, maka ada beberapa keuntungan:
  1. Project langsung dapat disetup dengan cepat tanpa harus membuat manual di Modelsim, Quartus, maupun ISE.
  2. Tidak perlu membuat script yang terpisah antara simulasi dan sintesis sehingga menghindari kesalahan file / perbedaan file yang disintesis.
  3. Dapat dijalankan disegala platform dan IDE.
  4. Dapat diintegrasi dengan sistem lain, misalnya Jenkins untuk continuous integration (baca: http://www.design-reuse.com/articles/23424/continuous-integration-complex-reconfigurable-system.html).
Tutorial selengkapnya dapat dilihat pada video berikut ini:


Selamat mencoba & jumpt start your RTL project ;-) (Ya2n)

No comments:

Post a Comment