SlideShare a Scribd company logo
1 of 31
Download to read offline
ハードウエア設計演習
小山 幸伸
大分工業高等専門学校
このスライド内でいうハードウエアっ
て何??
ハードウェア(機構系) ハードウェア(電子系)
今回は取り扱わない
ハードウエア(電子系)??
アナログ系 デジタル系
一部取り扱うけど,この授業のメイン
ディッシュではない.
基礎演習, 工学実験の復習
 74??シリーズや14???シリーズなどのロジックICの動作
確認をブレッドボード上でした(はず)。
 回路が大規模になると、配線,デバッグ, 仕様変更が大変。
7400
では今までの知識を動員して,複雑な
デジタル回路を作成しましょう.
何か他の手立ては無いの??
デジタル回路の開発手段
ごく小規模な回路で,手戻りが想定されないような試
作品であれば,74シリーズや14???シリーズで作成
するのも解のひとつ.
比較的大規模な回路を取り扱い,回路設計が何度も
変わるなど,手戻りが発生する場合は,他の手段が
必要.
プログラマブル・デバイスの利用
XILINX CoolRunner-II
XC2C32A6VQ44C
XILINX SPARTAN-6LX
XC6SLX9-2TQG144C
• CPLD
(Complex Programmable
Logic Device)
FPGA
(Field-programmable gate array)
2000円くらい300円くらい
CPLDとFPGAの大別
CPLD FPGA
プログラミング
素子
Flash/EEPRO
M, 不揮発性
SRAM
揮発性
集積度 小~中 中~大
利用例 シンプルな制御 より複雑な制御,
データ処理系
プログラマブルデバイスの利用例
いずれも、入力信号の処理に、
XILINXのFPGAを利用している。
約10,000
アンテナ
66アンテナ
相関器
High Performance
Computing(HPC)は天文と
素粒子で盛ん.
24時間観測できる電波天文
では,時々刻々とデータが増
えるため,一度取得したデー
タをアーカイブして,あとで
PC
クラスターで並列計算では間
に合わない.
専用計算機の必要性.
ALMA
Correlator17,066 Xilinx Field Programmable Gate Arrays (FPGA).
Grape Super
Computer
http://prc.nao.ac.jp/blog/?cat=1
5
他のプログラマブルデバイス(FPGA)の利用
例
レポート箇所なので,略
「ハードウエア記述言語」
ハードウェア記述言語
Hardware Description Language (HDL)と
は、デジタル集積回路を設計するための
 コンピュータ言語です。
電子回路の復習
様々な論理回路
A B Z
L L L
L H L
H L L
H H H
A B Z
L L L
L H H
H L H
H H H
A B Z
L L L
L H H
H L H
H H L
A Z
L H
H L
(1) Z=A・
B
(2) Z=A+B
(3) Z=A’
(4) Z=A’B+AB’
ハードウェア記述言語の色々
 Verilog HDL

 VHDL (VHSIC HDL,
      Very High Speed Integrated Circuits
HDL)

 SystemC など
NOT回路(not_gate.vhdl) 
①
1: library IEEE;
2: use IEEE.STD_LOGIC_1164.all;
3:
4: entity NOT_GATE is
5: port(
6: A : in std_logic;
7: Z : out std_logic);
8: end NOT_GATE;
9:
ライブラリ名
パッケージ名
エンティティ部は、1つの設
計単位を表現し、回路名(エ
ンティティ名)と外部のイン
ターフェイスを定義します。
NOT回路(not_gate.vhdl) 
②
10: architecture NOT_GATE_A of NOT_GATE is
11: begin
12: Z <= not A;
13: end NOT_GATE_A;
アーキテクチャーは、
エンティティ定義された
回路の内部動作を定義
する。
アーキテチャー名
エンティティ名
ここまでは、AとZの関係を定義したのみ。
動作確認には、Aに入力する必要あり。
シミュレーターを用いた
シミュレーション
 GHDL: VHDLのコンパイラの実装のひとつ。
 GTKWave: 入出力波形の可視化。
動作確認のための、Testbenchの作成 ①
(not_gate_tb.vhdl)
1: library IEEE;
2: use
IEEE.STD_LOGIC_1164.all;
3:
4: entity NOT_GATE_TB is
5: end NOT_GATE_TB;
6:
7: architecture SIM of
NOT_GATE_TB is
8: signal A : std_logic;
9: signal Z : std_logic;
空のエンティティ
シミュレーション用のアーキテクチャー名
SIMを定義する。
信号名とデータ・タイプを指定する。
続:動作確認のための、Testbenchの作成 ②
(not_gate_tb.vhdl)
10: component NOT_GATE
11: port(
12: A : in std_logic;
13: Z : out std_logic
14: );
15: end component;
16:
ポートを定義する。
続:動作確認のための、Testbenchの作成 ③
(not_gate_tb.vhdl)
17: begin
18: not_gate0: NOT_GATE port
map(A, Z);
19:
20: process begin
21: A <= ‘0’; wait for 10
us;
22: A <=‘1’; wait for 10
us;
23: A <=‘0’; wait for 10
us;
24: assert (false) report
“Simulation End!” severity
failure;
25: end process;
26: end SIM;
ポートAに信号を与える。
テストベンチを停止するコマンド。
GHDLの実行方法
 $ gdhl --clean
 $ ghdl –a
not_gate.vhdl
 $ ghdl –a
not_gate_tb.vhdl
     
 $ ghdl –e not_gate
 $ ghdl –e not_gate_tb
       
 $ ghdl –r not_gate_tb
 –vcd=hoge.vcd         
 $ gtkwave hoge.vcd       
以前の実行時の設定をクリアする。
vhdlファイルを解析する。
実行ファイルを作る。
実行する。
可視化する。
NOT回路の入出力の可視化
2009年, CPLDのシェア
Xilinx Altera Etc
2009年, FPGAのシェア
Xilinx Altera Etc
https://www.slideshare.net/fpgacentral/fcamp-
may2010fpgaecosystemxilinx
プログラマブルデバイスのシェア
最近のハードウェア関係の話題
2016 ソフトバンクによるARMの買収
2015 インテルによるAlteraの買収
Xilinx Altera
開発環境 ISE Quartus
主要な開発言
語
VHDL Verilog
Alteraの方が,初学者向け教材が豊富だった.
付録
演習問題1
 下記のプログラミングを行い、
動作確認せよ。
1. AND回路
2. OR回路
1. NAND回路
2. NOR回路
3. XOR回路
1. 3入力NAND回路
 ANDとNOTによって構成される、
下記の回路をプログラムし、動
作確認せよ。
演習問題2
 半加算器をプログラムし、動作
確認せよ。
 全加算器をプログラムし、動作
確認せよ(Component使用)
A B C S
L L L L
L H L H
H L L H
H H H L
A B X C S
L L L L L
L L H L H
L H L L H
L H H H L
H L L L H
H L H H L
H H L H L
H H H H H
定義した半
加算器を
使い回す。
AND回路(and.vhdl)
library IEEE;
use
IEEE.STD_LOGICc_1164.
all;
entity AND is
port(
A : in std_logic;
B : in std_logic;
Z : out std_logic);
end and_or;
architecture AND_A of
AND is
begin
Z <= A and B;
end AND_A;
 タイムチャート
AND回路の入出力の可視化

More Related Content

What's hot

FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器I_HaL
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応marsee101
 
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Makerの「道具」としてのLSI~「LED点滅用のLSIをつくって  Lチカをやってみた」のココロ~(MakerFaireTokyo2014)Makerの「道具」としてのLSI~「LED点滅用のLSIをつくって  Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)Junichi Akita
 
高速シリアル通信を支える技術
高速シリアル通信を支える技術高速シリアル通信を支える技術
高速シリアル通信を支える技術Natsutani Minoru
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料直久 住川
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングShinya Takamaeda-Y
 

What's hot (7)

FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Makerの「道具」としてのLSI~「LED点滅用のLSIをつくって  Lチカをやってみた」のココロ~(MakerFaireTokyo2014)Makerの「道具」としてのLSI~「LED点滅用のLSIをつくって  Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
 
高速シリアル通信を支える技術
高速シリアル通信を支える技術高速シリアル通信を支える技術
高速シリアル通信を支える技術
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミング
 

Similar to Hardware

1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリNVIDIA Japan
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
これからのコンピューティングとJava(Hacker Tackle)
これからのコンピューティングとJava(Hacker Tackle)これからのコンピューティングとJava(Hacker Tackle)
これからのコンピューティングとJava(Hacker Tackle)なおき きしだ
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムJunichi Kakisako
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会Koichi Sakata
 
第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオン第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオンYusuke HIDESHIMA
 
Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Hiromu Yakura
 
OSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUGOSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUGHideki Aoshima
 
自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみたJunichi Akita
 
20140910 Arduino for beginners
20140910 Arduino for beginners20140910 Arduino for beginners
20140910 Arduino for beginnersKenichi Ohwada
 
Internet of Things
Internet of ThingsInternet of Things
Internet of ThingsRainmaker Ho
 
コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道なおき きしだ
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519Yasuhiro Ishii
 

Similar to Hardware (20)

1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
Cuda
CudaCuda
Cuda
 
これからのコンピューティングとJava(Hacker Tackle)
これからのコンピューティングとJava(Hacker Tackle)これからのコンピューティングとJava(Hacker Tackle)
これからのコンピューティングとJava(Hacker Tackle)
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオン第2回 某社Arduino勉強会 ハンズオン
第2回 某社Arduino勉強会 ハンズオン
 
Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編Arduinoでプログラミングに触れてみよう 続編
Arduinoでプログラミングに触れてみよう 続編
 
OSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUGOSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUG
 
自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた
 
20140910 Arduino for beginners
20140910 Arduino for beginners20140910 Arduino for beginners
20140910 Arduino for beginners
 
Arduino
ArduinoArduino
Arduino
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
第1回電子制御講習
第1回電子制御講習第1回電子制御講習
第1回電子制御講習
 
about DakotagUI
about DakotagUIabout DakotagUI
about DakotagUI
 
Arduino jenkins
Arduino jenkinsArduino jenkins
Arduino jenkins
 
コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
 

More from Yukinobu Koyama

Dagik earthのための ヒューマンインターフェースの提案
Dagik earthのための ヒューマンインターフェースの提案Dagik earthのための ヒューマンインターフェースの提案
Dagik earthのための ヒューマンインターフェースの提案Yukinobu Koyama
 
Code for Nabari 第3回定例ミーティング
Code for Nabari 第3回定例ミーティングCode for Nabari 第3回定例ミーティング
Code for Nabari 第3回定例ミーティングYukinobu Koyama
 
20190129 nit oita-koyama
20190129 nit oita-koyama20190129 nit oita-koyama
20190129 nit oita-koyamaYukinobu Koyama
 
大分県下の全市町村版5374アプリ用オープンデータの整備
大分県下の全市町村版5374アプリ用オープンデータの整備大分県下の全市町村版5374アプリ用オープンデータの整備
大分県下の全市町村版5374アプリ用オープンデータの整備Yukinobu Koyama
 
Development of low cost geomagnetic observation system by using Magneto-imped...
Development of low cost geomagnetic observation system by using Magneto-imped...Development of low cost geomagnetic observation system by using Magneto-imped...
Development of low cost geomagnetic observation system by using Magneto-imped...Yukinobu Koyama
 
背面投影型Dagik Earthのための球面マルチタッチパネルの開発
背面投影型Dagik Earthのための球面マルチタッチパネルの開発背面投影型Dagik Earthのための球面マルチタッチパネルの開発
背面投影型Dagik Earthのための球面マルチタッチパネルの開発Yukinobu Koyama
 

More from Yukinobu Koyama (20)

Dagik earthのための ヒューマンインターフェースの提案
Dagik earthのための ヒューマンインターフェースの提案Dagik earthのための ヒューマンインターフェースの提案
Dagik earthのための ヒューマンインターフェースの提案
 
Code for Nabari 第3回定例ミーティング
Code for Nabari 第3回定例ミーティングCode for Nabari 第3回定例ミーティング
Code for Nabari 第3回定例ミーティング
 
20190129 nit oita-koyama
20190129 nit oita-koyama20190129 nit oita-koyama
20190129 nit oita-koyama
 
大分県下の全市町村版5374アプリ用オープンデータの整備
大分県下の全市町村版5374アプリ用オープンデータの整備大分県下の全市町村版5374アプリ用オープンデータの整備
大分県下の全市町村版5374アプリ用オープンデータの整備
 
Development of low cost geomagnetic observation system by using Magneto-imped...
Development of low cost geomagnetic observation system by using Magneto-imped...Development of low cost geomagnetic observation system by using Magneto-imped...
Development of low cost geomagnetic observation system by using Magneto-imped...
 
背面投影型Dagik Earthのための球面マルチタッチパネルの開発
背面投影型Dagik Earthのための球面マルチタッチパネルの開発背面投影型Dagik Earthのための球面マルチタッチパネルの開発
背面投影型Dagik Earthのための球面マルチタッチパネルの開発
 
20151028koyama
20151028koyama20151028koyama
20151028koyama
 
20151102koyama
20151102koyama20151102koyama
20151102koyama
 
20150817koyama
20150817koyama20150817koyama
20150817koyama
 
20140311京大所内
20140311京大所内20140311京大所内
20140311京大所内
 
20121020
2012102020121020
20121020
 
20140429 egu
20140429 egu20140429 egu
20140429 egu
 
Or2013 poster
Or2013 posterOr2013 poster
Or2013 poster
 
Sgepss2013 koyama
Sgepss2013 koyamaSgepss2013 koyama
Sgepss2013 koyama
 
Iugonet 20130524 poster
Iugonet 20130524 posterIugonet 20130524 poster
Iugonet 20130524 poster
 
Iugonet 20130522
Iugonet 20130522Iugonet 20130522
Iugonet 20130522
 
Iugonet 20100616
Iugonet 20100616Iugonet 20100616
Iugonet 20100616
 
Iugonet 20100916
Iugonet 20100916Iugonet 20100916
Iugonet 20100916
 
Iugonet 20130301
Iugonet 20130301Iugonet 20130301
Iugonet 20130301
 
Iugonet 20100816 system
Iugonet 20100816 systemIugonet 20100816 system
Iugonet 20100816 system
 

Hardware