この記事では、rtl
ディレクトリ内のすべてのモジュール show camouflage について説明します。
このモジュールは、無期限に「再生」できる AXI-bolt FIFO を実装します。 つまり、これは最初の BUF_SIZE
サイクルを BRAM にフェア ストアすることもできます。また、要求された場合は、再びグラブ インターフェイスを介してそれらをフェア シップすることもできます。 バッファが使い果たされるとすぐに、これはリプレイのためにスリープしないか、記述を続行することもできます。 続行すると、通常の同期 FIFO として機能します。 このモジュールは、半二重イーサネット MAC の強制を支援することになっています。
axis_mii_tx
このモジュールは、強力または半二重イーサネット MAC の半分の送信を実装します。 強力な CS/CDMA アルゴリズムを実装し、8 バイトのプリアンブル/SFD を自動的に付加し、4 バイトの FCS を recordsdata に付加します。 ショーカモフラージュでは、最も便利なのは100Mイーサネットに役立ちます.10Mを追加できるのは間違いなく簡単だとしても. 赤身1000Mまでの計画すら立ててません
hub
Nポートハブ(リピータ)を実装IEEE 802.3 条項 29 で指定されているように、ウィッシュボーン管理インターフェイスを使用します。 すべてのポートは、個別の PHY (PCS を含む) とエラスティック バッファーを実装します。 ハブ コアは着信レコードデータを調整し、他のポートを介して送信し、主要なジャム バイトを生成します。 2d では、パーティショニングとハイパーリンクの安定性検出は実行されるべきではありません。
これは実装します従来のスイッチやハブと同じ LED 点滅。 沈殿すると、適切な LED が 30 Hz サイクル 1 回点灯します。 すべての LED が一斉に点滅します。 短すぎて見ることができないシグナルを表示するのに適しています.
mdio
ウィッシュボーン ブリッジへの MII 管理インターフェイスです。 IEEE 802.3 22.2.4.5 で指定されている管理フレームをデコードします。 Wishbone スレーブがタイムアウトするかエラー応答を返した場合、MDIO ラインは過剰インピーダンス モードのままになります。 これにより、22.2.4.3.
mdio_io
このモジュールは、MDC、MDIO 信号用の適切な I/O ブロック、および外部ディグリー シフター用の出力イネーブルをインスタンス化します。 mdio
モジュールで使用することを意図しています。
mdio_regs
このモジュールは、ウィッシュボーン インターフェイスを介して IEEE 802.3 条項 22 レジスタを実装します。 おそらく、mdio
モジュールまたは内部のウィッシュボーン バスと一緒に装着することもできます。 通常の MII レジスタに加えて、ベンダー固有のアドレス リビールにいくつかのエラー カウンタ レジスタを追加で実装します。 自動ネゴシエーションはまだサポートされていません。
mii_elastic_buffer
これは、MII のエラスティック バッファを実装します。 これは、内側の次数が半分になったときにレコードデータが最も簡単に供給される FIFO です。 これにより、ネイティブ オシレーターと距離のある損傷の間のクロック パドルの変動を滑らかにすることができます。
このモジュールは、受信 MII 信号 (RX_CLK
、 用の適切な I/O ブロックをインスタンス化します。 )RX_DV
、RXD
、および RX_ER
)。 ネイティブおよび一部の距離ダメージ クロック レートの変動に起因して、RX_CLK
のデューティ サイクルもかなり変動する可能性がありますが、それでも永続的に制限内に留まります。 アイソレーション対応
mii_io_tx
このモジュールは、送信 MII 信号 (TX_CLK
、 TX_EN
、TXD
、TX_ER
)。 アイソレーション対応
nrzi_decode
NRZI信号をNRZにデコードするモジュールです
nrzi_encode
このモジュールはNRZ信号をNRZIにエンコードします.
pcs_rx
pcs_rx
このモジュールは、IEEE で指定されている 100Dark-X PCS の半分の受信を実装します。 802.3 24.2。 内部的には、pcs_rx_bits
モジュールがシリアルからパラレルへの変換を実行し、アライメント タスクを処理します。 これは、キー受信公開マシンを実装する pcs_rx
モジュールによって管理されます。 待機中のパケットはサポートされるべきではありません。 2 つ以上の怠惰なビットがコンパイルされて、パケット間で最もモダンになります
pcs_tx
このモジュールは、100Dark-X PCS の半分の送信を実装します。 IEEE 802.3 24.2 で指定されているとおり。 これは、リビール マシンとエンコーディング タスクのかなり単純な実装です。
phy_core
このモジュールは 100Dark-X PCS を統合しますとPMA、および100Dark-T PMDの(デ)スクランブリングピース。 ループバックのパフォーマンスを調整します。 さらに赤身肉アップ衝突チェックアウトです
pmd_dp83223
このモジュールはNational Devices DP83223「ツイスター」トランシーバーと組み合わせた場合の 100Dark-T PMD ((スクランブル解除) を除く)。 送信の半分はかなり簡単で、pmd_dp83223_rx
モジュールで多くのトリック部分が実行されます。 このモジュール赤身アップループバック.
pmd_dp83223_rx
を使用して適切なサンプルを選択します。 DDR FF で 250 Mhz クロックを使用し (直角位相の 4 つの 125 MHz クロックに対して)、オプション タスクが複数のクロック サイクルに分割されるため、特定の実装は少し異なります。 ほとんどのサイクルでは 1 ビットのレコードデータが構築されますが、ネイティブ エンドと距離のあるエンドの間の周波数の変動により、現在は 0 または 2 ビットが生成されます。 これは、PLL ベースの完全なソリューションと比較して不利な点です。これは、PCS までのレコード データ コースの合計余剰 (ラウンドアバウト スキームでレコード データの整列に成功した後) が、これらのエッジ条件と競合しなければならないためです。 それにもかかわらず、内部の曖昧に指定された膨大な数の iCE40 PLL を回避します。
reset_sync
このモジュールは、外部リセット信号 (非同期音声および起動) をネイティブ クロック ドメイン (非同期音声、非同期起動) に同期させます。 グリッチフィルタにより、偽造リセットを抑制します。
このモジュールは、ANSI X3.264-1995 ピース 7.1.1 で説明されているスクランブラを実装します。
uart_tx
uart_tx
AXI-bolt を受け入れる老朽化した UART 送信モジュール。 8n1 が最も便利です。 115,200 ボーと 4,000,000 ボーをサポート
uart_rx
AXI-bolt を出力する老朽化した UART 受信モジュール。 8n1 が最も便利です。 115,200 および 4,000,000 ボーをサポートします。 ブレークを(単一の)フレーム エラーとして正常に検出し、微小な配信ビットを無視します。
このモジュールは、上記の UART コアと AXI-bolt ブリッジを組み合わせて、UART 経由でウィッシュボーン バスを制御できるようにします。 おそらく、内部バッファリングがまったくない可能性がありますが、いくつかの FIFO は、より多くの進行中のトランザクションを可能にするために努力なしで追加される可能性があります。 2 次元では、これは 16 ビットの粒度を持つ 16 レコードのデータ バスに役立ちます。 本体エラー (ブレーク) はブリッジをリセットし (それでも UART はリセットしません)、同期のための「帯域外」機能を提供します。
wb_mux
これは簡単なウィッシュボーン マルチプレクサを実装し、1 回の把握で複数のスレーブにアクセスできるようにします。 アドレスのデコードは、すべてのスレーブに (先行デコードされた) アドレス ビットを割り当てることによって大幅に簡素化されます。
wb_reg
ウィッシュボーン バスにレジスタ ステージを追加します。 これはタイミングを強化するのに役立ちますが、レイテンシのサイクルが追加されます (およびスループットが低下します)