2

ポートを定義するためのマクロがあります。

-- Create simple port
define <p_def'struct_member> "p_def <name'name> <type'type>" as {
    <name'name> : inout simple_port of <type'type> is instance;
    keep bind(<name'name>,empty);
};

ポートのリストをサポートするようにマクロを拡張したいと考えています。[<len'name>]次のようなリストサイズを定義するオプションのタグを使用したいと思います。

-- Create simple port OR list of simple ports
define <p_def'struct_member> "p_def <name'name> [\[<len'name>\] ] <type'type>" as {

   if len does not exist { // How to implement it?
        <name'name> : inout simple_port of <type'type> is instance;
        keep bind(<name'name>,empty);

   } else { // len exists

        <name'name>[<len'name>] : list of inout simple_port of <type'type> is instance;
        keep for each in <name'name> {
            bind(it,empty);
        };
   };
};

** たとえば、サイズ 10 のポートのリストを定義すると、次のようになります。

p_def my_list_of_ports[10] bit;

Specman e Language Reference で、optional tag( [<len'name>]) が定義されているかどうかを知る方法を見つけることができません..「len が存在しない場合」ステートメントをマクロに実装する方法を知っていますか? ご協力ありがとうございました

4

1 に答える 1