列挙型 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: 合成 (UG901)

Document ID
UG901
Release Date
2023-11-01
Version
2023.2 日本語

列挙型は、次の構文で宣言できます。

enum [type] {enum_name1, enum_name2...enum_namex} identifier

データ型を指定しない場合は、enum はデフォルトで int になります。次に例を示します。

enum {sun, mon, tues, wed, thurs, fri, sat} day_of_week;

このコードでは、7 つの値を含む enumint が生成されます。これらの名前には 0 から開始する値が割り当てられ、sun = 0 および sat = 6 となります。

デフォルト値を変更するには、次の例のようなコードを使用します。

enum {sun=1, mon, tues, wed, thurs, fri, sat} day_of week;

この場合、sun の値は 1 で sat の値は 7 になります。

次の例は、デフォルト値を変更する別の方法を示します。

enum {sun, mon=3, tues, wed, thurs=10, fri=12, sat} day_of_week;

この場合、sun=0mon=3tues=4wed=5thurs=10fri=12、および sat=13 になります。

列挙型は、typedef キーワードでも使用できます。

typedef enum {sun,mon,tues,wed,thurs,fri,sat} day_of_week; day_of_week my_day;

この例では、my_day というデータ型の day_of_week という信号を定義しています。enums の範囲を指定することもできます。たとえば、上記の例の場合は次のように指定できます。

enum {day[7]} day_of_week;

これにより、day_of_weekday0 day1day6 という 7 個の要素を含む day6 という列挙型が作成されます。

次は、列挙型を使用した例です。

enum {day[1:7]} day_of_week; // creates day1,day2...day7
enum {day[7] = 5} day_of_week; //creates day0=5, day1=6... day6=11