vhdlの関数が間違っています

user5367640

誰かがこのコードをチェックして、どこが間違っているのか教えてくれますか?コンパイラは次のエラーメッセージを送信します:Funcio_2.vhd(10):near "OR" :( vcom-1576)expecting ')'。

--Definimos la entidad funcio_2-
 ENTITY funcio_2 IS
 PORT(a,b,c,d:IN BIT;f:OUT BIT);
 END funcio_2;

 --Definimos su arquitectura logica-

 ARCHITECTURE logica OF funcio_2 IS
 BEGIN
 f<= (((NOT a) AND b) AND ((NOT c) OR b) AND(NOT d) OR(a AND c AND d) OR a AND(NOT d)) AND (NOT(a OR (NOT d)) OR NOT(((NOT a) AND b) AND ((NOT c) OR b) AND(NOT d) OR(a AND c AND d) OR a AND(NOT d)) AND (a OR (NOT d));


 END logica;

コードを書き直して、次のようになりました。

f<= (NOT a AND b AND NOT c OR b AND NOT d OR a AND c AND d OR a AND NOT d) AND NOT(a OR (NOT d)) OR NOT(NOT a AND b AND NOT c OR b AND NOT d OR a AND c AND d OR a AND NOT d) AND (a OR (NOT d));

動作していません

trentcl

私の知る限り、Modelsimでは、式の組み合わせANDOR演算子を括弧で囲んで、優先順位を明確にする必要があります。これがどこにも文書化されていなかったので、知識に基づいて推測したところ、コンパイルされたことがわかりました。VHDLの標準によると、ANDそしてOR、彼らは評価されるべきであるので、同じ優先順位を持ち、左から右へ。

私はいくつかの一時的なシグナルを自由に定義しましたが、これは同じことだと思います。

t1 <= ((((((NOT a AND b AND NOT c) OR b) AND NOT d) OR a) AND c AND d) OR a) AND NOT d;
t2 <= a OR (NOT d);
t3 <= t1 AND NOT t2;
t4 <= t3 OR NOT t1;
f <= t4 AND t2;

他のいくつかの言語のように、ANDより緊密にバインドしたい場合OR、VHDLはとにかくあなたが望むことを決して行わなかったでしょう、そしてModelsimはただバグを捕らえました。どちらの方法でも、必要なものを明確にするために式を括弧で囲む必要があります。

もちろん、ブール代数を実行することもできます。

f <= a XNOR d;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

eulerProjectの関数の結果が間違っています

分類Dev

関数の型宣言が間違っています

分類Dev

main関数の戻り値が間違っていますか?

分類Dev

PythonCaesar関数の出力が間違っています

分類Dev

usort関数の結果が間違っています

分類Dev

ATOM関数の戻り値が間違っています

分類Dev

関数間のpromise.all()の使い方が間違っていますか?

分類Dev

MATLABでのODEの解の導関数の値が間違っています

分類Dev

NTILE関数、レコード数が間違っています

分類Dev

関数が間違って配置されています

分類Dev

式の型が関数に対して間違っています

分類Dev

VHDL波形図が間違っています

分類Dev

memove()関数のC言語の出力が間違っていますか?

分類Dev

クエリのどの部分が間違っていますか?UNNEST関数

分類Dev

forループのpow関数の値が間違っています

分類Dev

setIntervalによる関数の結果が間違っています

分類Dev

conv2d関数後の出力サイズが間違っています

分類Dev

MySQL関数が間違った値を返しています

分類Dev

関数で何が間違っているのですか?

分類Dev

関数は、djangoの日付範囲の間の1週間の合計が間違っています

分類Dev

IFへの引数の数が間違っています

分類Dev

DjangoNoReverseMatchの引数の数が間違っています

分類Dev

初期化時の引数の数が間違っています

分類Dev

MATLABのPIQE関数は間違っていますか?

分類Dev

MariaDbtimediff関数が間違った時間数を計算しています

分類Dev

IllegalArgumentException:引数の数が間違っています

分類Dev

Ruby Mailer:引数の数が間違っています

分類Dev

COUNTIFphpexcel引数の数が間違っています

分類Dev

引数の数が間違っています(1対2)

Related 関連記事

  1. 1

    eulerProjectの関数の結果が間違っています

  2. 2

    関数の型宣言が間違っています

  3. 3

    main関数の戻り値が間違っていますか?

  4. 4

    PythonCaesar関数の出力が間違っています

  5. 5

    usort関数の結果が間違っています

  6. 6

    ATOM関数の戻り値が間違っています

  7. 7

    関数間のpromise.all()の使い方が間違っていますか?

  8. 8

    MATLABでのODEの解の導関数の値が間違っています

  9. 9

    NTILE関数、レコード数が間違っています

  10. 10

    関数が間違って配置されています

  11. 11

    式の型が関数に対して間違っています

  12. 12

    VHDL波形図が間違っています

  13. 13

    memove()関数のC言語の出力が間違っていますか?

  14. 14

    クエリのどの部分が間違っていますか?UNNEST関数

  15. 15

    forループのpow関数の値が間違っています

  16. 16

    setIntervalによる関数の結果が間違っています

  17. 17

    conv2d関数後の出力サイズが間違っています

  18. 18

    MySQL関数が間違った値を返しています

  19. 19

    関数で何が間違っているのですか?

  20. 20

    関数は、djangoの日付範囲の間の1週間の合計が間違っています

  21. 21

    IFへの引数の数が間違っています

  22. 22

    DjangoNoReverseMatchの引数の数が間違っています

  23. 23

    初期化時の引数の数が間違っています

  24. 24

    MATLABのPIQE関数は間違っていますか?

  25. 25

    MariaDbtimediff関数が間違った時間数を計算しています

  26. 26

    IllegalArgumentException:引数の数が間違っています

  27. 27

    Ruby Mailer:引数の数が間違っています

  28. 28

    COUNTIFphpexcel引数の数が間違っています

  29. 29

    引数の数が間違っています(1対2)

ホットタグ

アーカイブ