AR# 52197

Vivado 合成のデザイン アシスタント - SystemVerilog - 演算子

説明

このアンサーでは、Vivado 合成でサポートされる SystemVerilog 演算子について説明し、コード例を示します。このコード例は、このアンサーの最後にあるリンクからダウンロードできます。また、このアンサーには既知の問題、コード記述事例も含まれます。

注記 : 各コード例は Vivado プロジェクトの作成に直接使用できます。各例に含まれる SystemVerilog コンストラクトは、各ソース ファイルのヘッダーを参照してください。

ソリューション

Vivado 合成でサポートされている SystemVerilog 演算子
コード例は、このアンサーの最後にある表 1-1 を参照してください。
SystemVerilog 演算子は Verilog と C の演算子を組み合わせたものです。両言語で、オペランドの型およびサイズは決まっているので、演算子の型とサイズも固定です。SystemVerilog でも演算子の型とサイズは固定されています。

1. 代入演算子

単純な代入演算子「=」に追加

例 :
a[i]+=2; // same as a[i] = a[i] +2;

SystemVerilog には、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、<<<=、および >>>= など、C の代入演算子および特別なビット指定の代入演算子が含まれています。 左辺の添字式は 1 度だけ解かれるという点を除き、代入演算子はブロッキング代入と意味的には等価です。

2. バイナリ演算子

バイナリ演算子に bit 型のオペランドと logic 型のオペランドがある場合、結果値は logic 型になります。あるオペランドが int 型で、もう 1 つのオペランドが integer 型の場合、結果値は integer 型になります。Verilog-2001 にあるように、いずれかのオペランドに X または Z が含まれている場合、!= および == の演算子は X を返します。結果値が bit 型に変換されると (たとえば if 文の場合など)、これは 0 に変換されます。単項換算演算子 (& ~& | ~| ^ ~^) は任意式 (パックされた配列を含む) に適用することができます。パックされた型が 4 つの値のものである場合は logic 型の値 1 つが演算子によって返され、また、パックされた型が 2 つの値のものである場合は bit 型の値 1 つが演算子によって返されます。

int i;
bit b = &i;
integer j;
logic c = &j;             

3. 条件演算子
 
条件文に使用される演算子
 
conditional_expression ::= cond_predicate ? { attribute_instance } expression : expression

4. 連結演算子

括弧 ( { } ) は Verilog の場合と同じように連結を示すために使われます。連結はパックされたベクターのビットとして処理されます。これは代入の左辺または式で使用できます。

logic log1, log2, log3;
{log1, log2, log3} = 3b111;
{log1, log2, log3} = {1b1, 1b1, 1b1}; // same effect as 3b111


演算子のコード例

                                                  
表 1-1
コード例の名前 使用されている演算子
 operators_example1.zip
  • 代入演算子 (+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、<<<=、>>>=)
 operators_example2.zip
  • バイナリ演算子 (+、-、*、/、%、==、~=、===、~==、&&、||、**、< 、<=、>、>=、&、|、^、^~、~^、>>、<<、>>>、<<<)
 operators_example3.zip
  • 条件演算子 (? :)
operators_example4.zip
  • 連結演算子 ({...})

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
operator_example1.zip 1 KB ZIP
operator_example2.zip 487 Bytes ZIP
operator_example3.zip 915 Bytes ZIP
operator_example4.zip 919 Bytes ZIP

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
51360 Vivado 合成のデザイン アシスタント - SystemVerilog のサポート N/A N/A
AR# 52197
日付 05/07/2013
ステータス アクティブ
種類 ソリューション センター
ツール