Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Enkode Biner, Gray, dan One-Hot: Panduan Praktis untuk Mesin Status Finite FPGA

Tulisan ini menyediakan perbandingan rinci dari enkode biner, Gray, dan one-hot saat mengimplementasikan finite state machines (FSM) pada FPGA. Memahami bagaimana alat sintesis mengevaluasi dan mungkin mentransformasi enkode ini esensial untuk mencapai performa dan efisiensi daya yang optimal.

Finite state machines adalah hal yang everywhere dalam desain digital. Alat sintesis secara rutin menganalisis RTL Anda untuk mendeteksi FSM dan dapat menulis ulang state encodings untuk memenuhi tujuan timing, area, atau daya. Bahkan jika Anda secara manual menetapkan state codes, alat dapat mengganti nilai yang berbeda—kadang dengan lebar bit yang berbeda—berdasarkan strategi optimasi-nya.

Untuk refresher tentang membangun FSM dalam Verilog, lihat artikel saya Creating Finite State Machines in Verilog.

Opsi Enkode: Biner, Gray, dan One-Hot

Tiga enkode FSM paling umum adalah biner, Gray, dan one-hot. Setiapnya menawarkan trade-off yang berbeda.

Enkode Biner

Enkode biner menetapkan jumlah bit paling sedikit untuk mewakili semua state. Ini adalah pilihan paling hemat ruang, tetapi transisi state dapat melibatkan perubahan bit yang banyak, yang dapat meningkatkan daya dinamis.

Enkode Biner, Gray, dan One-Hot: Panduan Praktis untuk Mesin Status Finite FPGA

Contoh enkode biner. Gambar oleh Steve Arar

Enkode Gray

Kode Gray memastikan hanya satu bit yang berubah antara state yang berurutan. Ketika FSM mengikuti urutan yang dapat diprediksi, enkode Gray dapat mengurangi aktivitas switching dan menurunkan daya dinamis.

Enkode Biner, Gray, dan One-Hot: Panduan Praktis untuk Mesin Status Finite FPGA

Rodakode Gray. Gambar dari Marie Christiano

Enkode One-Hot

Enkode one-hot mewakili setiap state dengan bit flip-flop yang khusus. Sementara itu mengonsumsi lebih banyak sumber daya logika dan memperkenalkan banyak kombinasi tidak valid, ini menghilangkan kebutuhan untuk state decoding, menyederhanakan logika kombinatorial dan seringkali meningkatkan timing pada frekuensi clock tinggi.

Enkode Biner, Gray, dan One-Hot: Panduan Praktis untuk Mesin Status Finite FPGA

Contoh enkode one-hot. Gambar oleh Steve Arar

Untuk wawasan lebih dalam tentang state encoding dalam VHDL, konsultasikan Encoding the States of a Finite State Machine in VHDL oleh Steve Arar.

Memilih Enkode yang Tepat

Menentukan enkode optimal tergantung pada konteks dan melibatkan menyeimbangkan area, timing, dan daya. Pedoman umum meliputi:

Karena trade-off-nya halus, saya merekomendasikan untuk membiarkan alat sintesis memilih enkode. Meskipun demikian, saya telah melakukan eksperimen komparatif di tiga alat pengembangan utama dan tiga mesin state berbeda untuk mengilustrasikan bagaimana setiap enkode berperforma dalam praktik. Hasilnya dibahas dalam artikel saya selanjutnya.


Tertanam

  1. Memahami Baja Seri 300, 400 & 500: Komposisi, Sifat, dan Aplikasi
  2. Numerasi Oktal dan Heksadesimal: Panduan Praktis untuk Insinyur
  3. Penjumlahan Biner Dijelaskan: Aturan, Contoh, dan Perannya dalam Komputer Digital
  4. Pengurangan Biner Menggunakan Two's Complement
  5. Struktur vs Kelas C++: Panduan Praktis untuk Pengembang Terintegrasi
  6. Six Sigma vs. Lean Manufacturing: Panduan Jelas untuk Memilih Strategi yang Tepat
  7. Memilih Enkode FPGA yang Tepat: Studi Praktis dengan Conway’s Game of Life
  8. Kode Morse dan Ekstor Ganda: Lanskap Saat Ini Ancaman Malware Canggih
  9. Strategi Perlindungan Kebakaran untuk Bengkel EDM & CNC: Jaga Produktivitas dan Keamanan
  10. Besi Abu Dihayati: Sifat, Grade, dan Aplikasi Industri