、しない理由理由である:Zがハイインピーダンスであり、Xは未知であるVHDLは: 'Z' = 'X' VHDLで
NOT 'Z' = 'X'
(以下STD_LOGIC信号タイプを参照します)。
コンテキスト:これはVHDLにのみ適用されます。私は、インバータを介して 'Z'信号が送られ、これによって 'X'が出された試験問題を受けました。私はなぜこれが起こり、答えが単に「Z」でないのか理解していません。あなたが言ったこととの関連では
'U': uninitialized. (signal hasn't been set yet)
'X': unknown (impossible to determine this value/result)
'0': logic 0
'1': logic 1
'Z': High Impedance (signal source when that source makes no effective contribution to the resolved value of the signal)
'W': Weak unknown signal (can't tell if it should be 0 or 1)
'L': Weak signal that should probably go to 0
'H': Weak signal that should probably go to 1
'-': Don't care
オーケーをあなたの質問を不明確にすることはどうですか? 'NOT 'Z' = 'X''はBOOLEAN値TRUEを返す式です。何を聞いていますか?なぜそれは本当ですか?列挙リテラルは同じではないためです。 (5.2.2.1 *各列挙型リテラルは異なる列挙値を生成する*、9.2.3関係演算子*等価演算子は、2つのオペランドが等しい場合はTRUEを返し、そうでない場合はFALSEを返します。答えられる人のための文脈を追加してください。 – user1155120
あなたは理解していないようです。これはVHDLにのみ適用されます。私は 'Z'信号がインバータに送られて、なぜ私が理解できない 'X'を出したかという試験問題を与えられました。私は私の質問にこの明確化を加えました - あなたの助言に感謝します。 – Psi
私は理解できませんでした。あなたの質問は不明です。最後のコメントの文脈を質問に追加し、前述のstd_logic_1164-body.vhdlファイルのnot_tableを見ると、 'Z'ではないことが確かに 'X'であることがわかります。バイナリ値を表す '0'、 '1'、 'L'、 'H'のみが反転して 'X'にマップされないことに注意してください。単調論理演算子は、実効寄与*または*強制*または弱い*金属学的値ではないものは何ですか?インバータの出力が強制されていると仮定できます。モデルでは論理レベル*(16.8.2.2)を区別できません。 – user1155120