デジタル回路

「デジタル回路」の編集履歴(バックアップ)一覧に戻る

デジタル回路 - (2020/10/12 (月) 16:40:42) のソース

#contents()

**基本
少し専門的な用語が多いので補足しておきます。

***用語
回路素子・・・サーキットボード上に置けるチップのうち、入力された信号に対して、別の信号を出力するものの総称です。
立ち上がり・・・信号がオフからオンに切り替わる瞬間の事です。
立ち下り・・・信号がオンからオフに切り替わる瞬間の事です。
微分回路・・・立ち上がりや立下りなど、信号の強さが変わったことを検出する回路です。
パルス・・・一定時間だけオンになる信号のことです。LBP的には単発信号と言うと分かりやすいと思います。
RAM、保持回路・・・メモリ、記憶素子の事です。オンやオフなどの状態を記録しておく為の回路です。
遅延・・・信号の変化を、一定時間遅らせて次に伝える事を言います。

***デジタル回路とは?
デジタル回路とは、マイクロチップ内の回路のうち、デジタル信号を専門に処理する回路のことです。

マイクロチップ上の回路を流れる信号には、大きく分けて2種類の情報が含まれています。
ひとつはオン・オフ情報で、配線や素子が光っていればオン、消えていればオフの信号が流れていることを表しています。
また、オンの状態には更に正と負の二つの状態(デジタル符号)が存在しており、一度オフになってしまうと符号は保存されません。オフの状態にも通常オフとnaturalと呼ばれる2種類があり、一部の入力特性に関係しています。これらを便宜上デジタル信号と呼びます。
もう一つは目に見えない情報で、-100から100までの数値が含まれています。これを便宜上アナログ信号と呼びます。
この項目では、デジタル信号を受けたときの回路素子の働きや、信号処理の応用例について説明します。

**回路素子
詳しい入出力特性は[[ガジェット毎の解説]]を参照

***ANDゲート(論理積)
入力の状態が全てオンになったときオンを出力します。
出力がオンの場合、そのデジタル符号は、全ての入力のうちデジタル符号が負のものが奇数個だった場合負、偶数または0個だった場合正になります。
設定で反転出力にした回路をNANDゲートと言い、応用次第でメモリなどのあらゆるデジタル回路を作ることが出来る万能素子です。

***ORゲート(論理和)
入力のいずれかひとつ以上がオンになったときオンを出力します。
出力がオンの場合、オンになっている入力のうち一番上のものと同じデジタル符号になります。
設定で反転したものをNORゲートと言い、NANDと同じく万能素子と呼ばれています。

***XORゲート(排他論理和)
入力のいずれかひとつだけがオンのときオンを出力します。
出力がオンの時、デジタル符号は入力に依存します。

***NOTゲート
入力状態をオンならオフに、オフならオンに反転します。
入力を出力につなぐと信号が振動して、最短周期(おそらく2フレーム)のパルス波を出力します。

***バッテリー
0のときはオフ、1~100のときは正のオン、-1~-100のときは負のオンを出力します。

***マイクロチップ
作動端子に結線したとき、オン状態では普通に中の回路が動作しますが、オフになると回路の状態が初期状態にリセットされます。

***スイッチ(T-FF)
入力がオンになったとき、出力の状態を反転させます。

***カウンター
出力がオフから正のオンになった回数をカウントし、設定した回数になったとき正のオンを出力します。
カウント数が1以上の時、負のオンをクロックするとカウント回数が減ります。この時カウントがフルだった場合は、出力もオフになります。
リセット端子がオンになった場合、それまでのカウントをリセットします。このとき、出力もオフになります。
ターゲットカウントを1にしたものをRS-FF(リセットセットフリップフロップ)と言い、SRAMとして利用できます。

***タイマー
一定時間が経過するとオンになる回路です。
スタート/ストップ設定のときは、オン状態になっている時だけカウントを進め、オフになったとき止めます。このときカウント状態は保持されます。
カウントアップの設定の時は入力がオンになったとき、出力がオフの状態でカウントをスタートし、出力がオンになるまで止まりません。
逆にカウントダウンの設定の時は入力がオンになったとき、出力がオンの状態でカウントをスタートし、出力がオフになるまで止まりません。
進む/戻る設定の時は、入力のデジタル符号が正の場合はカウントが進み、デジタル符号が負かオフの場合は戻ります。
リセットの入力がオンになると、カウントがゼロに戻ります。
応用が利く素子で、出力をリセットに返すと設定時間を周期としたパルス信号を出力します。
また、ターゲットタイムを0.1秒にして、リセットにだけ結線すると、リセットへの入力の立ち上がり検出が出来ます。
入力を反転させれば立ち下がり検出も可能です。ただしこちらの回路では0.1秒のパルスなので、最短時間のパルスが出したい場合は応用複合回路のDIFU,DIFDを参考にしてください。

***ランダムチック
入力端子がオンになっているときだけ動作し、オフになると出力も全てリセットされます。各設定時の動作は以下のとおり。
一度ずつ・・・出力のうちいずれかひとつだけがオンになります。
足す・・・初期状態では出力は全てオフで、いずれかが最初にオンになり、次は残った出力のうちいずれかの端子がオンになり・・・と繰り返し、全てオンになると、入力がオフになるまでそのままです。
フルになったらリセット・・・足すの動作の、フルになったらまたゼロからやり直すバージョンです。
切り替え・・・各出力が独立してランダムにオンオフ状態を変更します。

***方向分割ツール
入力信号のデジタル符号に反応し、正の場合はプラス出力、負の場合はマイナス出力が正のオンになります。

***方向結合ツール
プラス入力がオンの場合は正のオンを、マイナス入力がオンの場合は負のオンを、双方オン、または双方オフの場合はオフを出力します。すべての回路素子の中で、唯一OFF(natural)信号を出力します。

***セレクター
最後にオフからオンになった端子に対応した出力をオンにして、その状態を保持します。
複数の入力が同時にオンになった場合、下の入力のほうが優先されます。
サイクル端子の入力がオフからオンになったとき、その信号のデジタル符号を判断して、プラスなら下にひとつ、マイナスなら上にひとつ出力端子のオン状態を切り替えます。

***シーケンサー
パネルに配置した素子を、シーケンスバーが通過している間だけ動作させます。毎秒設定で、縞模様ひとつをシーケンスバーが通過する時間を設定できます。
各素子の動作は以下のとおりです。
ゲート系、方向分割・結合端子は影響を受けません。
マイクロチップは操作端子のオンオフになります。
スイッチ、カウンター、タイマー、ランダムチックは入力端子がなくなり、代わりにバーの通過状態がオンオフになります。リセットも出来ません。
セレクターも入力端子が全てなくなり、通過状態がサイクル端子へのプラスの入力になります。
バッテリーは通過時にのみオンになるようになります。
シーケンサは、入力端子に結線している場合は影響を受けす、結線していない場合はそのオンオフになります。

入力の状態に関しては
スタート/ストップの時はオンになっているときだけバーが動きます。
普通にプレイ、逆にプレイの状態では、入力が立ち上がったときにシーケンスをスタートさせて、リセットするか終了するまで動作を続けます。ループに設定していると、リセット以外の入力を受け付けなくなります。

***コントロールギア
各ボタンの出力は以下のとおり
○△□×R1L1L3ボタン・・・押しているときオン
R2L2トリガー・・・OFF(natural)の状態でアナログ値の絶対値が75%以上になるとONに、ONの状態で25%以下になるとOFF(natural)になります。
左右スティック、六軸・・・トリガーの出力特性に、デジタル値の正負が加わったもの
十字キー・・・正または負のオン

**基本複合回路

***立ち上がり(DIFU)
スイッチを押された瞬間を利用したいときなどに使用します。
スイッチOFFの状態を記録しておいて、スイッチONとANDをとります。
OFF-ONを認識したらスイッチOFFの記録を消します。

入力 D
出力 UP(立ち上がり出力)
#image(DIFU_1.jpg)

スイッチOFFでセレクタに記録
#image(DIFU_2.jpg)

スイッチONとセレクタに記録された結果をAND
#image(DIFU_3.jpg)

立ち上がったらセレクタをリセット
#image(DIFU_4a.jpg)

立ち上がった後は何もしない
#image(DIFU_5.jpg)

2chに書かれていた上と同じ動作(カウンタを利用した版)
カウント数は1に設定。
カウント増加→ONに一瞬だけなってリセットされてカウントが0になる
#image(DIFU.jpg)

***立下り(DIFD)
スイッチがOFFになったことを検出する回路です。
動作の考え方は立ち上がり(DIFU)と同じで、ONを記録してOFFとANDをとります。

入力 D
出力 DOWN(立ち下がり出力出力)
#image(DIFD_1.jpg)

>入力をNOT(反転)させてからDIFUすると立下り(DIFD)となります。

***半加算器

***全加算器

***RAM

***ON Delay(遅延)
入力がONになったらタイマー分&bold(){遅延}して出力がONになる回路

#image(L1_ON_DELAY.jpg)

***OFF Delay(遅延)
入力がOFFになったらタイマー分&bold(){遅延}して出力がOFFになる回路

#image(L2_OFF_DELAY.jpg)

***動作の安定化(遅延)
ON DelayとOFF Delayを直列に繋げると、ON,OFFともに遅れる。
スイッチやセンサーが安定して動作しないときに遅延を繋げることで
出力が激しくON/OFFするようなことを防げる(チャタリング防止)

***RS-FF(保持)
入力(SET)がONになったら入力がOFFになっても出力ONを&bold(){保持}する
入力(RESET)がONになったら入力がOFFになっても出力OFFを&bold(){保持}する
LBP2ではセレクターがそのままRS-FFとして使える。

#image(L7_RS-FF.jpg)

***D-FF(保持)
入力(Clock)がONになったら入力(Data)の内容を&bold(){保持}する
入力(Data)が変化しても入力(Clock)がONしない限り出力は変わらない。
この例ではCLOCKの立ち上がり(ON下瞬間)のみ反応するようにした回路である。
-基本的なD-FF
#image(L8_D-FF_original.jpg)

-省略したD-FF
#image(L9_D-FF_B.jpg)

***UP/Down Selector
セレクターのサイクル入力の例
入力(UP)をONにすると出力が#2->#3->#4->#1のように切り替わる。
入力(DOWN)をONにすると出力が#4->#3->#2->#1のように切り替わる。

#image(L10_UpDown_Selector.jpg)

***UP/Down Selector with lock
セレクターのサイクル入力の例
UPのときに#4->#1になったり、Downのときに#1->#4に切り替わらないように処理した例

#image(L11_UpDown_Selector_WL.jpg)

***N Puls out
N回パルスを出す回路
入力ONの立ち上がりでカウンターに設定された回数分ON/OFFを繰り返します。
下の回路はタイマーで設定された時間でON/OFFします。(上は高速バージョン)
下の回路をポーズ状態で作ると最初の一回目の動作がNOTの動作で1カウントしてしまいます。
その後のリセットで正常になります。(それ以降は問題なし)
>作成時の注意(下記方法で上記問題は発生しません)
>1.ポーズで作成した場合は一度ポーズを解除してカウンタの値を0にする。
>2.マイプランに登録をする
>3.巻き戻しを行い、マイクロチップを削除し、代わりに先ほど登録したものに置き換える。

#image(L10_N_PULS_Q.jpg)

#image(L10_N_PULS_S.jpg)

出力のアナログ信号がどうなってもいい場合は素子2つだけで作れます。
カウンターはターゲットカウント:N
#image(N puls out 2.jpg,width=400)

***Shift register
Sync shift register シフトレジスター(同期式)
入力の状態がクロックにあわせてシフト(移動)していく回路。
#image(S5_SR1.jpg)

#image(S5_SR2.jpg)

Async Shift register シフトレジスター(非同期式)
入力の状態がクロックでシフト(移動)していく回路。
#image(S5_SR3.jpg)

#image(S5_SR4.jpg)

**応用複合回路