Speed2000 ソフトウェア学習と C++ 学習

  1. オーバーライドできるのは仮想関数のみです;
    #include
    #include

名前空間 std を使用します。

void process(int& i)
{ std::cout<<i<<" は lvalue"<<endl; } void process(int&& i) { std::cout<<i<<" は rvalue"<<endl; } }





template
void test(T&& i) //ユニバーサル参照はテンプレート内でのみ発生できます
{ process(i); }

int main()
{ int i = 0; プロセス(i); プロセス(1); 0を返します。}




2) 可変パラメータテンプレートの例:
#include
#include

名前空間 std を使用します。

テンプレート
ostream& printMsg(ostream& os,const T& t)
{ os <<t<<endl; OSを返します。}


template<typename T,typename… Args>
ostream& printMsg(ostream& os,const T& t,Args… args )
{ os <<t<<" "; printMsg(os,args…); OSを返します。}



int main(void)
{ printMsg(cout,1,“string”,0.0​​,3L,“aaa”,“bbb”); 0を返します。}


//プログラムの宣言とテンプレートの定義が同じファイル内にある理由: リンク前にモジュールのインスタンス化が行われるため、別々に書くと定義ファイルが見つからない; クラステンプレートは一般的なデータコンテナをカプセル化できる; テンプレートのパラメータは「」に分割され

いる「型パラメータ」と「非型パラメータ」。
集合体初期化はリスト初期化とも呼ばれます。

template<class T,size_t N>
class arr
{ public: T dat[N]; T 演算子[](size_t n) { if(n < N) { return dat[n]; 「インデックスが範囲外です!」をスローします} };










テンプレート
struct A
{ public: A(T v) : age(v){} T age; };



int main(void)
{ Aa = 20; cout<<a.age<<endl; 0を返します。}



1) 樹脂プラグホール、ハーフプラグホール、バックドリルなどのスルーホール加工技術の紹介、リフローはんだ付け、ウェーブはんだ付けなどの
PCB 組立プロセス、主な手順: 受入材料検査、部品構成、はんだペーストの洗浄、パッチング、溶接、PCB 溶接の検出、テストなど;
2) 伝送線路:
伝送線路の定義、伝播方法、伝送線路方程式;
2 つのパラメータ: 集中パラメータと分布パラメータの紹介;
教師用コースウェアでは、なぜ波長が周波数 50hz の交流 6000km? C= λ f; または V = λ f //λ は、ラムダとして読み取られます
300000km ÷ 50 = 6000km
媒体中の電磁波の伝播速度は、媒体の誘電率;
伝送遅延 τ = √LC;
伝播方法: TEM、TE、TM およびその応用の概要;
伝送線路方程式の意味: 伝送線路方程式は電信方程式とも呼ばれます。電信方程式、特性インピーダンス、反射係数、入力インピーダンスなどを導出可能;
特性インピーダンス: Z0=√L/C;
3) インピーダンス計算、積層計画解析、si9000 ソフトウェアの使用;
エッチング係数とその定義信号への影響、一般的に使用される基板仕様と銅箔仕様、
積層の一般原則:信号層とリフロー層、信号層と信号層(クロストークに注意)、および積層設計ルールにおけるさまざまな利点と欠点を学びました
。 2 層基板のインピーダンス制御: 基準面の人工設計、
Si ソフトウェアの使用とさまざまなパラメータの紹介、適切な積層構造を設計するための si9000 ソフトウェアの使用方法。

//関数テンプレートの学習
関数テンプレートの使用はインスタンス化とも呼ばれます。inline
と constexpr はテンプレート パラメーター リストの後、戻り値の型の前に配置する必要があります。
非型の整数パラメーターへのバインドは定数式である必要があります。テンプレート定義では、非型パラメータは定数値です。

2) クラステンプレートの宣言と定義を分離:
#include
#include

名前空間 std を使用します。

テンプレート
クラス A
{ public: void printMsg(const T& a); };


テンプレート
void A::printMsg(const T& a)
{ cout<<a<<endl; }

int main(void)
{ A a; a.printMsg(4); 0を返します。}



3) メンバーテンプレートの場合:

3日目: レベル学習:
一般的に使用される論理レベル: TTL、CMOS、LVDS、ECL、PECL、SSTL、POD12;
論理レベルが満たすべきパラメータ関係: Voh>Vih>Vt>Vil>Vol;
TTL 使用上の注意: TTLレベルには一般に深刻なオーバーシュートがあり、最初は 22Ω または 33Ω のストリングになります。TTL レベルがフローティングの場合、デフォルトはハイ レベルになり、1K の抵抗がプルダウンに使用されます。トランジスタ - トランジスタ ロジック レベル (TTL) トランジスタ トランジスタロジック [ˈɑːksaɪd
]
CMOS の正式名称:相補型金属酸化物半導体 (相補型金属酸化物半導体);
CMOS レベルは pmos 回路と nmos レベルの回路で構成されます;
CMOS は TTL よりも大きなノイズコンテナを持ち、入力インピーダンスは TTL よりもはるかに大きくなりますTTL のそれ;
正孔の伝導率は電子より低いため、CMOS 回路の立ち上がり時間は立ち下がり時間より長い; sstl レベル
: スタブ直列終端論理; 基本的に HSTL と同じ;
[ˈsudoʊ]
POD レベル: ペスド オープン ドレイン、podとsstlの最大値 違いは受信側の端子電圧にあり、podはvddq、sstlはvddq/2です。POD は I/O 消費電力を削減できます。

LVDSレベル:低電圧差動レベル、主な特長は、
低電圧スルーレート:約350mV、低電流駆動モードにより高速伝送が可能、低
消費電力:定電流源電流駆動(3.5mA)です。干渉が最も少なく、消費電力が少なく、
比較的遅いエッジ レート (dV/dt は約 0.3V/0.3nS、つまり 1V/ns) であり、
差動モードの入出力を備えています。干渉防止機能があり、
アイドル入力ピンは入力ノイズを防ぐためにフローティングのままにする必要があり、アイドル出力ピンは消費電力を削減するためにフローティングのままにしておく必要があります。

ECL レベル (エミッタ結合論理)、エミッタ結合論理回路;
ECL 回路は非飽和デジタル論理回路であり、内部トランジスタは線形領域またはカットオフ領域で動作するため、最も高速な回路形式の 1 つです
。この回路は負電圧で動作するため、高速、強力な駆動能力、低ノイズ、容易な統合が特徴ですが、DC 消費電力が大きいという欠点があります。

CML レベル (電流モード ロジック) は差動ラインの形で内部的に整合され、速度は 3G に達し、ポイントツーポイントのみ可能です。GTL レベル (ガニング トランシーバー ロジック) 無線トランシーバー ロジックはコンパレーターによって特徴付けられます
。入力として構造; HSTL
レベル 主に QDR メモリで使用され、入出力コンパレータ構造を使用します。

差動レベル相互接続:
LVDS 相互接続を例に挙げます: DC マッチングの場合、受信側に 100Ω の抵抗を追加する必要があります。AC マッチングの場合は必要ありませんが、DC バイアスの有無に注意してください。追加の 1.2V を追加する必要がない場合。

4 日目: アイ ダイアグラム、S パラメータ、および反射学習
高速シリアル バスとパラレル バスの比較: 主な電気仕様が変更され、損失が支配的;
アイ ダイアグラムの定義: アイ ダイアグラムは一連のデジタル信号を重ね合わせて表示します。オシロスコープで見ると、グラフは伝送リンク内のすべてのデジタル信号の全体的な特性を反映しています;
反射学習:
T 字型接続もインピーダンスの不連続を引き起こします;
反射の結果: アナログ信号の場合は定在波、デジタル信号の場合はリンギングが発生します。信号の完全性を破壊します;
反射係数: 反射係数はソース端反射係数 (Rs-Z0/Rs+Z0) と端反射係数 (Rl-Z0/Rl+Z0) に分けられます; 一般的なマッチング方法: ソース端直列接続 ( Rs
プラス 駆動源の整合抵抗 = 伝送線路インピーダンス Z0);
負荷端は並列終端、テブナン整合、ダイオード終端は整合、RC 終端;
反射条件は考慮されません: 遅延が 20 未満の場合立ち上がり時間の %、突然の伝送線の長さは信号の立ち上がり時間より短く、スタブの長さは信号の立ち上がり時間より短い。

学習 5 日目: トポロジーとクロストークの学習:
トポロジーは信号品質にとって非常に重要です. 良いトポロジーの特徴: 信号波形品質の確保、製品のノイズマージンの向上、製品の信頼性の向上、PCB レイアウトの容易化、デイジーチェーントポロジー、クロス
トーク行マッチングと並列マッチング、
フライバイ トポロジ、
フライバイ トポロジは、実際にはデイジー チェーン トポロジの特殊なケースです。デイジーチェーントポロジの分岐、つまり「SUB ライン」が非常に短い場合、「フライバイ」と呼ぶことができます。フライバイとプルアップ抵抗、スタートポロジ、リモートクラスタトポロジ、クロス
トーク
解析
:奇数モードと偶数モードでは、クロストークは信号が上昇または下降し、電流が変化したときにのみ発生します。クロストークは
容量性クロストークと誘導性クロストークに分けられます。
近端クロストーク:干渉源が干渉源の送信端に干渉を引き起こす場合。
遠端クロストーク: 干渉源によって干渉源の受信端に引き起こされる最初の干渉。

//名前空間を使用した関数テンプレートの具体化
std;
class gril
{ public: string name; int age; };



テンプレート
void swapNum(T& a,T& b)
{ T tmp = a; a = b; b = 温度; cout<<「関数テンプレートの実行中」<<endl; }




template<>
void swapNum(gril& g1,gril& g2) //関数テンプレートの特殊化
{ int tmp = g1.age; g1.age = g2.age; g2.age = tmp; cout<<“関数テンプレートの詳細実行中”< <endl; }




int main(void)
{ int a = 10,b = 20; swapNum(a,b); cout<<"a: "<<a<<" b: "<<b<<endl;


gril g1,g2;
g1.age = 4;
g2.age = 7;
swapNum(g1,g2); //関数テンプレートの具体化を使用
cout<<"g1.age: "<< g1.age<<" g2. age : "<< g2.age <<endl;
return 0;
}

2) 関数テンプレート内の auto と decltype の組み合わせでは、
template<typename T1, typename T2>
auto fun(T1 x, T2 y) -> decltype(x + y) //c++14 標準以降、"- > decltype(x + y)" は末尾の戻り値の型を省略できます;
{ decltype(x + y) tmp; tmp = x + y; return tmp; } int main(void) { auto num = fun(3,4.6); cout<<num<<endl; return 0; }










3) クラステンプレート#include
#include
#includeの場合

名前空間 std を使用します。

template<class T1,class T2 = double >
class AA
{ public: AA(T1 a,T2 b) : a_(a),b_(b){} T1 geta() { T1 n = 3; return a_ + n; } T2 getb() { T2 n = 3; return b_ + n;} T1 a_; T2 b_; }; int main(void) { AA aa("3",6); //クラステンプレートを使用する場合、データ型クラステンプレートのコードに合わせる必要がある; // cout<<aa.geta()<<endl; //放置するとコンパイルエラーになるcout<<aa.getb()<<endl; return 0; }













template<class T1, class T2 = string > //デフォルトのテンプレートパラメータはクラスの外で定義できないため、string を削除する必要があります。
T1 AA<T1,T2>::geta() { T1 n = 3; return a_ + n;}

auto aptr = new AA<int,int>(5,8); //new を使用してテンプレート クラス オブジェクトを作成できます
cout<geta()<<endl;
//プログラム内では、テンプレート クラスのメンバー関数使用されるまで作成されません ;
//プログラムでは、クラスのポインタは作成されますが、クラスのオブジェクトは作成されないため、コンストラクタは呼び出されません。

4) クラス テンプレートを使用して、スタック関連の関数を作成しました。コードは次のとおりです:
#include
#include

名前空間 std を使用します。

// typedef 文字列 DataTpye;
テンプレート
クラス MyStack
{ プライベート: T* アイテム; 整数トップ; // 位置指定int stackSize; public: MyStack(int size) : stackSize(size),top(0) { items = new T[stackSize]; } ~MyStack(void) { 削除[]項目; 項目 = nullptr; bool isEmpty(void) { return top == 0; bool isFull(void) { return top == stackSize; bool Push(const T& item) { if(top < stackSize) { items [top++] = item; true を返します。}




























false を返します。
}
bool Pop(T& item)
{ if(top > 0){item = items[–top]; true を返す;} false を返す; } };



int main(void)
{ MyStack ss(5); ss.push(“aaa”); ss.push(“bbb”); ss.push(“ccc”); ss.push(“ddd”); ss.push(“eee”); 文字列項目。while(ss.isEmpty() == false) { ss.pop(item); cout<<"item は: "<<item<<endl; } }







5) テンプレート クラスの適用、固定長配列および可変長配列の適用の場合:
const を使用してメンバー関数を宣言し、この関数がクラス内のデータ メンバーを変更しないことを示します;
#include
#include
#include <string .h>
名前空間 std を使用します。

#MaxLen 10 を定義

テンプレート
クラス MyArray
{ private: T arr[MaxLen]; public: MyArray(){ memset(arr,0,sizeof(arr)); } ~MyArray(){} T& 演算子[](int ii){ return arr[ii ]; } //添え字演算子をオーバーロードすると、配列内の要素を変更できますconst T&operator[](int ii)const { return arr[ii];} //配列内の要素を変更できません; } ;







template
class Vector
{ private: int len; T* items; //配列要素public: Vector(int size = 10) : len(size){ items = new T[len]; } ~Vector() { delete[] items ; items = nullptr; } voidsize(int size) //配列のメモリ空間を拡張します{ if(size < len) return; T* tmp = new T[size]; for (int ii = 0; ii < len ; ii++ ) tmp[ii] = items[ii]; delete[] items; // 元の配列を解放します。items = tmp; // 配列ポインタが新しい配列を指すようにします。len = size; // 拡張された配列の長さ。} T& 演算子[](int ii) // オーバーロードされた演算子[] は配列内の要素を変更できます。{ if (ii >= len) { size(ii + 1); // 配列を展開します。























cout<<「実行中の外部配列関数-----」<<endl;
アイテムを返します
[ii];
}
};

int main(void)
{ Vector aa(1); aa[0] = "Xi Shi"; aa[1] = "Bingbing"; aa[2] = "Power"; aa[3] = "Golden Lotus"; aa [4] = “小青”; for (int ii=0; ii<5;ii++) cout << "aa[" << ii << "]=" << aa[ii] << endl; }



6) テンプレート クラスをネストして使用する場合:
#include
#include
#include <string.h>
名前空間 std を使用します。

テンプレート
クラス MyStack
{ プライベート: T* アイテム; 整数トップ; // 位置指定int stackSize; public: MyStack(int size = 3) : stackSize(size),top(0) { items = new T[stackSize]; } ~MyStack(void) { 削除[]項目; 項目 = nullptr; bool isEmpty(void) { return top == 0; bool isFull(void) { return top == stackSize; bool Push(const T& item) { if(top < stackSize) { items [top++] = item; true を返します。falseを返します。}






























bool Pop(T& item)
{ if(top > 0){item = items[–top]; true を返す;} false を返す; MyStack & 演算子=(const MyStack& v) { delete[] 項目; stackSize = v.stackSize; items = 新しい T[スタックサイズ]; for(int ii = 0; ii < stackSize; ii++) items[ii] = v.items[ii]; トップ = v.トップ; *これを返します; } };












template
class Vector
{ private: int len; T* items; // 配列要素public: Vector(int size = 2) : len(size){ items = new T[len]; } int size() const { return len; } } // 配列の長さを取得します。~Vector() { delete[] items; items = nullptr; } voidsize(int size) //配列のメモリ空間を拡張します{ if(size < len) return; T* tmp = new T[size]; for (int ii = 0; ii < len; ii++) tmp[ii] = items[ii]; delete[] items; // 元の配列を解放します。items = tmp; // 配列ポインタが新しい配列を指すようにします。len = size; // 配列の長さを拡張します。} T& 演算子[](int ii) // オーバーロードされた演算子[] は配列内の要素を変更できます。{ if (ii >= len) {























size(ii + 1); // 配列を展開します。
cout<<「実行中の外部配列関数-----」<<endl;
}
return items[ii];
}
};

int main(void)
{ Vector<MyStack> vs; vs[0].push(“111”); vs[0].push(“222”); vs[0].push(“333”); vs[1].push(“aaa”); vs[1].push(“bbb”); vs[1].push(“ccc”); for (int ii = 0; ii < vs.size(); ii++) // 遍历ベクトル容器。{ while (vs[ii].isEmpty() == false) // 遍历スタック容器。{ string item; vs[ii].pop(アイテム); cout << "item = "<item << endl; vs [ 2].push(“666”); vs[2].push(“444”);















for (int ii = 0; ii < vs.size(); ii++)         // 遍历Vector容器。
{
	while (vs[ii].isEmpty() == false)      // 遍历Stack容器。
	{
		string item; vs[ii].pop(item); cout << "item = " << item << endl;
	}
}    

}

6) クラス テンプレートの具体的なケース:
#include
#include
#include <string.h>
名前空間 std を使用します。

//クラステンプレートの具象化は、完全具象化と部分具象化に分けられます; 非具象クラスと一緒の場合、シーケンスが存在します;
template<class T1, class T2> //具象化されていないこのクラスはシールドできません、それ以外の場合はテンプレート クラス
クラスAA
{ public: T1 a1; T2 b1; AA(const T1& a,const T2& b) : a1(a),b1(b){cout<<”クラス コンストラクターが実行中です "<<endl; } void show() const ; }; template<class T1,class T2> void AA<T1,T2>::show()const { cout<<"具体化されたクラスがありません:"<<" a1 は: "<<a1<<" b1 は: 「<<b1<<endl; }










template
class AA<int,T> //部分具体化
{ public: int a1; T b1; AA(const int& a,const T& b) : a1(a),b1(b){cout<<「クラス コンストラクターが実行中です」<<endl; void show() const; }; template void AA<int,T>::show()const { cout<<" 部分の詳細化: "<<"a1 は: "<<a1<<" b1 は: "<<b1<<endl; }










template<>
class AA<int,string> //完全具体化
{ public: int a1; 文字列 b1; AA(const int& a,const string& b) : a1(a),b1(b){cout<<「クラス コンストラクターが実行中です」<<endl; void show() const; }; void AA<int,string>::show()const { cout<<"完全具体化: "<<"a1 は: "<<a1<<" b1 は: "<<b1<<endl; }









int main(void)
{ AA<int,string>aa(3,"abc"); //実行優先順位:完全具体化が先 > 部分具体化 > 具体化なし; aa.show() ; return 0; }



1) Speed2000 ソフトウェア設定:
// 発電機ソフトウェアを選択し、関連するソフトウェアを開き、ファイル -> 新電力グランドノイズ シミュレーション ダイアログ ボックスを選択します。
// ツールを選択 -> オプション -> オプションの編集 -> グリッドとユニット ダイアログを選択します。ボックス、レイアウト 単位としてミルを選択し、オブジェクトをグリッドにスナップすることをチェックします;
//—>電気モデル、ユーザー定義の最大周波数抽出パラメーターを選択します;
//—>フィールド ソルバー、自然境界条件を選択します;
2) ネットワークを追加します:
//Inネット マネージャー、右クリックして [新規] を選択し、ネットワークを生成します。名前は変更できます。完了後、電力ネットワーク、接地ネットワーク、または信号ネットワークとして分類できます。3) ワイヤを追加: 編集

、トレース -> 追加, ワイヤーを追加できます. ワイヤーを選択した後, 線幅を設定し、それにネットワークを与え、ワイヤーを移動することができます; 4) ビアの設定: カスタムビアの追加: 編集 -> スタックアップ -> パッド
スタック
- > 下の新しいボタンを選択して新しいビアを追加します。
形状で円、幅 22、高さ 22、アンチ 32mil、外径 10mil を選択し、最後にデフォルトとして設定してデフォルトのビアにします。5) ビアが接続されまし
たトレース銅箔へ:
必ずノードを表示して、ノード ホールにパンチされるようにします。ビア編集ダイアログ ボックスが表示されます。プロパティを選択し、ビア ホールが対応するネットワークに接続されている場合は、対応するネットワークを選択します。色が変わります;
ワイヤにビアホールを追加する場合は、ノードを追加してビアホールを追加する必要があります;
6) 銅箔処理:
「-edit->shape->」を選択して銅箔を追加および削除し、最後に形状プロセスを実行してマージ銅箔を完成させます。

//テンプレートのクラスと関数
#include //157
名前空間 std を使用したテンプレートのクラスと関数。

//テンプレート クラスと関数
//テンプレート クラスは、関数のパラメータと戻り値に 3 つの形式で使用されます;
template<class T1, class T2>
class AA
{ public: T1 x; T2 y; AA(const T1 a, const T2 b ) : x(a),y(b){} void show()const { cout<<"show x: "<<x<<"\t\tshow y: "<<y<<endl; } };








class BB
{ public: void show()const { cout<<“show BB class”<<endl; } };





// AA<int, string> func(AA<int, string>& aa)
// { // aa.show(); // cout << “调使用了func(AA<int, string> &aa)関数。\n”; // aaを返します; // }



// template<typename T1,typename T2>
// AA<T1, T2> func(AA<T1, T2>& aa)
// { // aa.show(); // cout << "Func() はAA<T1, T2> &aa) 関数を呼び出しました。\n”; // return aa; // }



template
T func(T& aa)
{ aa.show(); cout << "func(T& aa)> &aa) 関数が呼び出されます。これは関数テンプレートの本質を具体化しています\n"; return aa; }



int main(void)
{ AA<int,string> aa(4,“helloworld”); 関数(aa); BB bb; 関数(bb); 0を返します。}





6) テンプレート クラスとフレンド
template<class T1, class T2>
class AA
{ public: T1 x; T2 y; AA(const T1 a, const T2 b) : x(a),y(b){} friends void show (const AA<T1,T2>& a) //このソリューションの本質は、コンパイラーがテンプレート パラメーターを使用してフレンド関数の生成を支援することです; { cout<<" show x: "<<ax<<"\ t \ tshow y: "<<ay<<endl; } };








int main(void)
{ AA<int, string> a(88, "私は愚かな鳥です。"); show(a);

AA<char, string> b(88, "我是一只傻傻鸟。");
show(b);

return 0;

}

6) テンプレート クラスのメンバ テンプレート (メンバ テンプレートにはクラス テンプレートと関数テンプレートが含まれます)
#include //157
名前空間 std を使用したテンプレート クラスと関数。

//クラスモパネルに含まれるクラスモパネル
template<class T1,class T2>
class AA
{ public: T1 m_x; T2m_y; AA(const T1 a,const T2 b) : m_x(a),m_y(b){} void show(void) { cout<<"show m_x: "<<m_x<<"\tshow m_y: "<<m_y <<endl; }







template<class T>
class BB	
{
public:
	T m_a;
	T1 m_b;
	BB(){}
	void show(); //只保留声明
	// void show() const {cout<<"show x: "<<m_a<<"\t\tshow y: "<<m_b<<endl;}
};
BB<string> m_bb; //m_bb类AA的一个成员变量

template<class T>
void show(T tt); //类模板AA的成员函数,所以可以访问类A的成员变量;
// {
// 	cout<<"show tt: "<<tt<<endl; 	
// 	cout<<"show x: "<<m_x<<"\t\tshow y: "<<m_y<<endl;
// 	m_bb.show();
// }

};

//テンプレートクラスのメンバー テンプレートクラスの追加クラス定義
template<class T1, class T2>
template
void AA<T1,T2>::BB::show()
{ cout<<"show x: “<<m_a< < ”\t\tshow y: "<<m_b<<endl; }

//テンプレートクラスのメンバテンプレート関数がクラス外で定義されている
template<class T1, class T2>
template
void AA<T1,T2>::show(T tt)
{ cout<<"show tt: "<<tt< <endl; cout<<"show x: "<<m_x<<"\t\tshow y: "<<m_y<<endl; m_bb.show(); }



int main(void)
{ AA<int, string> a(88, "私は愚かな鳥です。"); a.show(); a.m_bb.m_a = "hello world"; a.m_bb.show () ; a.show("111111111111111111"); 0 を返す; }






学習 7 日目
ケース プラクティス 1 (外部電源信号ソースの呼び出し):speed2000 は、抵抗器 -> ビア -> 負荷 -> グランド パスを通過する信号と、観察された電圧と電流の分布をシミュレートします。1) ソフトウェアを開いて次を追加します
。先生から提供されたファイル、xxx.spd ファイル;
2) ラミネート情報、パッド情報などが標準であるかどうかを確認します;
3) スティミュラス ソースを追加すると、コンポーネント マネージャー ダイアログ ボックスが表示されます。下のロードをクリックし、 xxx.ckt ファイルを使用した刺激ソース;
4) コンポーネントをモデルに追加し、新規を選択してコンポーネントを追加します;
5) シミュレーション時間を設定します (通常は 10ns);
6) 電圧観測点と電流観測点を設定します。マウスの左ボタンは正、マウスの右ボタンは負、
7) グリッドを設定します (デフォルト値で十分です)、
8) シミュレーションを開始し、シミュレーション結果に基づいて適格かどうかを確認します。

実践事例 2 (シミュレーション波形結果の計算):
操作手順は基本的に実践 1 と同じですが、異なる点:
ビア追加に関する以前の学習が復習され、
セットアップ -> シミュレーション ビュー - などの方法を使用してプレーン ノイズが追加されます。 > レイアウト電圧、今度は平面を参照します。speed2000
ソフトウェアの使用に習熟することが最優先です。

おすすめ

転載: blog.csdn.net/qq_30143193/article/details/131550169