散歩師・漫画居士のくだらなクラブ日記

ども、散歩師・漫画居士っす。散歩したり実働模型作ったりが趣味なんで、その時に思いついたこととか書くッス

FPGAでitendoの8桁7seg+8LED+8キー表示ユニットを使うWIP その4

+ブロック図5H +RTL3H+BLOG0.5H=17H

 

とりあえず今日はブロック図とタイムチャートで設計開始。

一部だけRTLを突っ込んでみたり。

 

全体はこんな構成です。

 

ドライバ本体の入出力ポート

f:id:mangakoji:20170429221855p:plain

7セグエレメントを直接ドライブするモードと、HEX8桁でドライブするモードを切り替えられるように。

とりあえず10進は今回はパスする方向

 

 

本線系のブロック図

 

f:id:mangakoji:20170429221920p:plain

本線系は、バッファのFFを減らすために、ちょっと変則的な構成を考えてるけど

コントロールしきれるかなぁ

 

 

 

1 Frameのシーケンス

f:id:mangakoji:20170429222012p:plain

一回の転送(8桁、LED8コ、小数点8コ、key8コ読み出し)をフレームと呼んでます。

これを1秒250回くらい(もっとたくさん出来ますが、レートを遅くして、keyのチャタリングをデチャタします。

いつもはカウンタで実装するんですが、ステートマシン表記で設計したことないんで、今回は実験的にステートマシンで設計。

でも、本当に分岐無しなんで、カウンタの方がよかったかな?

 

 

1 byteのシーケンス

f:id:mangakoji:20170429221955p:plain

 

クロック分周の概念

f:id:mangakoji:20170429221939p:plain

システム48MHzを12分周の2分周で、1MHzのSCLKを作ります。

システムクロックが異なる場合でも、parameter設定のみで、対応できるつもり。

システムクロック、SCLKクロック、フレームレートを個別に変更できる予定。

(ただし、不可能設定チェックはなし。マイコンだとasartionだとかでstrictに書きやすいんだけど

ハードウエアだとあんまり気にしなよな。自由すぎるんで、条件追い込めないっす。

どこまででもプラットフォーム/ペリフェラルが変わる可能性があるからねぇ。)

 

 

 

で、現在までの状況をこちらにupしてます。

github.com

 

まだまだ、コンパイルも始められませんが。