elchika AWARD 2022 」結果発表!受賞者の皆さま、おめでとうございます。

uchanのアイコン画像
uchan 2022年02月18日作成
セットアップや使用方法 セットアップや使用方法 閲覧数 635
uchan 2022年02月18日作成 セットアップや使用方法 セットアップや使用方法 閲覧数 635

Gowin UART Master IP 2.0の信号タイミングが仕様書と違う

Gowin UART Master IP 2.0の信号タイミングが仕様書と違う

Gowin UART Master IP のユーザーガイド[1]バージョン 1.5 に信号のタイミング図が追加されたので、現物のタイミングと比較してみたところ、ユーザーガイドの図と実際のタイミングが異なることが分かりました。

ユーザーガイドのタイミング図

下図がバージョン 1.5 で追加された SRAM インターフェースのタイミング図です。

ユーザーガイドのタイミング図

今回注目するのは受信のタイミングです。

I_RX_EN が 1 になった後のクロックの立ち上がりの瞬間(I_CLK の 9 番エッジ)に I_RADDR=rd_addr が UART Master IP コアに取り込まれます。そこから 2 サイクル後(I_CLK の 11 番エッジ) に O_RDATA の内容が rd_data となります。rd_addr で指定されたレジスタの値が rd_data として取り出せます。

図 3-2 の手前にこのような説明があります。

インターフェースがある I_CLK クロックの立ち上がりエッジで読み出し要求を検出すると、少なくとももう 2 サイクル待機した後、対応するデータを返します。

文章でも「2 サイクル」と説明されていますね。

実際のタイミング

下図は Tang Nano 4K で UART Master IP 2.0 を動作させたときのタイミング図です。

Tang Nano 4Kでの実測値

ユーザーガイドの図と違い、I_RX_EN が 1 になった 1 サイクル後に O_RDATA が変化していることが分かります。ちなみに、ここで O_RDATA に出力された値は期待通りの値で、特に壊れたりはしていません。

ユーザーガイドの図では、I_RX_EN が 1 になってから 2 サイクルの間は O_RDATA が変化しないように見えますが、現実は違うようです。注意が必要ですね。


  1. https://www.gowinsemi.com/ja/support/ip_detail/3/ ↩︎

uchanのアイコン画像
本業はプログラマですが、昔から電子工作は趣味でやってます。初めてのプログラミング言語はPICアセンブラです。 モジュールを買ってきて組み合わせるだけでなく、部品の動作原理をきちんと理解して回路を設計することに楽しさを感じます。 2021年より「uchanの電子工作ラボ」という施設を運営しています。はんだごてや測定器が使えます。 https://uchan.net/lab/ 2021年3月22日に「ゼロからのOS自作入門」を出版しました。Amazon→ https://amzn.to/2NP3FUj
  • uchan さんが 2022/02/18 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する