VHDL 2008 を使用して、その型のポートと、その基本型から派生した制約のない配列またはレコードを持つジェネリック型を持つ抽象エンティティを定義する方法はありますか? このようなもの:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity COMP_EXCH is
generic(type T; -- VHDL-2008 abstract generic base type
function "<"(L,R:T) return BOOLEAN; -- VHDL-2008 abstract generic function
LATENCY:INTEGER:=0);
port(I0,I1:in T;
O:out T_VECTOR(0 to 1));
end COMP_EXCH;
architecture TEST of COMP_EXCH is
begin
O<=(I1,I0) when I1<I0 else (I0,I1);
end TEST;
ここで、T_VECTOR は次のとおりです。
タイプ T_VECTOR は、T の配列 (INTEGER 範囲 <>) です。
T は任意の抽象基本型です。課題は、T が導入されたジェネリックの後、T_VECTOR が必要なポートの前に、T に依存する T_VECTOR の定義を挿入する方法です。両方の型を一般的かつ抽象的に保ちながら、一方をもう一方の制約のない配列にする方法は? 抽象型がなければ、T および T_VECTOR の型定義を含むパッケージを使用してこれを実現しますが、VHDL 2008 の抽象型でどのように行うことができますか?
制約のない配列やレコード (たとえば、T 型の実数フィールドと虚数フィールドを持つ複雑なレコード) などの多くの派生型を抽象のままにして、それらを使用して上記の例のように抽象コンポーネントを定義できるようにしたいと考えています。