アプリケーションノート

デジタル回路検証

Moku:Go ロジックアナライザを使用したロジックICのストレステスト

量産前に適切なハードウェア検証とストレス テストを行うことで、リコールと再設計にかかる費用を数百万ドル節約できます。 このアプリケーションノートでは、Moku:Go ロジックアナライザ/パターンジェネレーターを利用して、入力を切り替え、対応する出力を記録することでデジタル4ビット加算器を検証します。 さらに、ハードウェアのストレステストを行うためにクロックレートを変更し、クロック周波数を増加させて、ユーザーに障害に対する洞察を提供します。

印刷可能なバージョンをダウンロード


Moku:Go

Moku:Go は、2つのアナログ入力、2つのアナログ出力、16個のデジタル I/O ピン、およびオプションの統合電源を備えた1つの高性能デバイスに13台以上のラボ機器を組み合わせています。

概要

すべてのデジタル回路の中心には、電気信号のオン/オフを切り替えるために使用される基本的な半導体デバイスであるトランジスタがあります。 これらのスイッチのさまざまな配置は、コンピューティングの基本要素を構成する論理演算子に取って代わられます。 最も複雑な集積チップ (IC) であっても、これらの基本的な構成要素を使用して構築できます。 このアプリケーションノートでは、さまざまな論理ゲートを備えた4ビット加算回路を構築することで、デジタル回路の設計プロセスを体験します。 Moku:Go ロジックアナライザ/パターンジェネレーターを利用して設計を検証します。 その後、Moku:Go MATLAB API を利用して検証プロセスをスケールアップおよび自動化し、ストレス テストを実行して回路の最大クロックレートを決定します。

回路設計

4ビット加算器は、4つの完全な1ビット加算器回路で構成されています。 各加算器には2つのデータ入力 An と Bn が含まれており、1つは入力 Cin を伝送します。 論理演算の後、入力 Sn の合計が生成され、出力 Cout が送信されます。 論理ゲートには、3つの既製論理集積回路 (IC) 74LS86、74LS08、および 74LS32 が XOR、AND、OR ゲートに使用されました。 論理 IC の詳細なレイアウトと論理ゲート間の配線接続は、それぞれ図1 (a) と (b) に示されています。

図1: (a) AND、XOR、OR ゲートとして使用されたロジックIC。 (b) 1ビット全加算器を構築するロジック。

4ビット加算器回路は、Coutポートを下位桁加算器から次の有効桁の Cinに接続することによって構築されました。 最下位桁の Cin は一定の低いままのままです。 最上位加算器 (C3) の Coutは、システム全体の最上位桁を表すために使用されました。 4ビット加算器は、ポート A0-3、B0-3を介して2つの4ビット数値を受け取り、結果をピン S0-3に提供しました。 両方の入力が 0b1111 に設定されている場合、C3は High になります。 それ以外の場合は、ロー状態のままです。 図2は、回路図 (a) とブレッドボード上に構築された実際の回路を示しています。

図2: (a) 4ビット加算器の回路図 (b) ブレッドボードのレイアウト。

Moku:Go のロジックアナライザを使用したシステム検証

計測器の接続

回路を検証するために、4ビット加算器の入力と出力を Moku:Go 16ピン デジタル I/O に接続しました。詳細な接続とピン配置マップを図3に示します。

図3: Moku:Go デジタル I/Oと4ビット加算器の間の詳細な接続マップ。

単一入力テスト

まず、入力レベルを手動で切り替えて回路をテストしました。 図4では、ロジックアナライザの出力 (ピン0~8) は 0b0101 (A)および0b0110(b)に設定されており、10進数で5+4に変換されます。 ピン9~12から0b1001を読み取ります。これは 10進数の9に対応します。 ピン10のキャリーアウト信号は Low であり、オーバーフローがないことを示していました。

図4: 回路は入力ロジックレベルの手動切り替えで最初にテストされた。

ランダムパターンとストレステスト

テストセットをスケールアップして限界を把握するために、Moku:Go ロジックアナライザのランダムパターン生成機能を利用しました。長さ1024のランダム パターンが、62.5 Hz ~ 62.5 MHz の可変クロック周波数で生成されました。ランダムに生成された出力パターンと入力パターンの両方が記録され、MATLAB で分析されました。

図5: 回路のストレス テストにランダムに生成されたパターンが使用された。

自動検証のための MATLAB スクリプト

自動検証スクリプトでは、各加算器内の論理ゲートの動作が MATLAB 組み込み論理演算子を使用して明示的にシミュレートされました。 次のコード スニペットは、PIN 1と2でランダムに生成された信号を読み取り、全加算器1(FA1) の S0と C1の予想される出力を計算します。

%%%FA1
for i = 1:n
    S0(i) = xor(xor(data(i,2),data(i,3)),Cin);
    C1(i) = or(and(Cin,xor(data(i,2),data(i,3))),and(data(i,2),data(i,3)));
end

計算された C1は、次のコードブロックで使用され、次の FA の動作をシミュレートします。

%%%FA2
for i = 1:n
    S1(i) = xor(xor(data(i,4),data(i,5)),C1(i));
    C2(i) = or(and(C1(i),xor(data(i,4),data(i,5))),and(data(i,4),data(i,5)));
end

回路全体の最終的なヒット率は、次のコードブロックによって計算されました。

hit = 0;
for i = 1:n
    if data(i,10)==S3(i) && data(i,11)==S2(i) && data(i,12)==S1(i) && data(i,13)==S0(i)
        hit = hit +1;
    end end
hit_rate = hit/n*100;

4ビット加算回路の最終的なヒット率をクロック周波数の関数として図6にプロットしました。ヒット率は y 軸の (ヒット率 %) として表され、クロック周波数はヘルツ (Hz) で測定されました。 x軸に表示されました。 回路は1.25 Mhz まで安定していました。 クロックレートがさらに増加すると、パフォーマンスの大幅な低下が観察されました。 回路は31.25 Hz ~ 1.25 MHz の周波数の間で安定した条件で動作すると結論付けることができました。

図6: クロック周波数の関数としての4ビット加算器のヒット率。

まとめ

チュートリアルのパート2では、MathWorks の Simulink と HDL Coder を利用して Moku:Pro 上で DSP モデルを構築、検証、展開する方法について説明しました。 MATLAB のみのアプローチと比較して、Simulink では、DSP ライブラリを介して DSP を設計し、固定小数点モデルを使用してモデルを最初から構築するオプションが提供されます。 これは、複雑な DSP システムを構築する場合におすすめです。


ご質問等ございますか?印刷可能なバージョンが必要ですか?

当社までご連絡ください: support@liquidinstruments.com