我正在努力使用泛型来为port
组件的 interface() 定义记录。在一个较旧的问题中,我被指出使用类型泛型。但是我不知道如何访问记录的字段。这是一个答案,即推广使用具有泛型类型的记录
假设以下组件:
entity genericInput is
generic(
type recordType
);
port(
result: integer;
port: in recordType
);
end entity;
architecture behav of genericInput is
begin
result <= port.part1;
end architecture;
而这个实例化:
type myRecord is record
part1: integer;
part2: std_logic_vector(1 to 100)
end record;
inst: genericInput
generic map(recordType <= myRecord)
port map(...)
我从 modelsim 得到一个编译错误:
** Error: ****.vhd(21): Unknown expanded name. --line on which i attempt port.part1
** Error: ****.vhd(22): VHDL Compiler exiting
假设记录始终具有该名称的字段(vhdl2008 可用),我如何访问由泛型提供的记录的字段?(我不想改变记录中向量的宽度)?
改写的问题:将具有通用宽度向量的记录集成到实体的端口中的最佳方法是什么?