• 検索結果がありません。

moji_deco_top.vhd トップ回路をVHDLで設計する

ドキュメント内 論理回路設計 (ページ 51-62)

0123456789_I_AM_TOKUYA_FUJIOKA.

③ moji_deco_top.vhd トップ回路をVHDLで設計する

テストベンチでシミュレーションを実行し、機能確認する

[QuartusⅡ]

(テキスト: 131 ~ 137頁)

新規プロジェクト(moji_deco_DE0)を作成する

実機用回路に修正し(図4-24)、コンパイルする

修正後のデータをエラーフリーにする

端子割り当て後、コンパイルして実行モジュールを作成する

実機で動作を確認する

conversion_ascii

『名前表示』のSim用モジュール構成

-

図4-5 実習課題概要 -

deco0 0 1 2 3 4 5 6 7 8 9 ・・・ 30 31 deco1 31 0 1 2 3 4 5 6 7 8 ・・・ 29 30

deco2 30 31 0 1 2 3 4 5 6 7 ・・・ 28 29 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 _ I _ a m _ (ascii)

CNV0 DEC0

CLK

STOP

RESET

conversion_ascii decoder_7seg

CNV1 DEC1

CNV2 DEC2

CNV3 DEC3

S0(5) A0(7)

S1(5) A1(7)

S2(5) A2(7)

S3(5) A3(7)

LED0

LED1

LED2

LED3

HEX0

HEX1

HEX2

HEX3 PERI

deco0

deco1

deco2

deco3

moji_deco_top

peripheral_moji

(配付モジュール)

今回設計する部分

CLK

STOP

RESET

LED0

LED1

LED2

LED3

HEX0

HEX1

HEX2

HEX3

moji_deco_DE0

clk LED0(7..0) I3: moji_deco_top

stop reset

LED1(7..0) LED2(7..0) LED3(7..0) clk

I1: chattering SW_in SW_out

clk

I2: chattering SW_in SW_out

chat_STP

chat_RST

『名前表示』の実機用モジュール構成

-

図4-24 実機評価用最上位回路: moji_deco_DE0 -

-

入力信号の雑音を削除 チャタリング防止回路の挿入

-

表示周期を1秒(=1Hz)に変更

⇒ moji_deco_top内のperipheral_mojiの一部を変更

『名前表示』のシミュレーション

1.シミュレーション用回路の設計

1)図4-5に従って、

conversion_ascii, decoder_7seg, moji_deco_top を設計する

2)peripheral_mojiは、シミュレーション用にカスタマイズする(されている)

・シミュレーションでは、雑音等は削除してよい ・シミュレーションの効率化を図る

出力:deco0/1/2/3を1MHz(=1us)周期に設定

3)テストベンチを記述して、シミュレーションを実行する

2.シミュレーション後の確認内容

1)decoのカウント数に従って、所望の文字列が発生されているか?

2)カウント数が、asciiコードに正しく変換されているか?

3)7segLEDの信号が正しく生成されているか?

4)resetが正しく動作しているか?

5)stop信号が正しく動作しているか?

--Testbench for module: moji_deco_top library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity moji_deco_top_tb is end moji_deco_top_tb;

architecture SIM of moji_deco_top_tb is component moji_deco_top

port( CLK, STOP, RESET: in std_logic;

LED0 : out std_logic_vector (7 downto 0);

LED1 : out std_logic_vector (7 downto 0);

LED2 : out std_logic_vector (7 downto 0);

LED3 : out std_logic_vector (7 downto 0));

end component;

signal CLK: std_logic := '0' ;

signal STOP, RESET: std_logic := '1' ;

signal LED0, LED1: std_logic_vector (7 downto 0);

signal LED2, LED3: std_logic_vector (7 downto 0);

constant STEP: time := 20 ns ;

begin

U0: moji_deco_top port map

(clk, reset, stop, LED0, LED1, LED2, LED3 );

process begin

clk <= '0'; wait for STEP/2;

clk <= '1'; wait for STEP/2;

end process;

process begin

wait for 10.3 us ; RESET <= '0';

wait for 4.5 us ; RESET <= '1';

wait for 30.7 us ; STOP <= '0';

wait for 2.0 us ; STOP <= '1';

wait for 8.2 us ; STOP <= '0';

wait for 3.8 us ; STOP <= '1';

wait for 20.5 us ;

assert false severity failure;

end process;

end SIM;

configuration cfg_moji_deco_top_tb of

moji_deco_top_tb is for SIM

end for;

end cfg_moji_deco_top_tb;

『名前表示』のテストベンチ記述例

clk生成

RESET/

STOP生成

U0: moji_deco_top

-

シミュレーション用回路

『名前表示』のシミュレーション結果(1)

全体表示

『名前表示』のシミュレーション結果(2)

リセット付近 (asciiコードは、表4-2参照)

『名前表示』のシミュレーション結果(3)

ストップ付近

4.課題3: 『1分時計』

- 第3/4日目 -

[実現機能] 1/100秒まで表示する1分時計を作る。60秒でトグルする。

(表示例)

12.34

[秒桁に、ドットを表示する]

[ボタン仕様]

Button0(reset):

初期状態に戻る(00.00秒表示に戻る)

[LED表示]

HEX0

: 1/100秒

HEX1

: 1/10秒

HEX2

: 1秒 ← “ドット”を表示させる

HEX3

: 10秒

[モジュール構成]

- one_min_clock_top: 1分時計の最上位回路

- Div_10ms: 50MHz(20ns)→100Hz(10ms)への分周回路。

- chattering:

チャタリング防止回路(既設計。手法1、2どちらでも可)

- CNT10:

カウントアップ機能付き10進カウンタ

- CNT06: 6進カウンタ

(カウントアップ機能は無し)

- BCD_7segLED: BCDコードを7segLED信号にデコード

『1分時計』の開発仕様

実習の進め方

【第3/4日目】 シミュレーションは、サブ回路で実行する。

実機用回路を設計して、動作を確認する。

[ Modelsim ]

(テキスト: 142 ~ 146頁)

新規プロジェクト(one_min_clock)を作成する

② Div_10ms: Sim用に、分周は、10usで設計する

CNT10 :

カウントアップ機能付き10進カウンター を設計する

③ Parts :

サブ回路のトップモジュールを設計する

テストベンチでシミュレーションを実行し、機能確認する

[QuartusⅡ]

(テキスト: 146 ~ 1148頁)

新規プロジェクト( one_min_clock )を作成する

実機用回路(図5-8)を設計する ⇐ 分周は、10msにする

コンパイルで設計データをエラーフリーにする

端子割り当て後、コンパイルして実行モジュールを作成する

実機で動作を確認する

『1分時計』のトップ回路図

[入力]

- CLK: 50Mhz(20ns)

非同期reset

[出力]

1 2. 3 4

1/100単位 ドットを付ける

60秒で繰り返す

ドット表示

clk

reset

ドキュメント内 論理回路設計 (ページ 51-62)

関連したドキュメント