• 締切済み

VHDLのセンシティブリストに関して

VHDLのセンシティブリストに関して質問があります。 初心者です。 下記の2つで違いがでるのでしょうか? (1)================================= process(SEL, IA, IB ,IC ,ID) begin case SEL is when '0' => OA <= not IA; OB <= not IB; when '1' => OA <= not IC; OB <= not ID; when others => null; end case; end process; (2)================================= process(SEL, ,IC ,ID) begin case SEL is when '0' => OA <= not IA; OB <= not IB; when '1' => OA <= not IC; OB <= not ID; when others => null; end case; end process; ================================= ネットで調べるとセンシティブリストに登録された信号が変化した場合に begin以下の処理が行われるとあります。 つまりは、 (1)の場合は、SEL=0固定でもIAやIBが変化した場合にOAやOBは変化するが、 (2)の場合は、SEL=0固定でIAやIBが変化した場合は、OAやOBは変化しないということでしょうか?

みんなの回答

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

> 実際に動作させると変化するのです。 > シュミレーションでは、もちろん変化しません。 「シミュレーション」と「実際に動作」の違いは何ですか? (シミュレーションだって動作はさせてるわけで。) 論理合成後の動作のことを言っているなら、 (2)の記述がちゃんと論理合成できる記述であるかどうか確認しましたか? (ぱっと見は、論理合成向きの記述には見えませんが。)

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

そこまでできてるなら実際に動かして確かめた方が早いよ。

GACHAPINA
質問者

お礼

ご回答ありがとうございます。 不思議なのですが、 (2)の場合は、SEL=0固定でIAやIBが変化した場合は、OAやOBは変化しないはずなのですが、 実際に動作させると変化するのです。 シュミレーションでは、もちろん変化しません。 何か変だな?と思い質問させていただいたしだいです。

関連するQ&A