Tôi tự hỏi sự khác biệt giữa các thành phần một thực thể. Tôi muốn biết trong trường hợp nào là tốt hơn để sử dụng các thành phần thay vì các thực thể. Cảm ơn bạn rất nhiều.
Tôi tự hỏi sự khác biệt giữa các thành phần một thực thể. Tôi muốn biết trong trường hợp nào là tốt hơn để sử dụng các thành phần thay vì các thực thể. Cảm ơn bạn rất nhiều.
Câu trả lời:
Đây là một sự tương tự giúp một số người (đặc biệt là những người từ nền tảng điện tử vật lý):
A component
nói với trình biên dịch "sẽ có một cái gì đó với các loại ghim trên nó được gọi là cái này vào lúc nào đó, nhưng đừng lo lắng bây giờ". Nó loại định nghĩa một "ổ cắm". Bạn có thể tiếp tục mô tả những gì "nối dây" với "ổ cắm" đó, v.v.
An entity
là một cái gì đó cụ thể với một tên và một bộ chân, mà trình biên dịch có thể "cắm" vào "ổ cắm" đó (và do đó được kết nối với "dây").
Lưu ý rằng bạn không cần một component
bạn có thể làm "instantiation thẳng" có nghĩa trình biên dịch đã biết về một thực thể do đó, "ổ cắm" không cần phải được xác định riêng. Trong thực tế, đó sẽ là cách tiếp cận được đề xuất của tôi, vì nếu không thì component
mức độ bổ sung sẽ được giữ đồng bộ.
Bạn cần sử dụng các thành phần nếu bạn đang trộn Verilog và VHDL và cần sử dụng khối Verilog trong VHDL. Sau đó, component
là ổ cắm và mãi đến sau này, trình biên dịch / trình biên dịch mới có thể cắm Verilog vào ổ cắm.
Một thực thể là một giao diện thực sự cho một đơn vị thiết kế có thể có nhiều kiến trúc. Một thực thể xác định cách thức vào và ra, trong khi kiến trúc xác định cách thức đơn vị thiết kế hoạt động. Vì vậy, bạn có thể có nhiều cách để thực hiện cùng một chức năng, sẽ được mô tả bởi cùng một thực thể.
Một thành phần là một đơn vị thiết kế lý tưởng hoặc "ảo". Khi bạn đang thực hiện thiết kế từ trên xuống (nghĩa là bạn đang kết hợp cấp cao nhất trước khi các khối cấp thấp hơn được thiết kế), bạn có thể sử dụng một thành phần để mô tả loại giao diện mà bạn đang mong đợi cho các đơn vị thiết kế của mình. Bạn có thể nghĩ về điều này như một người giữ chỗ hoặc hộp đen để thực hiện trong tương lai.
Sử dụng các cấu hình, bạn có thể liên kết một thể hiện thành phần cụ thể với một định nghĩa thực thể. Tại đây bạn có thể vạch ra cổng nào sẽ kết nối với cổng nào. Điều này ánh xạ cách thành phần được xác định trong ý nghĩa lý tưởng ánh xạ tới thực thể được thực hiện.
Trong thực tế , tôi đã thấy rằng các thành phần thường không cần thiết và tạo ra một mức độ trừu tượng khác thường không được sử dụng. Bạn có thể bỏ qua việc sử dụng (và cần) cho các thành phần bằng cách trực tiếp khởi tạo thực thể và tham chiếu kiến trúc nào sẽ sử dụng cho thể hiện đó của thực thể.
Ví dụ:
MyDesignUnit : entity library_name.entity_name(architecture_name)
port map(
...
Từ [1] bên dưới:
Có một sự khác biệt quan trọng giữa một thực thể, một thành phần và một thể hiện thành phần trong VHDL. Thực thể mô tả giao diện thiết kế, thành phần mô tả giao diện của thực thể sẽ được sử dụng làm phiên bản (hoặc khối phụ) và phiên bản thành phần là bản sao riêng biệt của thành phần được kết nối với các bộ phận và tín hiệu khác . Để so sánh những điều này với quá trình thiết kế bảng bánh mì với các bộ phận tự. Thực thể và kiến trúc giống như cuốn sách dữ liệu mô tả giao diện và sơ đồ về cách thức hoạt động của bộ phận. Thành phần này giống như danh sách pin ngắn đi kèm với phần để mô tả cách kết nối nó. Ví dụ thành phần là phần thực tế, trong đó bạn có thể có nhiều phần mà mỗi phần hoạt động độc lập.
Xem [1] để biết ngữ cảnh và chi tiết hơn.
Có rất nhiều hướng dẫn về VHDL trên mạng, ví dụ [2] [3] ... Sách (84 trang PDF) [4] Có vẻ tốt [5] Chủ yếu cho các liên kết [6]
Một thực thể là một đơn vị thiết kế có các cổng đầu vào-đầu ra được chỉ định. Thực thể chỉ xác định các cổng bên ngoài trong khi chức năng bên trong được chỉ định bởi kiến trúc tương ứng. Một thành phần là đơn vị thiết kế hoàn chỉnh bao gồm cả thực thể và kiến trúc. Bước đầu tiên là khai báo thành phần (chỉ định tên và cổng của nó) và sau đó khởi tạo thành phần (ánh xạ cổng).