量産前に適切なハードウェア検証とストレステストを実施することで、リコールや再設計にかかる数百万ドルを節約できます。このアプリケーションノートでは、Moku:Go ロジックアナライザ / パターンジェネレーター 入力を切り替えて対応する出力を記録することで、デジタル 4 ビット加算器を検証するために使用されます。さらに、クロック レートを変更してクロック周波数を上げてハードウェアのストレス テストを実施し、ユーザーが障害について理解できるようにします。
Moku:Go は、2つのアナログ入力、2つのアナログ出力、16個のデジタル I/O ピン、およびオプションの統合電源を備えた1つの高性能デバイスに13台以上のラボ機器を組み合わせています。
Mokuをデモモードで試す
Mokuアプリをダウンロード →
よくある質問への回答
知識ベースをご覧ください →
Mokuユーザーとつながる
ユーザーフォーラムに参加する →
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つは入力Cを伝送します。in論理演算後、入力Snの合計を出力し、出力Cを出力します。でる 論理ゲートには、XOR、AND、ORゲート用に市販の論理集積回路(IC)74LS86、74LS08、74LS32の3種類を使用しました。論理ICの詳細なレイアウトと論理ゲート間の配線接続については、それぞれ図1(a)と(b)を参照してください。
図1: (a) AND、XOR、OR ゲートとして使用されたロジックIC。 (b) 1ビット全加算器を構築するロジック。
4ビット加算器回路はCを接続することによって構築されましたでる 下位桁加算器からCへのポートin 次の有効数字の。Cin 最下位桁については、常に低い値のままにした。Cでる 最上位加算器 (C3)は、システム全体の最上位桁を表すために使用されました。4ビット加算器は、ポートAを介して2つの4ビット数値を受け取ります。0-3、B0-3、そしてピンSに結果を表示0-3両方の入力が0b1111に設定された場合、C3 高い場合は高レベルになります。そうでない場合は、低い状態のままです。図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 Logic Analyzerのランダムパターン生成機能を利用しました。長さ1024のランダムパターンを、62.5Hzから62.5MHzまでの可変クロック周波数で生成しました。生成された出力パターンと入力パターンは、MATLABで記録・解析しました。
図5: 回路のストレス テストにランダムに生成されたパターンが使用された。
自動検証のための MATLAB スクリプト
自動検証スクリプトでは、各加算器内の論理ゲートの動作がMATLABの組み込み論理演算子を用いて明示的にシミュレートされました。以下のコードスニペットは、PIN 1と2でランダムに生成された信号を読み取り、Sの期待出力を計算します。0 およびC1 全加算器1(FA1)用。計算された C1は、次のコードブロックで使用され、次の FA の動作をシミュレートします。%%%FA1 の 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
回路全体の最終的なヒット率は、次のコードブロックによって計算されました。%%%FA2 の 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
4ビット加算回路の最終的なヒット率をクロック周波数の関数としてプロットしたものが図6です。ヒット率はy軸にヒット率(%)で表され、x軸にはヘルツ(Hz)単位で測定されたクロック周波数が表示されています。回路は1.25MHzまで安定していました。クロック周波数がさらに上昇すると、パフォーマンスが大幅に低下することが確認されました。このことから、回路は31.25Hz~1.25MHzの周波数範囲で安定して動作していたと結論付けることができます。hit = 0; の 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;

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




