なぜ仕様書を書きます:
彼は最初のインターンシップに入ったとき、私は、コードを書く前に必要とされるアルゴリズムSM4 AHBインタフェースモジュールを書くために私のために配置されたメンター、覚えています
それは、文書を見ると同じように、コードを書くことができるようになりますどの程度まで詳細に、詳細設計書を書きます
少し理解する上で白の学校は確かに良いスペックを見ることができ、よりスペックの背中を見て、デジタル時計を書か
スペックは、コードにノックあなたがそうコメントに遭遇する場合は特に、あなたは簡単に、他の人のデザインのアイデアを理解することができます
場合は、明確な方法を熱心に仕様を理解するために、コードのロジックを理解することは困難。
ウェブサイトの編集と書式設定チャートは、それの簡単なポイントを書くことは非常に簡単ではありません
1つの同期FIFO(先入れ先出し):FIFOデータバッファの一種、同一のクロック手段を読み取るための同期FIFO、
データ・キャッシュの主な仕事。行うには、デュアルポートRAM 8 * 256でのこのデザインは、主にRAMの制御のために、空の、完全な信号を生成します。
2. 全体的なモジュール分割
Dpram.vサブモジュールは、デュアルポートRAMを説明しました
Fifo_ctrl.v RAMの制御サブモジュール、フルエンプティ信号を生成します
二つのサブモジュールの最上層fifo_sync.v形態
(これが最善の図で説明することができます。)
3. DPRAMモジュール
信号リスト
クロックCLK INに
リセット状態にRST_N
WR_EN INはライトイネーブル
IN RD_ENリードイネーブル
WR_DATA [7:0]の書き込みデータに
wr_addr [7:0]の書き込みアドレスを
rd_addr [7:0]リードアドレスの
RD_DATA [7:0]読み出したデータ
8 * 256メモリを定義します
回路図:
(ここでは、読み取りおよび書き込み操作で回路絵に優れた回路、会社ではなく言葉のサーバー上で編集することはできません)
操作を書く、メモリ内の対応するアドレスに書き込まれたWR_EN制御WR_DATA
RD_DATAのデータに対応する読み出し動作、RD_EN制御メモリアドレス、出力レジスタ
4. fifo_ctrlモジュール
信号一覧:
クロックCLK INに
リセット状態にRST_N
WR_EN INはライトイネーブル
IN RD_ENリードイネーブル
wr_addr [7:0] OUT書き込みアドレスを出力
rd_addr [7:0]読み出しアドレスを出力します
FIFOエンプティ信号を空にする
フルOUT FIFOフル信号
回路図:
アドレスカウンタを書く、書き込みイネーブルおよび非フルタイムカウンター、カウンターを書くとき、完全なクリアされ、読み出しアドレスカウンタ共感
フルエンプティ信号がマルチモードフラグを使用することによって達成される発生、すなわち、アドレス信号は、最高フラグ書き込みポインタを得るために適用されます
フリップライトリセットフラグは、読み取りと書き込みの効果的なカウンターを有効&&読み、フルタイムの書き込み、クリアされます
ヌル信号:位相同時に生成された書き込みポインタ
全信号:同じアドレス&&最高の識字を読み書き異なる符号を生成
//注:なぜ達成することができ、フルエンプティ信号が生成されます。
//(1)リードアドレス信号と同時に空または完全に生成されます
//(2)読み込みポインタが書き込みポインタを追い抜いたヌル信号で、書き込みポインタは、フル信号用リードポインタに追いつくために
FIFOは、FIFOである//(3)、着信データを書くは、最初に読み出されるので、フル信号が空防止できません
5.fifo_syncモード
上記二つのサブモジュールの例
信号一覧:
クロックCLK INに
リセット状態にRST_N
WR_EN INはライトイネーブル
IN RD_ENリードイネーブル
WR_DATA [7:0]の書き込みデータに
RD_DATA [7:0]読み出したデータ
FIFOフル信号をOUT wr_full
rd_empty OUT FIFOエンプティ信号
テスト計画は、一時的に自分自身を明らかにした問題やコメントがあるところであれば、つまり、私は速やかに修正し、フォローアップに、先制ピットを書きません