Saya bertanya-tanya apa perbedaan antara komponen suatu entitas. Saya ingin tahu dalam hal apa lebih baik menggunakan komponen daripada entitas. Terima kasih banyak.
vhdl
components
Peterstone
sumber
sumber
Jawaban:
Berikut ini analogi yang membantu beberapa orang (terutama yang berlatar belakang elektronik fisik):
A
component
memberitahu kompiler "akan ada sesuatu dengan pin semacam ini yang disebut ini di beberapa titik, tapi jangan khawatir untuk saat ini". Ini semacam mendefinisikan "soket". Anda dapat melanjutkan untuk menggambarkan apa yang "kabel" ke "soket" itu dll.An
entity
adalah sesuatu yang spesifik dengan nama dan satu set pin, yang kemudian dapat "dihubungkan" oleh kompiler ke "soket" (dan karenanya terhubung ke "kabel").Perhatikan bahwa Anda tidak perlu sebuah
component
dapat Anda lakukan "Instansiasi langsung" yang berarti compiler sudah tahu tentang entitas sehingga "soket" tidak perlu didefinisikan secara terpisah. Bahkan, itu akan menjadi pendekatan yang saya rekomendasikan, karena jika tidak,component
ini adalah level tambahan yang harus disinkronkan.Anda perlu menggunakan komponen jika Anda mencampur Verilog dan VHDL dan perlu menggunakan blok Verilog di dalam VHDL. Maka itu
component
adalah soket dan tidak lama kemudian kompilator / elaborator dapat memasukkan Verilog ke dalam soket.sumber
Sebuah entitas adalah antarmuka nyata untuk unit desain yang dapat memiliki beberapa arsitektur. Entitas mendefinisikan bagaimana barang masuk dan keluar, sedangkan arsitektur menentukan bagaimana unit desain beroperasi. Jadi Anda bisa memiliki banyak cara untuk mengimplementasikan fungsi yang sama, yang akan dijelaskan oleh entitas yang sama .
Sebuah komponen adalah ideal atau "virtual" desain unit. Saat Anda melakukan desain top-down (yaitu Anda menyusun level atas sebelum blok level bawah dirancang), Anda dapat menggunakan komponen untuk menggambarkan jenis antarmuka yang Anda harapkan untuk unit desain Anda. Anda dapat menganggap ini sebagai pemegang tempat atau kotak hitam untuk implementasi nyata di masa depan.
Menggunakan konfigurasi, Anda dapat mengikat instance komponen tertentu ke definisi entitas. Di sini Anda dapat memetakan port mana yang harus terhubung ke port mana. Ini memetakan bagaimana komponen yang didefinisikan dalam pengertian ideal memetakan ke entitas yang sebenarnya diimplementasikan.
Dalam praktiknya , saya telah menemukan bahwa komponen biasanya tidak diperlukan dan membuat tingkat abstraksi lain yang biasanya tidak digunakan. Anda dapat melewati penggunaan (dan kebutuhan) untuk komponen dengan langsung membuat entitas dan referensi arsitektur yang digunakan untuk instance entitas tersebut.
Sebagai contoh:
sumber
Dari [1] di bawah ini:
Ada perbedaan penting antara entitas, komponen, dan komponen contoh dalam VHDL. Entitas menggambarkan antarmuka desain, komponen menggambarkan antarmuka entitas yang akan digunakan sebagai instance (atau sub-blok), dan instance komponen adalah salinan berbeda dari komponen yang telah terhubung ke bagian dan sinyal lain . Untuk membandingkan ini dengan proses desain papan roti dengan bagian off-the-self. Entitas dan arsitektur seperti buku data yang menggambarkan antarmuka dan skema cara kerja bagian tersebut. Komponen seperti daftar pin pendek yang disertakan dengan bagian untuk menggambarkan bagaimana seharusnya terhubung. Instance komponen adalah bagian aktual itu sendiri, di mana Anda mungkin memiliki banyak yang masing-masing beroperasi secara independen.
Lihat [1] untuk konteks dan lebih detail.
Ada banyak tutorial VHDL on line, misalnya [2] [3] ... Buku (84 halaman PDF) [4] Terlihat bagus [5] Terutama untuk tautan [6]
sumber
Entitas adalah unit desain yang port input-outputnya ditentukan. Entity hanya mendefinisikan port eksternal sementara fungsi internal ditentukan oleh arsitektur yang sesuai. Komponen adalah unit desain lengkap yang terdiri dari entitas dan arsitektur. Langkah pertama adalah deklarasi komponen (menentukan nama dan portnya) dan kemudian instantiasi komponen (pemetaan port).
sumber