ストップウォッチの設計 9秒まで計測できるストップウォッチを設計 9の次は0に戻る 一つの押しボタンiKEY_Bで、スタートストップを制御 もう一つの押しボタンiRST_Bで、リセット(時間を0秒に戻して停止) 時間は、1個の7セグに表示 FPGAで実現 a iKEY_B iRST_B キー 判定 キー 判定 fsm.v (既設計) 制御回路 (設計対象) 4 7セグ デコーダ decoder.v (既設計) 7 f g e b c d 7セグ ディスプレイ 1 1秒を計測するには? (復習) 周波数 f = 50MHz のクロックが与えられているとする クロックの1周期 = T = 1/f = 20 ns 1クロック周期 20 ns …… 1s (20nsが50M個) 1s 1s = = -9 20ns 20×10 s 109 20 7 クロック 100×10 = = 50×106=50M 周期 20 クロックの立上りをカウントし値が50×106 になればよい 50×106 回のカウンタは、何ビットあればよい? 26 ビット なぜならば、226 = 64×106 > 50×106 2 ストップウォッチのデータパス付きステートマシン 入出力 iCLK iRST 制御回路 (設計対象) 4 oBYOU 信号名 iCLK iRST iKEY oBYOU 種類 入力 入力 入力 出力 論理 正論理 正論理 - 内部レジスタ iKEY レジスタ名 oBYOU rCOUNT rSTATE iRST == 1 / rCOUNT <= 0 oBYOU <= 0 iKEY == 1 / IDLE else/ RUN iKEY == 1 ビット幅 意味 1 クロック(50MHz) 1 同期リセット 1 キー入力 4 秒の2進表示 / ビット幅意味 4 秒(2進数)を保持 26 1秒をカウント 1 状態を保持 oBYOU == 9 && rCOUNT == 50000000 / oBYOU <= 0 rCOUNT <= 0 rCOUNT == 50000000 oBYOU <= oBYOU + 1 rCOUNT <= 0 else / rCOUNT <= rCOUNT + 1 / 3
© Copyright 2024 ExpyDoc