回答編集履歴
1
追記
test
CHANGED
@@ -1,2 +1,12 @@
|
|
1
1
|
CDIVから0まで数えるカウンタを用意し、
|
2
2
|
もとのカウンタはこのカウンタが0のときにカウントアップするようにします
|
3
|
+
|
4
|
+
---
|
5
|
+
|
6
|
+
というか参考にしているという[サイト](https://www.acri.c.titech.ac.jp/wordpress/archives/11224)にそう書いてあります。
|
7
|
+
|
8
|
+
|
9
|
+
> 回路の中身は、カウンタ2つとデコーダを組み合わせることで作れそうです。ナイトライダー回路の内部構造を上図に示します (リセット入力は省略しています)。
|
10
|
+
> 第1のカウンタは、待ち時間 CDIV まで数えたかどうかを判断する、CDIV 進のカウンタです。第2のカウンタは、左端の LED が点灯した時を 0 として、何回 LED が切り替わったかを数えます。左端の LED が最初に点灯してからもう1度点灯するまでの間には6回の LED 切り替えが必要ですから、第2のカウンタは6進カウンタとなります。カウンタ1が最後まで数え終わる (TC; Terminal Count) と、カウンタ2が有効 (EN; ENable) となりインクリメントされます。最後に、カウンタ2の値 (C; Count) を、デコーダ回路でLED の点灯/消灯に変換すれば完成です。
|
11
|
+
> 以上を Verilog HDL で記述すると、以下のソースコードが得られます。
|
12
|
+
|