Gần đây tôi đã bắt đầu sử dụng các bản ghi cho các định nghĩa cổng của mình, đặc biệt nếu tôi muốn nhóm các tín hiệu thuộc về một giao diện nhất định. Tuy nhiên, vấn đề tôi đang phải đối mặt ở đây là tôi không thể vượt qua, nói chiều rộng của một std_logic_vector, cho các thực thể bằng phương tiện của một chung chung. Vì vậy, những gì tôi về cơ bản muốn làm là như sau:Truyền Generics để ghi các loại cổng
library ieee;
use ieee.std_logic_1164.all;
use work.math_pkg.all;
package fifo_pkg is
type fifo_in_type is record
data_in : std_logic_vector(DATA_WIDTH_??- 1 downto 0);
rd : std_logic;
wr : std_logic;
end record;
type fifo_out_type is record
data_out : std_logic_vector(DATA_WIDTH_?? - 1 downto 0);
empty : std_logic;
full : std_logic;
end record;
component fifo is
generic
(
MIN_DEPTH : integer;
DATA_WIDTH : integer
);
port
(
clk : in std_logic;
res_n : in std_logic;
i : in fifo_in_type;
o : out fifo_out_type
);
end component fifo;
end fifo_pkg;
Vì vậy, các giải pháp lý tưởng sẽ là khi tôi có thể sử dụng cùng chung trong hồ sơ của tôi như tôi đã làm trong đơn vị. (Vì vậy, DATA_WIDTH là giống như DATA_WIDTH_ ??). Tôi biết rằng điều này sẽ làm việc bằng cách nào đó với vhdl 2008, tuy nhiên quartus II 11sp1 của tôi không hỗ trợ generics trong hồ sơ.
Có cách nào thanh lịch để đạt được loại "đi chung" đó có thể tổng hợp không? Tôi biết rằng người ta chỉ có thể lưu trữ một hằng số trong gói, nhưng sau đó tôi không thể sử dụng cùng một gói nămo để tạo ra một số FIFO với độ rộng khác nhau.
Nhờ một triệu, T
Hi Martin, Cảm ơn bạn đã đề xuất, cả hai đều đẹp và thanh lịch. Tuy nhiên điều này không hoạt động trong phiên bản Quartus 11.0 sp1. Dường như quartus chỉ hỗ trợ một tập hợp con rất hạn chế của vhdl 2008 cho đến nay. Bất kỳ ý tưởng khác để thực hiện điều này? Tôi tự hỏi nếu điều đó sẽ làm việc với Synplify ... Cảm ơn, T – user1017739
Đó là một sự xấu hổ (về Quartus), nhưng không hoàn toàn bất ngờ. Tệp trợ giúp Synplify ngụ ý rằng nó không biết về các bản ghi với các mảng không bị ràng buộc * và * loại generics. –
có thực sự, đó là một chút thất vọng: ( – user1017739