1
論理回路設計の基礎と演習
3
1.1 ディジタルとは
ひとことで言うなら・・・ アナログ ー連続的な動き 再現が難しい ディジタルー断続的な動き 再現しやすい 例.)アナログ ー坂道 ディジタルー階段 最初に居た位置に正確に 戻るには階段のほうが 再現しやすい!1.2 ディジタルにするメリット
再現性が高い
ノイズに強い
5
1.3 ディジタル回路を実現するには
ディジタル回路、したがってコンピュータも、ディジタルデータ を処理します。しかし電子回路は、電圧で動作しており、電圧 そのものはアナログです。 そのアナログ電圧に、一定の基準電圧 ( スレッショホールド 電圧 )を設けて、その基準電圧よりも電圧が高いか低いかで、 2 進数の0か 1 かを判定するようにしたものが、ディジタル回 路 です。1.4 2進数,8進数,10進数,16進数
b(バイナリ) 2進数 h(ヘキサ) 16進数 d(デシマル) 10進数 O(オクト) 8進数 単位 コンピュータが2 進数を 使用しているのは、ハード ウェア、すなわち電子回路 が簡単になり、安くできる からです。 データ伝送も、ハードウェ ア上は、2 進数をベースに しています。7
1.4 2進数,8進数,10進数,16進数
7 7 0111 7 6 6 0110 6 5 5 0101 5 4 4 0100 4 3 3 0011 3 2 2 0010 2 1 1 0001 1 0 0 0000 0 16進 8進 2進 10進 F 17 1111 15 E 16 1110 14 D 15 1101 13 C 14 1100 12 B 13 1011 11 A 12 1010 10 9 11 1001 9 8 10 1000 8 16進 8進 2進 10進 2進数・8進数・10進数・16進数 対応表9
2.1 AND,OR,NOT
組み合わせ回路
・同じ入力に対しては必ず同じ出力が
出る回路
・基本的に時間の概念がない
・基本論理素子
(AND,OR,NOT)で構成さ
れる
2.1 AND,OR,NOT
AND (かつ) 論理式:C=A&B 両方条件が整った時に成立 C=0 A=0,B=1 C=0 A=0,B=0 C=0 A=1,B=0 C=1 A=1,B=1 結果 条件 論理記号 C A B11
2.1 AND,OR,NOT
OR (または) 論理式:C=A|B どちらかの条件が整った 時に成立 A=0,B=1 C=1 C=0 A=0,B=0 C=1 A=1,B=0 C=1 A=1,B=1 結果 条件 B C A 論理記号2.1 AND,OR,NOT
NOT (でない) 論理式:C=^A 結果を反転させる A=0 C=1 C=0 A=1 結果 条件 C A 論理記号13
2.1 AND,OR,NOT
論理記号一覧表 *:記号の○印は負論理(Lアクティブ)を 示す。 記号 NOT = A X A X A X L H H L 真理値表 A B X L L L L H L H L L H H H A B X L L H L H H H L H H H L A B X = A B X A B X = A B X verilog-HDL X = ~A X = A & B AND NAND X = ~ (A & B) A B X = A B X A B X = A B X A B X L L L L H H H L H H H H A B X L L H L H L H L L H H L 記号 真理値表 verilog-HDL X = A | B X = ~ (A | B) OR NOR X = ~ (~A | ~B) X = ~A | ~B X = ~ (~A &~ B) X = ~A &~ B2.2 組み合わせ回路
A B 0 1 2 3 A B 0 1 2 3 L L H L L L L H L H L L H L L L H L H H L L L H 組み合わせ回路の例(デコーダ回路)15
2.2 組み合わせ回路
論理遅延
・入力が変化してから出力に変化するまで
の遅れの時間があること
・論理ゲートを信号が通るのにかかる時間
のこと
練習①
<問題> 次のような条件の回路図/真理値表を作成してみよう・
SW1が‘1’の時→ LED1 点灯・LED2 消灯
・
SW1が‘0’の時→ LED1 消灯・LED2 点灯
(LEDは‘1’の時 点灯、 ‘0’の時 消灯とする)
17
練習①
解答例 SW1 LED1 LED2 SW1 LED1 LED2 1 1 0 1 0 0練習②
<問題> 次のような条件の回路図/真理値表を作成してみよう ・SW1が ‘
1’の時でAが‘1’の時→LED1が点灯
・SW1が ‘
0’の時でBが‘1’の時→LED2が点灯
(LEDは‘1’の時 点灯、 ‘0’の時 消灯とする)
19
練習②
解答例 SW1 LED1 LED2 A B SW1 A B LED1 0 LED2 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0練習③
<問題> 次のような条件の回路図/真理値表を作成してみよう ・SW1が‘1’の時、Aの状態によりLED1を点灯/消灯 を行う ・SW1が‘0’の時、Bの状態によりLED1を点灯/消灯 を行う21
練習③
ヒント 真理値表 SW1 A B LED1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0練習③
解答例 SW1 LED1 A B SW1 A B LED1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 023
2.3 順序回路
・回路内に記憶素子を含んでいて、クロックと呼ばれ る基準信号と入力によって出力がきまる回路 ・クロックという時間の概念存在する ・基本論理素子と記憶素子で構成されている ・順序回路の例としては、フリップフロップやカウンタ などがあるクロック
・ディジタル回路において順序回路を動作させるため の基準信号のことであり、一定の周期でH=>L=> H・・・・を繰り返す信号 クロック信号 周期:T[sec] 周波数:f [Hz] = 1/T H L H L L L H H
25
フリップフロップ(
FLIP FLOP)
・フリップフロップとは、シーソーの働きの意味。
・回路の働きが文字通りシーソーの働きに似
入 力 クロック リセット 出 力 D CLK RESET Q CLK D Q 入力(D)の変化がクロック(CLK)の立ち上がり、又は 立下りにより出力(Q)に伝わる 通常、リセット(RESET)はクロック(CLK)とは非同期
フリップフロップ(
FLIP FLOP)
27
カウンタの例(2ビットカウンタ)
カウンタではクロックの数を数える回路を構成することができる CLK Q1 Q0 RESET 0 1 2 3 0 1 RESET D Q Q RESET D Q Q RESET CLK Q0 Q1 CLK CLK29
3.1.1デジタル時計の構成を考えよう
発 振 器 1 kH Z 1000回 カ ウ ン ト 6 0 回 カ ウ ン ト 6 0 回 カ ウ ン ト 1 秒 に な る 1 分 に な る 1 時 間 に な る 表 示 表 示 表 示 ▲発振器は、電圧を与えるとクロックを発生させる ▲発振周波数(発生させるクロックの周波数)が1kHZとした場合 ・・・1秒間に1000クロックが繰り返される3.1.2デジタル時計にどのような回路が必要か
①秒、分、時間のカウンタ回路が必要
・秒のための
1000回カウント
・分のための60回カウント
・時間のための60回カウント
31
3.1.2デジタル時計にどのような回路が必要か
②液晶やLEDなどに表示するためのデコーダ回路が必要 (例)7SEG LEDに表示する場合(点灯=1、消灯=0) a b c h g d f e 2を 表 示 0を 表 示0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
h
g
f
e
d
c
b
a
a b c h g d f e3.1.2デジタル時計にどのような回路が必要か
②液晶やLEDなどに表示するためのデコーダ回路が必要 (例)7SEG LEDに表示する場合(点灯=1、消灯=0) a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e33
35
4.1 どのような設計手法があるか
Verilogとは
▶ シミュレーション用の言語として生まれる
▶ その後、論理合成にも使えるようになる
▶ 1995年に
IEEE標準
となる
▶ 現在、
多くの
CADツールがサポート
している
▶
C言語に似た
平易で表現力の高い記述言語
よく使う順序処理分
4.1 どのような回路設計があるか
・if文
・case文
・for文
・while文
・repeat文
・wait文
・disable文
・force文/release文
37
HDL設計のメリット/デメリット
▶メリット 設計の効率化 ・半導体ベンダにとらわれない (ベンダ・フリー)設計が可能 ・論理合成による設計期間短縮 ・設計資産の活用 検証精度の向上 ・設計の途中で検証できる ・入力の印加、出力の観測・比較が容易 ・システム・レベルの検証が行える (シミュレーション・モデル)
4.1.1 回路図設計
HDL設計のメリット/デメリット
▶デメリット ・現状の論理合成は単相同期回路向き ・ツール類が高価 ・ASICでは論理合成できない回路もある
4.1.1 回路図設計
39
4.1.2 HDL設計(VHDL、Verilog)
Verilog-HDL:Cadence社の論理シミュレータ用言 語から派生 VHDL:回路仕様を書くことを目的に、標準化 Verilog-HDL: −抽象度が低い −回路的 −電気系向き VHDL: −抽象度が高い −プログラム的 −情報系向き4.2 設計手順
回路要求仕様 外部設計 詳細設計 ・Verilog-HDL/VHDL ・グラフィカルエントリー(VisualElite) ・回路図入力 等 機能検証 論理合成 配置配線 HDL設計 (デザインエントリー) ・ModelSim ・NC-Verilog 等 ・DesignCompiler ・Synplify 等 ・QuartusII ・ISE Foundation 等 外部仕様書 内部仕様書 ソースファイル (*.v、*.vhd) テストベンチ (*.v、*.vhd) ネットリスト (*.edif、*.v、*.vhd) コンフィギュレーションファイル (*sof、*.pof)41
4.3 Verilog記述の規則
▶ 拡張子は「*****.v」とする ▶ 全角文字は使えない ▶ 大文字と小文字を識別する ▶ 識別子の名付け規則 ① 英数字とアンダースコア(_)とドル記号($)が使用可能 ② 文字列の先頭には英字とアンダースコア(_)のみ使用可能 ③ 予約語を識別子として使用することはできない ④ 長さは1024文字以内(後段ツールの制約も考慮しなくてはならない) ▶ コメント記述 1行コメント :「//」から文末までをコメントとみなす 複数行コメント:複数にまたがるコメントは「/*」と「 */」で囲むmodule module_name (port_list) endmodule Verilogのモジュール基本構造 ▼モジュール宣言 Verilogでは各宣言及び回路記述をキーワー ドmodule ~ endmoduleで囲まれたモジュール内 に定義する ▼ポート宣言 ポート宣言に入力(input)、出力(outoput)、入出力 (inout)のいずれかのモードを指定する 同時に信号がベクタの場合は[msb:lsb]のようにベ クタ幅も宣言する ▼データタイプ宣言 モジュール内部で用いる信号を ネット宣言(ネット型)、レジスタ宣言(レジスタ型) で定義し同時に信号がベクタの場合は[msb:lsb] のようにベクタ幅も宣言する ▼回路記述 ポート宣言 データタイプ宣言 (ネット/レジスタ宣言など) 回路記述 assign文(組合せ回路の記述) always文(順序回路の記述) 下位モジュール呼び出し など
4.3 Verilog記述の規則
43
5.1 Verilogによる記述
moduleの構成要素
module module_name ( port_name1,
port_name2, … ); <ポート宣言> <レジスタ型宣言> <ネット宣言> <パラメータ宣言> <イベント宣言> <プリミティブ・ゲート宣言> <下位モジュール呼び出し> <always文> <initial文> <function定義> <task定義> <継続的代入> endmodule
5.1.1 Verilogによる回路記述⇔回路図
回路記述の4スタイル 論理合成を前提とした場合、Verilogによる回路記述の スタイルは、次の4種類がある 組み合せ回路をalwaysで記述することも可能だが、制約がある ・ 出力をreg宣言する ・ always文の@以降(イベント式)にすべての入力を記述する ・ always文の中に動作(出力に対する代入文)を記述する また、論理合成時に不必要なラッチを生成することがあったり、可読性が 悪くなる。 ▶ assignによる組み合せ回路 ▶ functionによる組み合せ回路 ▶ alwaysによる順序回路 ▶ 下位モジュールの呼び出し45
5.1.1.1 AND、OR
AND
//AND module test(a,b,c); input a,b; output c; assign c = a & b; endmoduleOR
//OR module test(a,b,c); input a,b; output c; assign c = a | b; endmodule a b c a b c5.1.1.2 組合せ回路
//Test回路 module test(A,B,C,D,E,F); input A,B; output C,D,E,F; assign C = ~A & ~B; assign D = ~A & B; assign E = A & ~B; assign F = A & B; endmodule A B C D E F L L H L L L L H L H L L H L L L H L H H L L L H 《組合せ回路》・・・入力の変化が、すぐに出力に伝搬する回路 値を保持しない A B C D E F47
5.1.1.3 順序回路
(例)4ビット・バイナリ・カウンタ 〈バイナリ・カウンタの仕様〉 入力:クロックCLK、リセットRESET、 出力:Q(4ビット) 動作:クロックCLKの立ち上がりでカウントアップ リセットRESETが1なら、クロックCLKとは無関係 に(非同期に)出力Qが0となる Q CLK RESET 《順序回路》・・・フリップフロップやラッチなどの記憶素子を含んだ回路 値を保持する 45.1.1.3 カウンタ
//加算演算子による4ビット・カウンタ module counter(CLK,RESET,Q); input CLK,RESET; output [3:0] Q; reg [3:0] Q;always @ (posedge CLK or posedge RESET) begin if (RESET==1’b1) Q <= 4’h0; else Q <= Q + 4’h1; end Posedgeは立ち上がり (positive edge)の意味で CLKの立ち上がりまたは RESETの立ち上がりで、常 にbegin以降が実行される Q CLK RESET 4
49
5.2 ツール(QuartusⅡ)の使い方
5.3 Verilogによるテストベンチ記述
//************************************* // CLK TestBench // File Name = tb_clk.v // Date 2006/02/16 //************************************* `timescale 1 ps / 1 ps module tb_clk; parameter dly = 3; reg RESET; reg CLK10M; reg SW1; wire [7:0] LED_H; //---// TEST PAT START//---initial begin CLK10M= 1'b0; forever begin #1CLK10M= ~CLK10M; #1; end end //---// TASK //---initial begin RESET= 1'b0; SW1= 1'b0; repeat (8) @(posedge CLK10M); #(dly) RESET= 1'b1; repeat (3) @(posedge CLK10M); #(dly) SW1= 1'b1; repeat (10000) @(posedge CLK10M); end clk1a clk1a ( .SW1(SW1), .RESET(RESET), .CLK(CLK10M), .LED_H(LED_H) ); endmodule
51
5.3.1 記述方法
Modelsim記述方法
5.3.2 Modelsimの使い方
Modelsim SE 5.7gの使い方
53 < ビット幅>’ <基数 > <数値 >
数値表現
6.1 Verilog回路設計復習
基数に応じた定数の値を示す b,B:2進数 o,O:8進数 d,D:10進数 h,H:16進数 10進数で表す演算子
6.1 Verilog回路設計復習
条件演算 連接演算 ?: { } その他 左シフト 右シフト << >> シフト演算 関係演算 リダクション演算 符号演算 ビット演算 論理否定 論理AND 論理OR ! && || 加算、プラス符号 減算、マイナス符号 乗算 除算 剰余 + − * / % 論理演算 算術演算 小 小または等しい 大 大または等しい 等しい 等しくない 等しい(X,Zも比較) 等しくない(X、Zも比較) AND NAND OR NOR EX−OR EX−NOR NOT AND OR EX−OR EX−NOR < <= > >= & ∼ & | ∼ | ^ ∼ ^ == != === !== ∼ & | ^ ∼ ^ 演算子優先順位 ! & ~& | ~| ^ ~^ + -* / % + -<< >> < <= > >= == != === !== & ^ ~^ | && || ?: 高 低 最上位の優先順にある演算子は、すべて単項演算子(各項の頭につける演算子)である55
6.2MU200-EC6Sを使用した
練習④
〈問題〉
SW1が‘0’の時、LEDA0が点灯する
・ 7
SEG LEDに表示する場合
57
練習④
解答例
//LED module LED(SW1,LEDA0); input SW1; output LEDA0; assign LEDA0=~SW1; endmodule 1 0 1 0 LED_A0 SW1 SW1 LEDA0練習⑤
<問題> 次のような条件の回路図を作成してみよう ・SW1が‘1’の時→ LED1 点灯・LED2 消灯 ・SW1が‘0’の時→ LED1 消灯・LED2 点灯 (LEDは‘1’の時 点灯、 ‘0’の時 消灯とする)59
練習⑤
解答例
SW1 LED1
練習⑤
設計した回路をQuartusⅡでコンパイル、シミュレー ション、MU200-EC6Sで実機確認を行おう。 実機動作では、 SW1はSW_A0 LED1はLED0、LED2はLED7に割り当てることとする。 (ピンアサインはMU200-EC6Sピンアサイン表1.1.xls参照すること。) 練習⑤ 操作手順例QuartusⅡで回路設計参照61
練習⑤
MU200-EC6Sで実機確認を行おう。 (注意:MU200-EC6Sのテンキーは負論理(押された時が‘0’、押されていない時‘1’)) SW_A0 LED0 (SW_A0押下時消灯) LED7 (SW_A0押下時点灯)練習⑥
〈問題〉
7SEGLEDに学籍番号を点灯しよう!
・
SW1が‘0’の時、学籍番号が点灯する
ように
Verilog HDLで設計しよう。
63
練習⑥
ヒント 学籍番号「00000000」の場合 7SEGLEDは下図のように表示 a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f e a b c h g d f eLED_A LED_B LED_C LED_D LED_E LED_F LED_G LED_H
解答例(gakuseki.vファイル参照)
//7SEGLED module gakuseki(SW1,LED_A,LED_B,LED_C,LED_D,LED_E,LED_F,LED_G,LED_H); input SW1; output [7:0] LED_A,LED_B,LED_C,LED_D,LED_E,LED_F,LED_G,LED_H; reg [7:0] LED_A,LED_B,LED_C,LED_D,LED_E,LED_F,LED_G,LED_H; always@(SW1) case(SW1) 1'b0:begin LED_A<=8'hFC; LED_B<=8'hFC; LED_C<=8'hFC; LED_D<=8'hFC; LED_E<=8'hFC; LED_F<=8'hFC; LED_G<=8'hFC; LED_H<=8'hFC; end default:begin LED_A<=8'h00; LED_B<=8'h00; LED_C<=8'h00; LED_D<=8'h00; LED_E<=8'h00; LED_F<=8'h00; LED_G<=8'h00; LED_H<=8'h00; end endcase モジュール宣言 レジスタ宣言 SW1を押す LED_A∼Hまで学籍番号「0」を表示 それ以外 LED_A∼Hまで何も表示しない
65
練習⑥
設計したVerilog HDLソースをQuartusⅡでコンパ イル、シミュレーション、MU200-EC6Sで実機確認 を行おう。《File》→《New…》を選択します。
NEWはDeviseDesignFilesタブでVerilog HDL Fileを選択してOK
67
ファイルの保存
69
7. MU200-EC6Sを使用した
7.1 練習⑦
〈問題〉 ・下記フリップフロップをVerilog HDLで記述し、 QuartusⅡでコンパイル、シミュレーション、実機 確認を行おう。 D CLK RESET Q a b clk rst71 実機動作では、 aはSW_A0 (2番ピン) 、bはLED0(47番ピン)、 clkはOSC(28番ピン)、rstはRESET(240番ピン) に割り当てることとする。 (ピンアサインはMU200-EC6Sピンアサイン表1.1.xls参照すること。) 練習⑦ Verilog HDL解答例 コンパイル、シミュレーションは、 練習⑤ 操作手順例QuartusⅡで回路設計参照 を参照して行うこと。
練習⑦
MU200-EC6Sで実機確認を行おう。 (注意:MU200-EC6Sのテンキーは負論理(押された時が‘0’、押されていない時‘1’)) SW_A0 LED0 CK_DIV設定をFとする (CLK_SW押下毎に1クロック発生する) CLK_SW ・SW_A0を開放状態で CLK_SWを1回押すとLED点灯 ・SW_A0を押下状態で CLK_SWを1回押すとLED消灯 することを確認する。73
7.2 練習⑧
〈問題〉 ・スイッチを押して10秒後に学籍番号 を点灯しよう! 尚、入力されるクロックは10MHzとする。 (MU200-EC SW27 CK_DIVは「2」とする。)練習⑧
SW1 RESET CLK LED_A LED_B LED_C LED_D LED_E LED_F LED_G LED_H start CLK RESET SW1 data X 0 X 1X 2 X 3 X 4X 5 X 6 X7 X 8 9 ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ X X start・・・SW1を押した時だけ dataを動かす信号 data・・・10秒数えるための 信号 解答例(count解答例.docファイル参照)75
7.2 練習⑨
〈問題〉 下記回路を設計、コンパイルして実機確認を行おう。 ①RESETを押す ②7SEGLEDのHに「0」を点灯 ③SW1を押す ④7SEGLEDのHの表示が1秒毎に 0→1→2・・・8→9→0と繰り返す 尚、入力されるクロックは10MHzとする。 (MU200-EC SW27 CK_DIVは「2」とする。)練習⑨
解答例(clk-kaitourei.docファイル参照) SW1 RESET CLK sec_clk SW1 RESET CLK sec_cont RESET CLK LED_H 1秒を数えるsec_clk信号 を作るためのカウンタ回路 sec_clk信号を数えるsec_cont信 号を作るためのカウンタ回路 sec_cont信号をLED_Hに 表示するためのデコーダ回路 CLK RESET SW1 sec_clk sec_cont X 0 1 2 8 9 ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・・・・・ 1秒 1秒 1秒 1秒 1秒 X X X X・・・・・・・・・・・・・ X X 077
8. MU200-EC6Sを使用した
79
8.1.1 シフト回路仕様説明
CLK発振部 RST回路部 MU200-EC6S 7SEG A B C D E F G H 数字表示 FPGA LED PSW 10MHZ 〈1〉機能概要 ①RESETを押す ②7SEGLEDのHに「0」 を表示する ③SW1を押す ④7SEGLEDの表示を 1秒毎に変える (8.1.2図1参照) SW18.1.1 シフト回路仕様説明
〈2〉トップモジュールブロック図 mask_g mask_f mask_e mask_d mask_c mask_b mask_a dec SW1 RESET CLK sec_clk RESET CLK sec_clk sec_count LED_H LED_G LED_F LED_E LED_D LED_C LED_B LED_A st_h RESET CLK 4 sec_count FPGA 8 8 8 8 8 8 8 881
8.1.1 シフト回路仕様説明
〈
3〉仕様
sec_countを表示するためのもの dec 表示が出るまでマスク信号発生回路 mask sec_clkを数えるための回路 sec_count 1秒数えるためのカウンタ sec_clk 概略仕様 ブロック名8.1.2 Verilogによる設計
〈問題〉 ①RESETを押す ②7SEGLEDのHに「0」 を表示する ③SW1を押す ④7SEGLEDの表示を1 秒毎に変える (図1参照) 0 H G F E D C B A 1 0 1秒(1秒後) 2 1 0 1秒(2秒後) 3 2 1 0 1秒(3秒後) 4 3 2 1 0 1秒(4秒後) 5 4 3 2 1 0 1秒(5秒後) 6 5 4 3 2 1 0 1秒(6秒後) 7 6 5 4 3 2 1 0 1秒(7秒後) 8 7 6 5 4 3 2 1 1秒(8秒後) 9 8 7 6 5 4 3 2 1秒(9秒後) 0 9 8 7 6 5 4 3 1秒(10秒後) 図183
8.1.2 Verilogによる設計
解答例(clkseg解答例.docファイル参照) X X0 1X 2X X3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 CLK RESET SW1 count (sec_clk内の カウンタ値) sec_clk sec_count X 0 X 1 X 2 X 3 X ヒント1.sec_clkの入力と出力信号8.1.2 Verilogによる設計
X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 sec_count ∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼∼ RESET CLK st_h sec_clk ヒント3.maskの入力と出力の信号 st_hは(図1の7秒後の参照) 7SEGLEDが全て表示される までをマスクする信号 maskは1秒ずつずれて数字 を表示するための信号 mask_g mask_f mask_e mask_d mask_c mask_b 1秒後 2秒後 3秒後 4秒後 5秒後 6秒後 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 sec_count ヒント2.sec_countの入力と出力の信号85
8.1.2 Verilogによる設計
ヒント4.7SEGLEDの入力と出力の信号 X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X F2 X 66 X 00 X 00 X 00 X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X F2 X 00 X 00 X 00 X 00 X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X 00 X 00 X 00 X 00 X 00 X 00 LED_E LED_D LED_B X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X F2 X 66 X B6 X 3E X E4 LED_H X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X F2 X 66 X B6 X 00 X 00 LED_F X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X F2 X 66 X B6 X 3E X 00 LED_G X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FCX 60 X DA X 00 X 00 X 00 X 00 X 00 LED_C X FC X 60 X DA X F2 X 66 X B6 X 3E X E4 X FE X E6 X FC X 00 X 00 X 00 X 00 X 00 X 00 X 00 LED_A mask信号を7SEGLEDに表示 (「00」は表示無し) sec_clk87