2016-12-06 3 views
0

私はまだSystemVerilogを開始していますが、私は奇妙なコードを発見しました。 QUEUE_SIZEは、事前に定義されたパラメータをある'(1)はSystemVerilogで何を意味していますか?

assign next_empty_oh = empty_entries & ~(empty_entries - QUEUE_SIZE'(1)); 

:私は私が見て、以前に書き込まれたファイルを持って、それがこのようなコードを持っている、ファイルの一つは、いつも私にエラーを与えるなど、コンパイルしてシミュレートします。それが与えるエラーは次のとおりです。

** Error: near "'": syntax error, unexpected '\'', expecting ';' 

これは私が(1)」のようなものを見て、私はそれが何を意味するのか分からない、と私はそれを解決する方法がわからない初めてです。私はシミュレーションのためにQuestaを使用しています。

また、「always comb」については、無効な割り当てのエラーが表示されます。変数は "出力"として定義され、 "reg"または "論理"または "always comb"ブロック内の何かが正常に割り当てられる必要がありますか?

ありがとうございました。

+1

'number '(expr)'は、exprをnumberで定義された幅にキャストすることを意味します。しかし、すべての宣言を含むより多くのコードを表示する必要があります。最後の質問には、完全な例を使って別の質問をする必要があります。 –

+0

ありがとう@ dave_59しかし、なぜこれがエラーを生成するのか理解できません。 私は別の質問を別に掲示します。 コードはオープンソースのNyuziプロセッサです。それはここに見つけることができます| https://github.com/jbush001/NyuziProcessor このエラーを生成するコードは、 "hardware/core/tlb.sv"、 "hardware/core/l2_cache_pending_miss_cam.sv"などのファイルにあります。私が投稿したこの特定のコードは2番目のファイルにあります。 –

答えて

0

Questa 10.2cはそれをサポートしていません。私はModelSim 10.4でそれを試したところ、エラーなしで動作し、コンパイルされました。ありがとう。

+0

問題は 'number'が単なる数値リテラルではなくパラメータであることでした。これは、SystemVerilogの後の拡張機能でした。 –

関連する問題