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

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]"

Copied!
22
0
0

読み込み中.... (全文を見る)

全文

(1)

2007.11.12 集積回路工学 Matsuzawa Lab 1

東京工業大学

大学院理工学研究科

電子物理工学専攻

(2)

1. ハードウェア記述言語(VHDLで回路を設計)

1. ハードウェア記述言語(VHDLで回路を設計)

• HDL設計の手順や基本用語を学ぶ

RTLとは?

Register Transfer Level

レジスタ間の転送関係を表現したレベル 慣例的に以下のことを行う -機能を、代入、if, caseなどで表現したもの -論理合成できる記述 -クロックを意識した記述 ゲートレベルとは? ゲート回路やフリップフロップなどの接続関係を示したもの ネットリストとも言う

(3)

2007.11.12 集積回路工学 Matsuzawa Lab 3

Hardware Description Language :ハードウェア記述言語

Hardware Description Language :ハードウェア記述言語 – Digital • Verilog-HDL, VHDL Verilog⇔C言語 VHDL⇔PASCALかADA VHDLは抽象性の高い記述 Verilogは具体的な回路図に近い記述 – Analog • Verilog-AMS, VHDL AMSなどにより動作記述が行える トップダウン設計を支援する トップダウン設計においては,アナログ部,デジタル部とも抽 象度の高い設計が必要となる。 デジタル部はゲート・レベルだけでなく,RTL(register transfer level)や動作レベルで設計する。 アナログ部はトランジスタ・レベルだけではなく,機能レベル のモデル(例えばオペアンプのマクロモデルなど),動作レベル のモデル(線形方程式や非線形方程式,信号フロー・グラフ,伝 達関数など)を扱う。 見た目はソフトウェアのプログラムに似ているが似て非なるもの

(4)

なぜ動作記述による設計なの?

なぜ動作記述による設計なの?

接続記述 動作記述 1cm2程度のシリコンチップ上に、数百万から1億のトランジスタを集積 している。そのため接続情報を記述している回路図エントリでは限界が あり、設計者は設計そのものよりも接続間違いによるケアレスミスを修 正することに時間がかかる。しかし動作記述を用いれば回路の表現に抽 象度が与えられ、さらに上位の設計を可能とするばかりでなく、設計の スピードが格段に向上する。 回路図エントリ module nandHDL記述 (Q,A,B,CK) inputA,B,CK;output Q ... endmodule

(5)

2007.11.12 集積回路工学 Matsuzawa Lab 5

HDL設計の手順

HDL設計の手順

論理設計 論理合成 論理素子への ゲートの割り当て 物理レイアウト 回路図エントリ HDL記述 ネットリスト

module nand_DFF (Q,A,B,CK) inputA,B,CK;output Q ... endmodule module nand (Q,A,B,CK) inputA,B,CK;output Q ... endmodule 仕様設計 RTL設計 RTL検証 OK? 論理合成 ゲートレベル検証 OK? 物理設計 回路動作を HDLで記述 テストベンチを HDLで記述 動作確認 HDLからゲートレベル に変換 タイミング(遅延) 確認

(6)

VHDL文法体系

VHDL文法体系

VHDLの文法 回路記述 テストベンチ ライブラリ記述 回路記述 論理合成に適した記述をする 回路の種類ごとに適した記述スタイルがある テストベンチ 文法を満たしていれば、どんな記述でもよい 記述のテクニックを駆使できる

(7)

2007.11.12 集積回路工学 Matsuzawa Lab 7

組み合わせ回路

(8)

順序回路 順序回路 順序回路は必ずクロックで同 期させること。もし非同期で 作ると伝播遅延から予期しな いパルス(ハザード)が発生す る。

(9)

2007.11.12 集積回路工学 Matsuzawa Lab 9 RTL設計例 RTL設計例 コンポーネント宣言 下位コンポーネントの接続 std_logicのベクタ型 (ビット幅のあるデータタイプ) 接続する下位コンポーネントの入出 力信号を定義したもの 4ビット (ビット3~ビット0)

(10)

RTL設計例 RTL設計例 センシティビティリスト (基本的に入力信号はすべてここに記述する) 条件式 if文はアーキテクチャ内に記述できず、 process文内に記述する 定数表現 1ビット ‘0’ 複数ビット “0101” バスとワイヤーでは囲む物が違うこと に注意すること。

(11)

2007.11.12 集積回路工学 Matsuzawa Lab 11

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

Q

0

Q

1

Q

2

Q

3

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 0

1

1 0

0

1 1

0 0

1

1 0

0

1 1

0 0

0

0

1

1

1 1

0 0

0

0

1

1

1 1

0 0

0

0

1

1

1 1

1

1 1 1

0 0 0 0

4 5

6

7

8

9

10

0 1 2 3

11 12 13 14 15

(12)

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; 算術演算パッケージを呼び出 し パッケージの呼び出し パッケージとは? 定数、演算子、データタイプなどの定義をまとめたもの おまじないのようなのであるが、これを指定しないとデフォルトの物が 設定されてしまうので、ここはちゃんと設定すること

(13)

2007.11.12 集積回路工学 Matsuzawa Lab 13

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

ibrary IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; モジュールの入出力ポート及びその属性を定義 entity COUNT4 is port ( CLK, RESET : in std_logic;

COUNT : out std_logic_vector( 3 downto 0 ) ); end COUNT4; エンティティ宣言 (入出力の定義) エンティティ名 方向 ポート宣言 データタイプ std_logicのベクタ型 (ビット幅のあるデータタイプ) 回路のインターフェース 部分を定義 接続する下位コンポーネントの入出力信号を定義したもの

(14)

architecture RTL of COUNT4 is

signal COUNT_IN : std_logic_vector ( 3 downto 0 ); begin

COUNT <= COUNT_IN;

process ( CLK, RESET ) begin if ( RESET = '1' ) then

COUNT_IN <= "0000";

elsif ( CLK'event and CLK = '1' ) then COUNT_IN <= COUNT_IN + '1'; end if; end process; end RTL;

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

ibrary IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity COUNT4 is port ( CLK, RESET : in std_logic;

COUNT : out std_logic_vector( 3 downto 0 ) ); end COUNT4; 同時処理文 アーキテクチャ内に記述する文 記述の順序に関係なく、同時に処理される 順次処理文 プロセス文やプロシージャ内に記述する文 記述順に処理される

(15)

2007.11.12 集積回路工学 Matsuzawa Lab 15 RTL設計例 RTL設計例 architecture ~ of ~ is begin 同時処理文 下位コンポーネント接続 プロセス文 信号代入文 条件付き信号代入文(when~else) プロシージャ呼び出し ジェネレート文 など end ~; process …. begin 順次処理文 信号代入文 変数代入文 if case wait文 ループ文 プロシージャ呼び出し など end process; 同時処理文 アーキテクチャ内に記述する文 記述の順序に関係なく、同時に処理される 順次処理文 プロセス文やプロシージャ内に記述する文 記述順に処理される

(16)

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

ibrary IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity COUNT4 is port ( CLK, RESET : in std_logic;

COUNT : out std_logic_vector( 3 downto 0 ) ); end COUNT4; 4ビットは0から3と書く ことに注意 内部変数を外部変数に代入 VHDLでは”OUT”の属性の信号はエンティ ティ内部で再びその値を使用できない architecture RTL of COUNT4 is

signal COUNT_IN : std_logic_vector ( 3 downto 0 ); begin

COUNT <= COUNT_IN;

process ( CLK, RESET ) begin if ( RESET = '1' ) then

COUNT_IN <= "0000";

elsif ( CLK'event and CLK = '1' ) then COUNT_IN <= COUNT_IN + '1'; end if; end process; end RTL; アーキテクチャ名 信号代入文 エンティティ名 アーキティクチャ (構造、動作の記述) 回路の構造や 動作を記述 1つのエンティティに対して、複 数のアーキテクチャを定義できる

(17)

2007.11.12 集積回路工学 Matsuzawa Lab 17 ibrary IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity COUNT4 is port ( CLK, RESET : in std_logic;

COUNT : out std_logic_vector( 3 downto 0 ) );

end COUNT4;

architecture RTL of COUNT4 is

signal COUNT_IN : std_logic_vector ( 3 downto 0 ); begin

COUNT <= COUNT_IN;

process ( CLK, RESET ) begin if ( RESET = '1' ) then

COUNT_IN <= "0000";

elsif ( CLK'event and CLK = '1' ) then COUNT_IN <= COUNT_IN + '1'; end if; end process; end RTL;

4ビット(16進)同期式カウンタ

4ビット(16進)同期式カウンタ

process文 CLKもしくはRESETが変化したときに活性化 され記述の上から順に実行される。 If文、case文などの順次処理文はこのプロセス文の中で記述す る。それに対してプロセス文の外の記述では値が変化すれば、 常に再代入されて動作する。この回路記述ではCOUNT_INが 変化すればCOUNTは変化後の値がいつでも再代入される。 CLK’ event and CLK=’1’ CLK信号の立ち上がり時を検出 センシティビティリスト (基本的に入力信号はすべてここに記述する) 条件式 定数表現 1ビット ‘0’ 複数ビット “0101”

(18)

データ・タイプ

データ・タイプ

信号や定数にはデータタイプ(型)がある。 データタイプによって、取り得る値の種類が決まる。 データタイプが異なる信号や定数間での直接代入は出来ない。(変換が必要) データタイプはパッケージの中で定義されている。 A: std_logic B: integer A<=3; A <=‘11’; B<=“1011”; B<=11; ○ ○ × × 3 × “11”; 11 ד1011”;

(19)

2007.11.12 集積回路工学 Matsuzawa Lab 19

ADDER

ADDER

Half Adder Half Adder

A

B

S

CO

CIN

Full Adder

(20)

コンポーネント宣言 下位コンポーネントの接続 接続する下位コンポーネントの入出 力信号を定義したもの インスタンス名:コンポーネント名 port map (ポートリスト) コンポーネント化 コンポーネント化

(21)

2007.11.12 集積回路工学 Matsuzawa Lab 21

下位コンポーネントの接続

下位コンポーネントの接続

順番によるポート接 続 名前によるポート接 続 名前によるポート接続: 定義側信号名 => 接続信号名

(22)

参考資料

参考資料

• マルチメディアHDL設計教材「HDL Endeavor」

株式会社 エッチ・ディー・ラボ 製

• 桜井

「Verilog-AMS入門」CQ出版

• 利用ツール

– GHDL (VHDLコンパイラ、シミュレーションおよび合成 ) – Icarus Verilog ( Verilog –HDLコンパイラ、シミュレーションおよび合成 ) – GTKWave (波形表示ツール)

参照

関連したドキュメント

学位授与番号 学位授与年月日 氏名

The Development and the Using of Web Site for Supporting the Students to Assist in the Classes 加藤 隆弘 松能 誠仁 松原 道男.. Takahiro KATO Nobuhito MATSUNO

出典)道路用溶融スラグ品質管理及び設計施工マニュアル(改訂版)((一社)日本産業機械工業会 エコスラグ利用普及 委員会)..

情報理工学研究科 情報・通信工学専攻. 2012/7/12

国の5カ年計画である「第11次交通安全基本計画」の目標値は、令和7年までに死者数を2千人以下、重傷者数を2万2千人

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

15 校地面積、校舎面積の「専用」の欄には、当該大学が専用で使用する面積を記入してください。「共用」の欄には、当該大学が

information, product features, availability, functionality, or suitability of its products for any particular purpose, nor does onsemi assume any liability arising out of