Tampaknya dunia telah memutuskan bahwa std_logic
(dan std_logic_vector
) adalah cara default untuk mewakili bit dalam VHDL. Alternatifnya adalah std_ulogic
, yang tidak diselesaikan.
Ini mengejutkan saya karena biasanya, Anda tidak menggambarkan bus , jadi Anda tidak ingin banyak pengemudi dan Anda tidak perlu menyelesaikan sinyal. Keuntungannya std_ulogic
adalah bahwa kompiler memperingatkan Anda sejak awal jika Anda memiliki beberapa driver.
Pertanyaan: apakah ini hanya masalah budaya / sejarah, atau masih ada alasan teknis untuk menggunakan std_logic?
Jawaban:
Std_logic adalah subtipe dari std_ulogic dan memiliki tepat satu properti tambahan: itu diselesaikan jika ada beberapa driver.
Terlepas dari praktik umum, std_ulogic adalah tipe yang tepat untuk digunakan untuk sinyal yang tidak diselesaikan yang membutuhkan logika bernilai 9. (Seringkali, menggunakan "bit" bahkan lebih benar - misalnya, pada beberapa arsitektur FPGA yang tidak memiliki 'X' atau 'U').
Pada dasarnya, hal terbaik yang harus dilakukan adalah menggunakan jenis yang tepat untuk pekerjaan itu. Seringkali praktik buruk disebarkan oleh orang-orang yang hanya membeo gaya yang mereka lihat orang lain gunakan, lakukan tanpa memahami alasannya.
sumber
Riwayat saya adalah ini:
Saya memulai (sekitar tahun 1999 IIRC) menggunakan
std_ulogic*
semua waktu - karena ini adalah hal yang tepat untuk dilakukan, hanya untuk alasan yang Anda jelaskan.Lalu saya harus antarmuka ke sekelompok IP vendor yang dihasilkan penyihir yang semuanya memiliki
std_logic
seluruh antarmuka. Yang berarti konversi pada pemetaan-port (untuk_vector
elemen), dan saya menjadi malas dan pindah ke menggunakanstd_logic*
.Namun, saya tampaknya membuat sedikit kesalahan "pengemudi ganda", jadi saya tidak melewatkan
std_ulogic
sebanyak yang saya kira. Dandrivers
perintah Modelsim membuatnya sangat mudah untuk menemukan "siapa yang mengemudikan apa" ketika saya sesekali perlu ...sumber
*vector
port masih membutuhkan konversiIIRC
std_logic(_vector)
, yang direkomendasikan sebagai Metodologi Manual Penggunaan Kembali , jadi mungkin grup metodologi di perusahaan dll menyebar lebih jauh dalam bentuk panduan kode (wajib). Secara pribadi, +1 untuk digunakanstd_ulogic
bila memungkinkan.sumber
Saya tahu ini tayangan slide ppt berwarna mengerikan, tetapi menjelaskan perbedaannya cukup baik:
http://web.archive.org/web/20151026150828/http://www.cs.auckland.ac.nz/~jmor159/reconfig/ppt/ResolutionFunctions.ppt
sumber