• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VHDL 立ち上がり 立ち下がり両方検出)

VHDLでの立ち上がりと立ち下がりの両方検出方法

このQ&Aのポイント
  • VHDLで回路を記述する際に、立ち上がりだけならif CLK_2M'event and CLK_2M='1' thenとすればよいですが、立ち上がりと立ち下がりの両方を検出する方法について質問です。
  • 立ち上がりと立ち下がりの両方を検出するためには、if CLK_2M'event and CLK_2M='0' then elsif CLK_2M'event and CLK_2M='1' thenと記述するとSynthesizeがうまくいかずエラーが発生します。
  • また、if CLK_2M'event then if CLK_2M='1' then elsif CLK_2M='0' thenと書いた場合もエラーが発生し、特に1番目のエラーメッセージはCLK_2Mに関係ない内容が提示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ikoan7632
  • ベストアンサー率42% (104/245)
回答No.1

ここ3年以上VHDLを使っていないので、有効な回答か自信がありませんが……。 立ち下りまたは立ち上がりで同じ動作をさせるのであれば、 if CLK_2M'event then で出力結果を記述すればいいと思うのですが、 違う動作をさせようと思うのなら、 if CLK_2M'event and CLK_2M='1' then と if CLK_2M'event and CLK_2M='0' then を別々に記述すればいいと思います。 VHDLは順序処理を記述するのではなく、並列処理を記述する言語だということを思い出してください。

noname#129397
質問者

お礼

回答ありがとうございました。 ご指導の通り記述を書き直すと、無事動作しました。ありがとうございます。