Memasuki dunia logika yang dirancang sendiri: memahami Zynq sebagai SoC hybrid ARM + FPGA, dasar-dasar Verilog untuk mendesain hardware, dan alur kerja build-sintesis-place-rute, ditutup praktik blink LED pertama di FPGA

Sejauh ini kalian menulis software yang berjalan di hardware jadi. Episode ini membuka kemungkinan yang lebih dalam: mendesain hardware itu sendiri — dan menggabungkannya dengan prosesor dalam satu chip. Dunia SoC/FPGA adalah tempat embedded engineer bertemu dengan engineering digital: alih-alih memprogram urutan instruksi, kalian mendesain rangkaian logika yang berjalan paralel.
Contoh paling relevan: Xilinx Zynq menggabungkan prosesor ARM (untuk menjalankan Linux, aplikasi, networking) dengan FPGA fabric (untuk logika kustom real-time). Di sinilah pipeline DSP dari episode 22 bisa berjalan paralel sepenuhnya, bukan sekuensial. Episode ini membangun dasar: apa itu FPGA, bahasa Verilog, dan alur desain.
FPGA (Field-Programmable Gate Array) adalah chip berisi jutaan sel logika kecil (LUT + flip-flop) yang bisa "diprogram" menjadi rangkaian apa pun. Perbedaannya dengan MCU:
| Aspek | MCU | FPGA |
|---|---|---|
| Model kerja | Eksekusi instruksi sekuensial | Rangkaian paralel, semua "berjalan" bersamaan |
| Kecepatan per task | Bergantung clock CPU | Parallelisme nyata, deterministik |
| Ketepatan timing | Software (bisa jitter) | Hardware (deterministik per siklus clock) |
| Siklus pengembangan | Compile cepat | Sintesis + place & route (menit-jam) |
| Kasus pemakaian | Kontrol, komunikasi, IoT | Video, DSP paralel, protokol kustom |
Bayangkan MCU sebagai koki yang memasak satu menu per waktu; FPGA sebagai dapur dengan 100 juru masak yang bekerja serentak. Untuk pekerjaan yang bisa dipecah paralel (filter banyak kanal, pemrosesan piksel, deteksi protokol), FPGA menang telak — itulah mengapa FPGA menguasai DSP berkecepatan tinggi, jaringan, dan komunikasi.
Zynq (Xilinx/AMD) adalah contoh SoC hybrid paling populer untuk embedded:
Dua bagiannya:
Pola desain khas Zynq: tugas yang perlu fleksibilitas (aplikasi, protokol, UI) di PS; tugas yang butuh kecepatan/determinisme (filter, encode, sampling cepat) di PL. Ini contoh nyata arsitektur heterogeneous yang disebut di episode 2.
Verilog (dan VHDL) adalah bahasa deskripsi hardware. Berbeda dengan C yang mengeksekusi, Verilog menggambarkan rangkaian. Contoh blink paling sederhana:
module blink (
input wire clk, /* clock 12 MHz, misal */
input wire rst,
output reg led
);
reg [23:0] counter;
always @(posedge clk or posedge rst) begin
if (rst) begin
counter <= 24'd0;
led <= 1'b0;
end else begin
counter <= counter + 24'd1;
if (counter == 24'd5_999_999) begin
counter <= 24'd0;
led <= ~led; /* toggle per ~1 detik (12MHz/6M) */
end
end
end
endmoduleKonsep Verilog yang wajib dipahami di awal:
always block — deskripsi perilaku; dieksekusi saat clock (posedge) — inilah model "rangkaian tersinkron clock".reg vs wire — reg menyimpan state (flip-flop), wire menghubungkan tanpa state.<= (non-blocking assign) — penugasan sinkron; semua register berubah bersamaan di tepi clock — inilah kunci paralelisme.module — blok desain, seperti fungsi di C tapi berhubungan dengan pin fisik.Kesalahan klasik pemula Verilog: memakai = (blocking) di always ber-clock → hasil berubah urutan-bergantung, tidak merepresentasikan hardware sebenarnya.
FPGA tidak "di-compile" seperti C — ia di-synthesize:
Verilog (.v) -> Sintesis -> Jaringan logika (netlist)
-> Place & Route -> Konfigurasi fisik sel LUT/FF
-> Bitstream (.bit) -> Dimuat ke FPGA| Tahap | Fungsi | Waktu |
|---|---|---|
| Sintesis | Verilog → netlist logika | Detik-menit |
| Place & Route | Netlist → posisi fisik sel | Menit-jam |
| Bitstream | Konfigurasi final | Detik |
Tool utama: AMD Vivado (untuk Zynq), Intel Quartus, atau Yosys (open source) untuk board kecil seperti iCEstick/Lattice. Board FPGA pemula yang paling populer dan murah: iCEstick (open toolchain, Yosys + icepack), atau Altera DE-series untuk laboratorium.
Alur praktik (pakai iCEstick + open toolchain Yosys, atau Vivado untuk Zynq):
blink.v seperti contoh di atas, sesuaikan clock board (cek oscillator board — 12 MHz umum)..pcf untuk iCEstick).yosys -p 'synth_ice40 -top blink -blif blink.blif' blink.v lalu nextpnr-ice40 --hx1k --json ... --pcf ... --asc ....Tip
Jangan langsung membeli FPGA mahal. iCEstick (sekitar $25) dengan toolchain open source sudah cukup untuk belajar Verilog, sintesis, dan place & route dari nol. Jika tim kalian sudah memakai Zynq/Vivado, mulai dari contoh template resmi — dan tetap pelajari Verilog dasarnya dulu, karena tool akan terasa magis sebelum kalian paham bahasa deskripsinya.
always menggambarkan rangkaian, bukan loop.= di clock block merusak sinkronisasi.Inti yang harus dibawa pulang:
always, reg, wire, dan non-blocking <=.Di episode 25 selanjutnya kita turun ke bumi produksi: production & scalability — manufacturing, yield, dan scale-up dari prototipe menjadi ribuan unit. Semua yang kalian pelajari akan diuji di sini: desain yang mudah dibuat, tes yang terotomasi, dan biaya yang terkendali. Sampai jumpa di episode 25!