論理回路 第12回 TkGate実習 - 順序回路 http://www.info.kindai.ac.jp/LC 38号館4階N-411 内線5459 [email protected] TkGate TkGate – 論理回路のシミュレータ 論理素子やモジュールを使用可能 フリーソフト – ホームページ http://www.tkgate.org/ja-index.html ターミナルを起動 tkgate の起動 ターミナル上でコマンド “tkgate” で起動 $ tkgate & File → New で 新規作成 が押されているとき 画面をクリックすると × 印が出る。 × 印の位置に ゲートが配置される I/O 配置されるオブジェクト ショートカット Switch s DIP Switch d Graund g Vdd v Wire Merge w LED l LED Bar L8 7 Seg.LED L (h, d, s) Gate 配置されるオブジェクト ショートカット AND a NAND A OR o NOR O XOR x XNOR X Buffer b Inverter i Tri-Buffer t オブジェクト, 配線で 右クリック→プロパティ オブジェクト, 配線に 名前を付ける Hide Name (名前を隠す) ボタンをオフにする 名前が表示される メニューの Simulate→Bagin Simulation または ボタンで実行開始 “ 配線をダブルクリックしてください” シミュレート開始すると スコープウィンドウが開く 配線をダブルクリック テスタが表示される スコープウィンドに テスタを置いた配線の 電位が表示される 1 = 緑 0 = ピンク で 配線の電位を表示 スペースキーを押すと時間経過 1 = 赤 0 = ピンク で 配線の電位を表示 X = 0 (スイッチがoff ) Y = 0 (スイッチがoff ) のとき Z = 0 (LEDがピンク) クリック スイッチをクリックで ON/OFF 切り替え 配線Y の電位が 1 (= 緑) に変わる X = 1 (スイッチがon ) Y = 1 (スイッチがon ) のとき Z = 1 (LEDが赤) X = 1, Y = 1 のとき Z = 1 (= 緑) (注意) 出力が安定するまでスペースキーを押すこと Make → Memory → Flip-flop TkGate のフリップフロップ D-FF clear 入力 enable 入力 0 入力で初期化 0 入力で Q値変更可能 D 入力 Q 出力 Q 出力 clock 入力 0 → 1 入力で FF 動作 TkGate のフリップフロップ TkGate には DFF のみ存在 ⇒ DFF を用いて他の FF を作成する SRFF S R SR→D 変換回路 D DFF Q Q Q Q FF.v 4種類のFF – – – – SRFF DFF TFF JKFF DFF SRFF TFF JKFF FFの動作 1. 2. clr を 1 にし初期化 (各 Q の値が 0 に) clr を 1 →0 にしてから動作開始 各 Q の値が 0 になれば clr を 1 → 0 にする FF の初期値は不定 演習問題 : SRFF の動作 SRFF の入力が下図のときの出力を記入せよ 入力 S 入力 R 出力 Qsr 出力 Qsr クロック 演習問題 : SRFF の動作 SRFF の入力が下図のときの出力を記入せよ 入力 S 入力 R 出力 Qsr 出力 Qsr クロック SR = 11 の場合は S優先 演習問題 : DFF の動作 DFF の入力が下図のときの出力を記入せよ 入力 D 出力 Qd 出力 Qd クロック 演習問題 : DFF の動作 DFF の入力が下図のときの出力を記入せよ 入力 D 出力 Qd 出力 Qd クロック 演習問題 : TFF の動作 TFF の入力が下図のときの出力を記入せよ 入力 T 出力 Qt 出力 Qt クロック 演習問題 : TFF の動作 TFF の入力が下図のときの出力を記入せよ 入力 T 出力 Qt 出力 Qt クロック 演習問題 : JKFF の動作 JKFF の入力が下図のときの出力を記入せよ 入力 J 入力 K 出力 Q 出力 Q クロック 演習問題 : JKFF の動作 JKFF の入力が下図のときの出力を記入せよ 入力 J 入力 K 出力 Q 出力 Q クロック 演習問題 : ビット反転検出回路の設計 ビット反転検出回路 – 入力が0→1, 1→0と反転したときに1を出力 入力I 出力O クロック 0→1を検出 1→0を検出 1.入力,出力,状態の決定 ビット反転を検出するには、1つ前の入力 I - を記憶しておけばいい I - = 0 と I - =1の2状態 ⇒ FF1個で記憶可能 1入力, 1出力, 1FF 入力I FF Q 出力O クロック I ≠Q ならば 1を出力 2.状態遷移図を描く 状態Q : 1つ前の入力 I - を記憶 出力O : I ≠Q ならば 1 を出力 0/0 q0 Q=0 0/1 1/1 q1 Q=1 1/0 3.状態遷移表を作成する 0/0 q0 Q=0 Q =0, I =0 Q =0, I =1 Q =1, I =0 Q =1, I =1 0/1 1/1 遷移 Q +=0 Q +=1 Q +=0 Q +=1 q1 Q=1 1/0 出力 O =0 O =1 O =1 O =0 4.拡大入力表を作る 使用するFFの入力要求 入力 遷移 I 0 0 1 1 Q 0 1 0 1 Q+ 0 0 1 1 入力 出力 状態遷移 O 0 1 1 0 D 0 0 1 1 T 0 1 1 0 S 0 0 1 - R 1 0 0 J 0 1 - K 1 0 演習問題 : DFFを用いたビット反転検出回路を作れ 𝐷=𝐼 𝑂 = 𝐼 ⋅𝑂+𝐼⋅ 𝑂 =𝐼⊕𝑂 I D Q I D Q O CKQ クロック O CKQ クロック 演習問題 : DFFを用いたビット反転回路の動作 ビット反転回路の入力が下図のときの出力を記入せよ 入力 I 入力 D 出力 O 出力 Q クロック 演習問題 : DFFを用いたビット反転回路の動作 ビット反転回路の入力が下図のときの出力を記入せよ 入力 I 入力 D 出力 O 出力 Q クロック ※ 上図は理論値である。出力 O はクロックと同期を 取っていないため、実際にはこうはならない 問題 : TFFを用いたビット反転検出回路を作れ 𝑇 = 𝐼 ⋅𝑂+𝐼⋅ 𝑂 =𝐼⊕𝑂 𝑂 = 𝐼 ⋅𝑂+𝐼⋅ 𝑂 =𝐼⊕𝑂 I クロック T Q CKQ I O クロック T Q O CKQ 問題 : SRFFを用いたビット反転検出回路を作れ 𝑆=𝐼 𝑅= 𝐼 𝑂 = 𝐼 ⋅𝑂+𝐼⋅ 𝑂 =𝐼⊕𝑂 I クロック S Q R CKQ I O クロック S Q O R CKQ 問題 : JKFFを用いたビット反転検出回路を作れ 𝐽=𝐼 𝐾= 𝐼 𝑂 = 𝐼 ⋅𝑂+𝐼⋅ 𝑂 =𝐼⊕𝑂 I クロック J Q KCKQ I O クロック J Q O KCKQ 問題 : TFFを用いたビット反転回路の動作 ビット反転回路の入力が下図のときの出力を記入せよ 入力 I 入力 T 出力 O 出力 Q クロック 問題 : SRFFを用いたビット反転回路の動作 ビット反転回路の入力が下図のときの出力を記入せよ 入力 I 入力 S 入力 R 出力 O 出力 Q クロック 問題 : JKFFを用いたビット反転回路の動作 ビット反転回路の入力が下図のときの出力を記入せよ 入力 I 入力 J 入力 K 出力 O 出力 Q クロック bit.v シフタ 同期したフリップフロップの集まり – クロック入力ごとに、値が隣のFFに移動する D Di Qi 1 (1 i ) D0 D D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 sft.v 演習問題 : シフタの動作 シフタの入力が下図のときの出力を記入せよ 入力 D 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 演習問題 : シフタの動作 シフタの入力が下図のときの出力を記入せよ 入力 D 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック レジスタ/ラッチ 同期したフリップフロップの集まり – n ビットの一斉読み出し、書き込みが可能 D0 D1 D Q DFF CK D2 D Q DFF CK D3 D Q DFF CK D Q DFF CK クロック Q0 Q1 Q2 Q3 reg.v シフタ-レジスタ シフタとレジスタの組み合わせ I0 I1 I2 I3 マルチ プレクサ S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 シフタ-レジスタ シフタとレジスタの組み合わせ S=0 ⇒ レジスタ I0 I1 I2 I3 S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 シフタ-レジスタ シフタとレジスタの組み合わせ S=1 ⇒ シフタ I0 I1 I2 I3 S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 sft_reg.v マルチプレクサ 問題 : シフタレジスタの動作 シフタレジスタの入力が下図のときの出力を記入せよ 入力 sp 入力 D0 入力 D1 入力 D2 入力 D3 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 同期式16進カウンタ 𝑇𝑖 = 𝑄𝑖−1 ⋅ 𝑄𝑖−2 ⋅ … ⋅ 𝑄1 ⋅ 𝑄0 2 ≤ 𝑖 𝑇1 = 𝑄0 𝑇0 = 1 SW T0 Q0 TFF T1 Q1 TFF T2 Q2 TFF T3 Q3 TFF CK CK CK CK クロック Q0 Q1 Q2 Q3 ctr16.v 演習問題 : 16進カウンタの動作 16進カウンタの入力が下図のときの出力を記入せよ 入力 SW 出力 Q 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 演習問題 : 16進カウンタの動作 16進カウンタの入力が下図のときの出力を記入せよ 入力 SW 出力 Q 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 同期式10進カウンタ 𝐽3 = 𝑄2 ⋅ 𝑄1 ⋅ 𝑄0 𝐽2 = 𝑄1 ⋅ 𝑄0 𝐽1 = 𝑄3 ⋅ 𝑄0 𝐽0 = 1 𝐾3 = 𝑄0 𝐾2 = 𝑄1 ⋅ 𝑄0 𝐾1 = 𝑄0 𝐾0 = 1 SW J0 クロ ック Q0 K0CK Q0 J1 Q1 K1CK Q1 J2 Q2 K2CK Q2 J3 Q3 K3CK Q3 ctr10.v 演習問題 : 10進カウンタの動作 10進カウンタの入力が下図のときの出力を記入せよ 入力 SW 出力 Q 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 演習問題 : 10進カウンタの動作 10進カウンタの入力が下図のときの出力を記入せよ 入力 SW 出力 Q 出力 Q0 出力 Q1 出力 Q2 出力 Q3 クロック 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 クリア信号付FFを用いたBCDカウンタ 16進カウンタ+リセット回路 リセット回路 clr Q0 Q1 Q2 16進カウンタ CK クロック 1010になったときに クリア信号を出す Q3 クリア信号付FFを用いたBCDカウンタ リセット回路 16進カウンタ 1 クロック J0 clrQ0 J1 clrQ1 J2 clrQ2 J3clr Q3 K0CK Q0 K1CK Q1 K2CK Q2 K3CK Q3 ctrx.v 問題 : X進カウンタの動作 ctrx.v の実行結果を記入せよ – ただし、 入力は以下の通りとする DIP Switch NUM : 学籍番号の下1桁 (ただし、下1桁が 0 なら a(10), 8なら c(12) を入力) SW : 1 ctrx.v は何進カウンタになっているか? 進カウンタ 学籍番号の 下1桁を入力 reset にも テスタを当てる
© Copyright 2024 ExpyDoc