デジタル回路設計
[←] [↑] [→]
0. きっかけ
デジタル回路の一般常識
1. 非同期クロック間転送(CDC)
同期設計ルール
クロックスキューとジッタ
同期なクロックと非同期なクロック
2FFシンクロナイザ
MUXシンクロナイザ
MUXシンクロナイザの使用上の注意
ハンドシェイク・シンクロナイザ
グレイコードカウンタ
同期FIFOの作り方
非同期FIFOの作り方
非同期FIFOを使ったCDC転送
一致検出シンクロナイザ
CDC転送方法のまとめ
非同期リセットの解除タイミング
マルチサイクルパス
補足 - ハザード
補足 - FPGAの合成結果によってハザードが出る例
2. ステートマシン(FSM)
ステートマシンとデータパス
ムーアマシンとミーリーマシン
ステートの決め方
ステートのエンコーディング
未定義のステート
FSM vs カウンタ
3. パイプライン
パイプライン処理のアイデア
広義のパイプライン
4. 固定小数点
2の補数表現
加算・乗算結果のビット幅
符号付き乗算(Baugh-Wooley)
符号付き乗算(定数加算法)
符号なし除算(回復法)
符号つき除算(非回復法)
正規化の除算(非回復法)
定数による除算
開平(回復法)
sin,cos(CORDIC,回転モード)
atan2(CORDIC,ベクタモード)
ベクタ(x,y)の長さ
丸め
補足-10進数と2進数の桁数の関係
補足-固定小数点テンプレートの使い方
5. デジタル回路の仕様の書き方
全体の動作を書く
文章<箇条書き<真理値表<式,疑似コード
状態遷移図の書き方
入出力仕様の書き方
レジスタ仕様の書き方
使用範囲⊆実装範囲
最終更新 2022.07.03 zakii