+ブロック図5H +RTL3H+BLOG0.5H=17H
とりあえず今日はブロック図とタイムチャートで設計開始。
一部だけRTLを突っ込んでみたり。
全体はこんな構成です。
ドライバ本体の入出力ポート
7セグエレメントを直接ドライブするモードと、HEX8桁でドライブするモードを切り替えられるように。
とりあえず10進は今回はパスする方向
本線系のブロック図
本線系は、バッファのFFを減らすために、ちょっと変則的な構成を考えてるけど
コントロールしきれるかなぁ
1 Frameのシーケンス
一回の転送(8桁、LED8コ、小数点8コ、key8コ読み出し)をフレームと呼んでます。
これを1秒250回くらい(もっとたくさん出来ますが、レートを遅くして、keyのチャタリングをデチャタします。
いつもはカウンタで実装するんですが、ステートマシン表記で設計したことないんで、今回は実験的にステートマシンで設計。
でも、本当に分岐無しなんで、カウンタの方がよかったかな?
1 byteのシーケンス
クロック分周の概念
システム48MHzを12分周の2分周で、1MHzのSCLKを作ります。
システムクロックが異なる場合でも、parameter設定のみで、対応できるつもり。
システムクロック、SCLKクロック、フレームレートを個別に変更できる予定。
(ただし、不可能設定チェックはなし。マイコンだとasartionだとかでstrictに書きやすいんだけど
ハードウエアだとあんまり気にしなよな。自由すぎるんで、条件追い込めないっす。
どこまででもプラットフォーム/ペリフェラルが変わる可能性があるからねぇ。)
で、現在までの状況をこちらにupしてます。
まだまだ、コンパイルも始められませんが。