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

Membandingkan Pengodean Biner, Abu-abu, dan One-Hot

Artikel ini menunjukkan perbandingan implementasi yang dihasilkan dari penggunaan pengkodean biner, Gray, dan one-hot untuk mengimplementasikan mesin status dalam FPGA. Encoding ini sering dievaluasi dan diterapkan oleh alat sintesis dan implementasi, jadi penting untuk mengetahui mengapa perangkat lunak membuat keputusan ini.

Mesin negara hingga (FSM) adalah bagian yang sangat umum dari hampir setiap sistem digital. Itu sebabnya alat sintesis sering memeriksa kode Anda untuk mendeteksi FSM dan melakukan pengoptimalan yang dapat mengubah penyandian status. Tidak masalah jika Anda dengan hati-hati memilih dan menentukan nilai yang mengimplementasikan status Anda dalam kode sumber, alat sintesis dapat menggantikan nilai tersebut dengan nilai lain yang bahkan mungkin memiliki panjang bit yang berbeda dari penyandian asli Anda.

Jika Anda ingin memoles penerapan mesin status di Verilog, Anda harus membaca artikel saya yang berjudul Membuat Mesin Status Terbatas di Verilog.


Pengodean Status:Gray vs. Binary vs. One-Hot

Tiga pengkodean paling populer untuk status FSM adalah biner, Gray, dan one-hot.

Pengkodean Biner

Encoding biner adalah metode langsung yang dapat Anda gunakan secara intuitif saat Anda menetapkan nilai secara berurutan ke status Anda. Dengan cara ini, Anda menggunakan bit sesedikit mungkin untuk menyandikan status Anda.

Contoh enkode one-hot. Gambar oleh Steve Arar

Pengkodean Abu-abu

Kode abu-abu terdiri dari urutan di mana hanya satu bit yang berubah antara satu nilai dan nilai berikutnya. Selain juga menggunakan jumlah bit minimum, pengkodean ini meminimalkan konsumsi daya dinamis jika urutan status diikuti secara optimal.

Roda kode abu-abu. Gambar dari Marie Christiano

Encoding Satu-Panas

Akhirnya, pengkodean satu-panas terdiri dari penggunaan satu bit yang mewakili setiap keadaan, sehingga pada setiap titik waktu, keadaan akan dikodekan sebagai 1 dalam bit yang mewakili keadaan saat ini, dan 0 di semua bit lainnya. Ini mungkin tampak tidak terlalu efisien pada awalnya karena jumlah bit yang digunakan, dan jumlah status yang tidak valid yang berlebihan. Namun, pengkodean satu-panas sangat baik dalam menyederhanakan logika stimulus untuk sandal jepit karena tidak perlu mendekode status. Bit adalah Negara.

Contoh enkode one-hot. Gambar oleh Steve Arar

Untuk mengetahui lebih lanjut tentang penyandian status, Anda mungkin ingin membaca artikel Mengkodekan Status Mesin Status Hingga dalam VHDL oleh Steve Arar.

Pengkodean Mana yang Terbaik?

Ini adalah pertanyaan yang sulit, sebagian besar karena setiap pengkodean memiliki kelebihan dan kekurangannya sendiri, jadi ini mengarah pada masalah pengoptimalan yang bergantung pada banyak faktor.

Sekarang, semua klaim ini hanyalah tebakan terpelajar, dan menemukan penugasan negara yang optimal adalah masalah yang rumit. Karena itu, saran resmi saya adalah membiarkan kompiler memutuskan untuk Anda. Karena itu, saya memutuskan untuk menjalankan perbandingan hasil untuk ketiga penyandian ini dalam tiga alat pengembangan yang berbeda dan tiga mesin status yang berbeda.

Di artikel selanjutnya, kita akan membahas hasil eksperimen saya.


Tertanam

  1. Membandingkan Baja Seri 300, 400 dan 500
  2. Penomoran Oktal dan Heksadesimal
  3. Penambahan Biner
  4. Pengurangan Biner
  5. Struktur dan kelas dalam C++
  6. Membandingkan Six Sigma dan lean manufacturing
  7. Jenis Pengkodean Mana yang Harus Saya Gunakan? Contoh Aplikasi FPGA
  8. Kode Morse dan Pemerasan Ganda:Keadaan Malware Saat Ini
  9. EDM dan Perlindungan Kebakaran Mesin CNC:Membandingkan Pilihan Anda
  10. Sifat dan Nilai Besi Abu-abu Dijelaskan