1 CS実験第⼆ FPGAボードを⽤いた組込み回路の実装 - もう少し進んだ回路 - 佐藤証 ⻄9-613 [email protected] ダイナミック点灯 4つの7セグLED の⼊⼒信号は共 通なので同じ表 ⽰しかできない 4つのLEDへの 3.3V電源の供給 を時間差で切り 替えることで異 なる数字を表⽰ 2 切り替えのタイムチャート 切り替えが早いと消えているは ずのセグメントが光って⾒える 遅いとちらついて⾒える 500Hz(2ms)で切り替える 3 プッシュスイッチ 教科書はNexys2のスイッチ設定 4 60分計のブロック図 5 60進カウンタ 6 チャタリング除去回路 スイッチを切り替えたときに接点の状態によってON/OFFの 繰り返し数ms続き,回路に誤動作を起こす危険性がある スイッチをONしたときに⼀度だけパルスを⽣成する回路 分周回路は50MHZを1,250,000分周して40Hz(25ms)を作る btn_in.v ボタンが3つなので3ビット wire [2:0] temp= ff1 & ~ff2 & {3{en40hz}} 1 1 0 1 1 1 0 1 7 状態遷移を回路で実現 表⽰桁を増やして年/⽉/⽇/時/ 分/秒を合わせようとするとス イッチの数が増⼤ セレクト&セット⽅式を実現 - 7セグメントLED4桁 時分表⽰ - 単体LED7個 10秒桁, 1秒桁を2進数表⽰ - プッシュスイッチ3個 状態切り替え, 修正桁選択, 選択 - 修正桁の明⽰ 2MHz点滅 8 状態遷移を回路で実現 ボードのリセットで“NORM“状態に “NORM”状態でMODEボタンが押されると“SEC”状態(秒設定)に SELECTボタンを押す度に状態が次のように遷る SEC(秒)→HOUR(時)→MIN(分)→SEC(秒) SEC, HOUR, MIN状態でMODEボタンを押すとNORM状態に 状態遷移図 状態遷移表 9 ステートマシーンの回路構成 状態遷移図を具体化したものを有限状態機械(FSM: Finite State Machine)と呼ぶ 論理回路だけでなくプログラムでも実現可能 状態を保持するレジスタをステートレジスタと呼ぶ ステート⽣成回路は現在の様態と遷移条件信号から次の 状態を⽣成 デコーダは現在の状態から制御信号を⽣成 4状態なので 2ビット 10 時刻合わせ機能付き時計 0-9 0-5 リセット 0-9 0-5 +1 0-9 0-2 +1 11 時カウンタ 分カウンタは6進カウンタ×10進カウンタで構成し,各 カウンタ出⼒を直接LED制御信号QHとQLとした 時カウンタは24進カウンタの5ビット出⼒からQHとQL をデコードして⽣成 コード変換回路の真理値表 12 修正桁点滅の実現 修正しようとしている桁を 明⽰するため,2Hz (1/2 秒周期)で点滅を繰り返す reg [25:0] cnt で0-49,999,999数えると1秒 ¼秒ごとに反転 13 制御部のステートマシン ステート⽣成回路はステートレジスタの現在の状態cur[1:0]と MODEとSELECTボタンの状態で次の状態nxt[1:0]を⽣成 現在の状態curによって時刻修正信号と修正桁点滅信号を⽣成 - SECCLR(秒クリア), MININC(分+), HOURINC(分+) - SECON(秒点滅), MINON(分点滅), HOURON(時点滅) ¼秒ごとに反転 14 制御信号 state.vでは各ステー トを次のように割り 当てている - NORM: 00 SEC:01 MIN:10 HOUR:11 時刻修正信号 修正点滅信号 15 実験2 1時間計をボード上で動作させる - Digilent AdeptでFPGA(内のSRAM)に書き込む - SPI ROMに書き込む - BPI ROMに書き込む 時刻合わせ機能付き時計をボード上で同様で動作させる P.125-127の次の拡張を⾏う - ゼロ差プレス機能 - 12時間/24時間表⽰切り替え - 時報機能 16
© Copyright 2024 ExpyDoc