Microsoft PowerPoint LC_15.ppt

Similar documents
Microsoft Word - 実験4_FPGA実験2_2015

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

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

VHDL VHDL VHDL i

TECH_I Vol.25 改訂新版PCIデバイス設計入門

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

<91E63589F161>

フリップフロップ

VelilogHDL 回路を「言語」で記述する

ModelSim-Altera - RTL シミュレーションの方法

Microsoft PowerPoint LC_7.ppt

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

論理設計の基礎

VHDL

Quartus II クイック・スタートガイド

スライド 1

三菱電機マイコン機器ソフトウエア株式会社

ディジタル電子回路 設計演習課題

Unconventional HDL Programming ( version) 1

Microsoft PowerPoint pptx

<4D F736F F D2091B28BC68CA48B8695F18D902E646F63>

HW-Slides-05.ppt

Quartus II クイック・スタート・ガイド

Microsoft PowerPoint - 3.3タイミング制御.pptx

ETCB Manual

HW-Slides-04.ppt

スライド 1

ソフトウェア基礎技術研修

PowerPoint プレゼンテーション

TULを用いたVisual ScalerとTDCの開発

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」

Microsoft Word - 卒業論文.doc

Microsoft PowerPoint LCB_14_論理回路シミュレータ.ppt

デジタル回路入門

スライド 1

Verilog HDL による回路設計記述

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

VBI VBI FM FM FM FM FM DARC DARC

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx

デジタル回路入門

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

PeakVHDL Max+Plus VGA VG

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

FPGAによる24時間時計回路

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

Quartus Prime はじめてガイド - デバイス・プログラミングの方法

iCLR

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

授業のあとで 情報処理工学 : 第 3 回 10 進数を 16 進数に変換する方法と 16 進数を 10 進数に変換する方法は 標準的な方法でも良いですか? 履修申告は済みましたか? 割り算 方法 ) 54 余り 6 16 ) 3 余り 3 ) 0 第 4 回へ 201

Microsoft PowerPoint LC1_14_論理回路シミュレータ.ppt

ブロック図 真理値表 入力出力 OUTn (t = n) CLOCK LATCH ENABLE SERIAL-IN OUT 0 OUT 7 OUT 15 SERIAL OUT H L D n D n D n 7 D n 15 D n 15 L L D n No Change D n 15 ( 注 )

AKI-PIC16F877A開発キット (Ver1

論理回路設計

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

ブロック図 真理値表 STEP CLOCK LATCH ENABLE SERIAL IN OUT 0 OUT5 OUT 7 SERIAL OUT 1 UP H L D n D n D n 5 D n 7 D n 7 2 UP L L D n+1 No change D n 6 3 UP H L D

名称 型名 SiC ゲートドライバー SDM1810 仕様書 適用 本仕様書は SiC-MOSFET 一体取付形 2 回路ゲートドライバー SDM1810 について適用いたします 2. 概要本ドライバーは ROHM 社製 2ch 入り 180A/1200V クラス SiC-MOSFET

PA-S500 取扱説明書

タイトル

CommCheckerManual_Ver.1.0_.doc

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx)

プログラマブル論理デバイス

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

「電子政府推奨暗号の実装」評価報告書

スライド 1

Microsoft PowerPoint LCB_8.ppt

Virtex-6 Clocking

Microsoft Word - N-TM307取扱説明書.doc

VLSI工学

UMB-CP2114 User's Manual

EB-RL7023+SB/D2

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

KEIm-08SoMハードウェアマニュアル

PRONETA

NI 6601/6602 キャリブレーション手順 - National Instruments

Handsout3.ppt

Report Template

PowerPoint プレゼンテーション

Microsoft PowerPoint - 7.Arithmetic.ppt

PowerPoint プレゼンテーション

論理回路設計

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

Quartus II はじめてガイド - プロジェクトの作成方法

2STB240PP(AM-2S-G-005)_02

オンチップ・メモリ クイック・ガイド for Cyclone III

形式 :PDU 計装用プラグイン形変換器 M UNIT シリーズ パルス分周変換器 ( レンジ可変形 ) 主な機能と特長 パルス入力信号を分周 絶縁して単位パルス出力信号に変換 センサ用電源内蔵 パルス分周比は前面のスイッチで可変 出力は均等パルス オープンコレクタ 電圧パルス リレー接点パルス出力

スライド 1

8051 개발보드 메뉴얼

ydez-usb マニュアル 写真 やなごデザイン有限会社

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

Transcription:

( 第 15 回 ) 鹿間信介摂南大学理工学部電気電子工学科 特別講義 : 言語を使った設計 (2) 2.1 HDL 設計入門 2.2 FPGA ボードの設計デモ配布資料 VHDL の言語構造と基本文法 2.1 HDL 設計入門 EDAツール : メンター社製品が有名 FPGAベンダーのSW 1 1 仕様設計 にも簡易機能あり 2 3 2 HDLコード記述 3 論理シミュレーション 4 4 論理合成 5 6 遅延シミュ 5 配置配線レーション 6 7 ダウンロード 7 ファイル作成 8 ダウンロード 9 実機での動作確認 8 9 FPGAベンダーが提供 ( 例 : QuartusⅡ/Altera, ISE/Xilinx) 仕様 : 製作する回路機能を明確化コード : VHDLによる記述論理 SIM: 実回路での遅延を考慮しないSIM ( 小規模回路では省略 ) 合成 : を生成する配置配線 : FPGA 内部構成用データを生成し, ピン割り当てを行う遅延 SIM: 遅延を含めた動作 SIM ファイル作成 : FPGAに転送する形式のファイルを作成ダウンロード : PCよりファイル転送実機動作 : FPGAボードで実際の動作を確認する 2.2 FPGA ボードの設計デモ FPGA ボードのブロック図 7 セグメント LED 3 FPGA PC 接続コネクタ 拡張ヘッダ (26I/O, オプション ) プッシュ スイッチ クロック発振器 33MHz FPGA Altera 社 7 セグメント LED 3 単体 LED 緑 3, 赤 3 単体 LED 緑 3, 赤 3 プッシュ SW FPGA ボード Altera (5 万ゲート相当 ) 搭載 設計ツール (QUARTSⅡ) DC 入力 5~6V 電源回路 1.5V, 3.3V ダウンロード回路 (ByteBlasterMV) パソコンのパラレルポート

QuartusⅡ による FPGA 設計フロー VHDL の基本構文 1 プロジェクトの作成 プロジェクト名の指定 設計ファイルの指定 ターゲット デバイスの指定 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_unsigned.all; 各種データ型や演算子に関するライブラリを指定 2 デザイン エントリ ( ソース コード入力 ) 3 コンパイル 4 ダウンロード ( サードパーティ ツールの指定 ) 論理合成 配置配線 コンフィグレーション データ生成 プログラミング方式の指定 コンフィグレーション ファイルの指定 プログラミングの実行 ピン配置指定 entity エンティティ名 is [ エンティティ文 ] end [ エンティティ名 ]; architecture アーキテクチャ名 of エンティティ名 is -- ノード宣言部 ( 外部には出力しない信号 ) signal, type 等 [ アーキテクチャ文 ] end [ アーキテクチャ名 ]; 入出力端子 (port) の設定 アーキテクチャ宣言 の機能 動作を記述 例題 1: LED の点灯と消灯 例題 1: LED の点灯 -- VHDL ソースコード 27 Vcc 3.3V D4 34 28 26 35 36 560Ω 6 D7 D5 D6 FPGA ボードの LED 周辺回路 D8 D9 LED の点灯 消灯をピンの L/H で制御 ( 負論理 ) LED のアノードには Vcc (3.3V) が印加されている I/O ピンが L で点灯 I/O ピンが H で消灯 LED(D9) を点灯するピン配置 ピンの名前 led_out ピン番号 36 entity practice1 is led_out: out std_logic); end practice1; architecture rtl of practice1 is -- led_outが 0 で LEDが点灯 -- led_outが 1 でLEDが消灯 led_out <= '0'; ( 出力ポート設定 ) アーキテクチャ宣言 --- RTL レベルでの動作記述

QuartusⅡ の操作手順 ( 操作デモ概要 ) 例題 2: 3 個の LED で 2 進数を表示する QuartusⅡ の起動 1 プロジェクトの作成 2 デザイン エントリ ( ソース コード入力 ) 3 コンパイル 4 ダウンロード プロジェクト名の指定 設計ファイルの指定 ターゲット デバイスの指定 ( サードパーティ ツールの指定 ) プリフィット ( 論理合成 配置配線 ) -- 回路規模, 動作周波数チェック他 ポストフィット ( 書込みデータ生成 ) Tools Programmer 設定確認,Auto Detect ( 認識 ) ファイル名指定 (*.sof) Start 時間の関係上既存 qpf を開く (qdesigns quartus_usage) T100C8 ピン配置指定 未使用ピン処理 ( プルアップ &Hi-Z) entity practice2 is led_out: out std_logic_vector(2 downto 0)); end practice2; architecture rtl of practice2 is -- led_outが 0 のビットはLED 点灯 -- led_outが 1 のビットはLED 消灯 -- 2 進数ビット反転式で (5) 10 を表現 led_out <= "010"; (3 ビットバス出力 ) アーキテクチャ宣言 --- RTL レベルでの動作記述 例題 3: 7 セグメント LED に 16 進数を表示する (1) use ieee.std_logic_unsigned.all; entity practice3 is led_out: out std_logic_vector(7 downto 0)); end practice3; architecture rtl of practice3 is signal counter : std_logic_vector(3 downto 0) := (others=>'0'); counter <= "0010"; -- 以下に続く 4 ビットで 7 セグ LED の表示数値を設定 アーキテクチャ宣言ノード counter 定義 (8 ビットバス出力 ) FPGA ボードの 7 セグメント LED 回路 5 20 23 26 24 21 22 a b c d e f g 25 560Ω 8 f e D3 a g d Vcc (3.3V) b c coma comdp dp LED アクティブLow 信号表示 a b c d e f g 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 7セグメントLED(D3) のピン配置 ピンの名前 接続 ピン番号 led_out[0] dp 25 led_out[1] g 22 led_out[2] f 21 led_out[3] e 24 led_out[4] d 26 led_out[5] c 23 led_out[6] b 20 led_out[7] a 5

例題 3: 7 セグメント LED に 16 進数を表示する (2) process 文 : 4ビット入力 process(counter) 値の変化による8ビット 出力値の変化を記述 case counter is (7セグ表示用デコーダ) when "0000" => led_out <= "00000011"; when "0001" => led_out <= "10011111"; case 文 : when 条件 when "0010" => で場合分けし, => led_out <= "00100101"; の文を実行する when "1000" => led_out <= "00000001"; when "1001" => led_out <= "00001001"; when "1010" => led_out <= "00010001"; when "1011" => led_out <= "11000001"; when "1100" => led_out <= "11100101"; when "1101" => led_out <= "10000101"; when "1110" => led_out <= "01100001"; when "1111" => led_out <= "01110001"; when others => null; end case; 例題 4: 7 セグメント LED 表示を順次増加させる (1) use ieee.std_logic_unsigned.all; entity practice4 is clk led_out: out std_logic_vector(7 downto 0)); ( クロック入力 clk) when "0011" => ( 同時並列に実行 ) led_out <= "00001101"; when "0100" => end practice4; led_out <= "10011001"; when "0101" => architecture rtl of practice4 is led_out <= "01001001"; when "0110" => signal counter : std_logic_vector(3 downto 0) := (others=>'0'); led_out <= "01000001"; othersは それ以 signal div_counter : std_logic_vector(24 downto 0) := (others=>'0'); when "0111" => 外のとき, 処理な signal div_clk : std_logic := '0'; アーキテクチャ宣言 led_out <= "00011111"; しの場合 null 分周用カウンタ div_counter 省略しないこと 分周用クロック div_clk 例題 4: 7 セグメント LED 表示を順次増加させる (2) Process 文 ( 分周回路 ): 33MHzのclkを分周し,1 秒のclkを作成 (25bitカウンタのMSBは32M 分周 ) process (clk) -- if 文で33MHz clkの立上がりを検出し,div_counterを進める if clk'event and clk='1' then div_counter <= div_counter + 1; -- div_clk が 1Hz の分周クロックで, デコーダへのクロック入力 div_clk <= div_counter(24); process(div_clk) if div_clk'event and div_clk='1' then counter <= counter + 1; Process 文 : div_clk の立上がり検出し, LED 表示用 counter を進める 例題 4: 7 セグメント LED 表示を順次増加させる (3) process(counter) case counter is when "0000" => led_out <= "00000011"; when "0001" => led_out <= "10011111"; when "0010" => led_out <= "00100101"; when "0011" => led_out <= "00001101"; when "0100" => led_out <= "10011001"; when "0101" => led_out <= 01001001 ; when "0110" => led_out <= "01000001"; when "0111" => led_out <= "00011111"; process 文 : 4 ビット入力値の変化による 8 ビット出力値の変化を記述 (7 セグ表示用デコーダ ) when "1000" => led_out <= "00000001"; when "1001" => led_out <= "00001001"; when "1010" => led_out <= "00010001"; when "1011" => led_out <= "11000001"; when "1100" => led_out <= "11100101"; when "1101" => led_out <= "10000101"; when "1110" => led_out <= "01100001"; when "1111" => led_out <= "01110001"; when others => null; end case;

3 人による多数決の真理値表 ( 基礎第 2 回講義より ) A B C Y 0 0 0 0 A 0 0 1 0 C 0 1 0 0 B 0 1 1 1 1 0 0 0 入力変数 A, B, Cとして, 出力 Yは 1 0 1 1 Y = ABC + ABC + ABC + ABC 1 1 0 1 1 1 1 1 この論理式を順次簡単化 Y = ABC + ABC + ABC + ABC + ABC + ABC = BC ( A + A) + AC( B + B) + AB( C + C) = AB + BC + CA Vcc 3.3V SW1 SW 入力回路とチャタリング除去 SW2 FPGA ボードの SW 入力回路 SW3 SW4 2.2k 100Ω 1μ 40 39 38 37 10 CK (33MHz) SW1~SW4: 40~37 番ピン ( 負論理 ) 33Ω OFF ON SW 波形 ピンの名前 led_out sw_in1 sw_in2 sw_in3 clk チャタリング (1ms 位 ) CK 波形 ( 基本 CK の分周波形 ) 理想タイミング 1 回目 "H" タイミング 1 回目 "L" タイミング #1 #1 #1 #2 ピン番号 36 37 38 39 10 CK 立上がりで SW 信号取得 1 回目の結果がマチマチでも 2 回目は L" ( 周期 msオーダ ) #2 例題 51: 3 個のスイッチによる多数決論理 (1) use ieee.std_logic_unsigned.all; entity practice51 is -- div_bits is division bits number generic ( div_bits : integer :=15); port( clk sw_in1 sw_in2 sw_in3 led_out end practice51; : out std_logic); & 1 チャタリング除去用分周設定 ( ) - 15bit 分周 (33MHz 1KHz) 2 入出力ポート設定入力 : SW1~3 出力 : LED generic 文 : 回路全体に適用可能なパラメータ ( アーキテクチャ部でも使用可 ) 例題 51: 3 個のスイッチによる多数決論理 (2) architecture rtl of practice51 is signal div_counter : std_logic_vector(div_bits-1 downto 0) := (others=>'0'); signal sw_in_node1, sw_in_node2, sw_in_node3 : std_logic; signal a, b, c, y : std_logic; -- チャタリング防止のためのクロック分周回路 process(clk) if clk event and clk = 1 then -- CLK の立上がり検出 カウント UP div_counter <= div_counter + 1; -- 分周信号で SW 入力をラッチする回路 ( 分周 CK の MSB を CK にする ) process (div_counter(div_bits-1)) -- process if div_counter(div_bits-1)'event and div_counter(div_bits-1) ='1' then sw_in_node1 <= sw_in1; sw_in_node2 <= sw_in2; sw_in_node3 <= sw_in3; 3 個の SW 入力 ( 多数決入力 ) div_counter の最上位ビットの立ち上がり検出

例題 51: 3 個のスイッチによる多数決論理 (3) まとめ a <= not sw_in_node1; b <= not sw_in_node2; c <= not sw_in_node3; y <= (a and b) or (b and c) or (c and a); led_out <= not y; 論理演算結果を LED に出力 多数決論理 の内部演算 y = ab + bc + ca HDL 設計入門 設計の流れ FPGA ボードによる設計デモ VHDL 基本構文 QuartusⅡ の操作手順と例題 #1 LED の点灯と消灯 #2 3 個の LED による 2 進数表示 #3 7 セグメント LED に 16 進数を表示する #4 7 セグメント LED 表示を順次増加させる #51 3 個のスイッチによる多数決論理 参考図書 山際伸一, 改訂版 FPGA ボードで学ぶ設計,CQ 出版 (2009) 堀桂太郎, 図解 VHDL 実習第 2 版, 森北出版 (2004) 徹底図解ロジック回路設計はじめの一歩,CQ 出版 (2009)