SlideShare a Scribd company logo
Cockatrice
Hardware Design Environment
with Elixir
Hideki Takase
(Kyoto University / JST PRESTO)
takase@i.kyoto-u.ac.jp
Who am I?
@takasehideki
− Assistant Professor at Kyoto University
− Researcher at PRESTO program,
Japan Science of Technology Agency
My Research Topics/Interests
− System level design for
embedded real-time systems
− IoT computing architecture
SW/HW codesign for
processors and FPGA!
− and,,, Elixir for IoT!!!
2
Thank to,,, with Wabi-Sabi
• My students in lab.
− Kentaro Matsui
− Yasuhiro Nitta
• My research partners at fukuoka.ex
− @zacky1972
− @hisawayex
− @piacere_ex
− @enpedasi
• My friends at hls-friends
− Tech comm. for self-made high-level synthesis tools
3
Introduction of
HW Design on FPGA
• What is FPGA?
• Advantages, applications, and design flow
• High level synthesis and high level design
“do what needed immediately”
• application specific architecture
• dedicated data width and
customized units as needed
Computational Resources
”do whatever is instructed"
• universal data path to
cover all application cases
• fixed data width and
arithmetic units
processor
with
software
ASIC
as
hardware
5
Computational Resources
6
design flexibility
development cost
power efficiency
performance
FPGA
processor
with
software
ASIC
as
hardware
What is FPGA?
• Field Programmable Gate Array
− LSIs whose contents can
be changed any time
− We can design a unique
digital circuit (HW) on it
− Two major vendors
Xilinx・Altera (powered by Intel)
7
IOB
SB
CB LB
IOB
IOB
SB
IOB LB
SB
CB CB
SB
CB
SB SB
CB CBLB IOBIOB LB
SB SB SB
IOB IOB
CB
CB
CB
CB
CB
CB
I/O block
connection blockLB logic block
IOBSB switching block
CB
LUT
IN OUT
0000 1
0001 0
0010 0
… …
1110 1
1111 0
D-FF
D Q
Common Design Flow
8
RTL description
RTL simulation
logic synthesis
technology mapping
placement and routing
bitstream generation
• Design by Hardware
Description Language (HDL)
always@(posedge clk) begin
if (!rst) out <= 0;
else begin
case (in)
4'b0001 : tmp <= 1;
4'b0010 : tmp <= 5;
4'b1100 : tmp <= 7;
default : tmp <= 0;
endcase
end
end
assign out = ~{reg[7:4], tmp[3:0]};
post-layout simulation
Common Design Flow
9
RTL description
RTL simulation
logic synthesis
technology mapping
placement and routing
bitstream generation
post-layout simulation
LUT
LUT
EDA tools support
almost everything!
How to Use of FPGA
10
processor
通信バス
FPGA
Offloading
heavy processing
HW
HW
interface IF
circuit
performance improvement
and low power consumption
can be achieved
SW
SW
communication
between SW/HW
SW
SW
IF
driver
Applications of FPGA
• Used as LSIs for rapid design of ASICs
− Functionality of ASICs can be verified before production
− Development of SW can be started before
HW manufacturing is completed
• Used as LSIs for final products
− There are already so many practical consumer products
− It is possible to have a rewriting function after shipping
− Recent practical applications
 Financial market transaction, robotics and automotive
 Data center / cloud server
 Machine Learning!!
11
Machine Learning on FPGA
• Accelerator of CNN/DNN
− Neuron synapse values flow through the pipeline
12
Ref: K. Ovtcharov, et al. Toward Accelerating Deep Learning at Scale Using Specialized Hardware in the Datacenter,
HotChips27, 2015.
C. Zhang, et al. Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks, FPGA 2014.
Advantage of FPGA
13
FPGA
Memory
Func Func
Func FuncFunc
Func FuncFunc
FuncFunc
• Various systems can be designed onto one LSI
• High performance / low power consumption
• Parallel processing can be realized at task/data level
• Data streaming processing can be realized
Current Technology Trends
• Increase in circuit scale and amount of LB
− High performance systems can be realized
− Further increase will continue by new technology
 multi-die, 3D stacking,,,
• Tightly coupling with processors
− General-purpose: Connection via PCIe to processors
− Embedded: Integration with embedded processors
14
high-quality system design
in a short time
has become difficult,,,
High Level Synthesis (HLS)
• Solution to improve design productivity!
− Technology for synthesizing HDL from behavioral
descriptions with a programming language
C/C++ or its extension is commonly used
− Abstraction level of design becomes higher
15
int func (int x) {
int a[N];
int i;
for(i=0;i<N;i++){
a[i] = ・・・;
:
:
}
:
}
x
func
i
a
Commercial HLS Tools
• Xilinx Vivado HLS
− Synthesize from C/C++
− #pragma is offered to
indicate the optimization
16
• Intel SDK for OpenCL
− Synthesize from
OpenCL parallelized code
− Can be executed with same
description as the host PC
Ref: Xilinx Inc. White paper UG902
D. Neto, Optimizing OpenCL for Altera FPGAs, Int’l Workshop on Open CL, 2014.
It is essential to understand
#pragma and libraries deeply
for deriving optimized hardware
not only C/C++!!
• Chisel: Scala based
− Object Oriented / Functional styled DSL
• CλaSH: Haskell based
− Synthesize HDL from description of functional language
• Karuta: original scripting language
• Synthesijer: Java based
− HLS from the subset of Java specification
• PyCoRAM, Polyphony: Python based
 Veriloggen: Python library for HDL design
• Mulvery: Ruby based
− Synthesis from Reactive Programming
• Octopus🐙:OCaml based
17
developed by
Japanese
hls-friends!!
OK, What We Want is,,,
18
We want to design
HW by Elixir!!
We want to operate HW
from our Elixir code!!
Concept of Cockatrice
• Elixir Zen Style
• Why Elixir would be suitable for HW design?
• HW synthesis flow from Elixir code
• SW/HW communication interface
What is Cockatrice?
• Summoned beast that appears in FF4 (^^;
− The effect is to make all enemies to stones
• Hardware design environment with Elixir!
• Features
− It synthesizes Elixir Zen Styled code
to the description of HW circuits
− It provides communication interface
between Elixir code and HW circuits
20
Your Elixir code can be accelerated,
and low-powered!!
NOTE: Current logo of cockatrice is from Wikipedia
Elixir Zen Style
• Enum:
transform data directly
• Flow:
realize parallel processing
intuitively (by MapReduce)
• |>: pipeline operator
express data flow intuitively
• Zen(禅) means the essential beauty
− The essential of programming is data transformation
− Enum Flow |> describe only data transformation
21
input_list
|> Flow.from_enumerable()
|> Flow.map(& foo(&1))
|> Flow.map(fn a->-a end)
|> Enum.to_list
|> Enum.sort
Zen’s process model
22
input_list
|> Flow.from_enumerable(stages: 4)
|> Flow.map(& foo(&1))
|> Flow.map(fn a->-a end)
|> Enum.to_list
|> Enum.sort
from_
enumerable
input_list
foo
foo
foo
foo
sortto_list
arbitrator
-a
-a
-a
-a
It’s similar to
efficient HW
architecture!!
Zen is suitable for HW design!
23
Cockatrice
input_list
|> Flow.from_enumerable(stages: 4)
|> Flow.map(& foo(&1))
|> Flow.map(fn a->-a end)
|> Enum.to_list
|> Enum.sort
from_
enumerable
input_list
foo
foo
foo
foo
sortto_list
arbitrator
-a
-a
-a
-a
We summon Cockatrice to lithify
Elixir Zen Styled Code
as parallel HW stones!!
Effect of Cockatrice
24
Input
List from_
enume
rable
to_list
sort
foo -a
foo -a
foo -a
foo -a
arbitrator
foo -a
foo
-a
foo -a
foo
-a
foo
-a
foo
foo -a
foo
-a
foo -a -a
foo -a
foo -afoo -a
foo -a
HW Description by Elixir
• defcockatrice part will be
treat as HW description
− It is completely equivalent
to native Elixir code
You do not need to
consider HW design
It can be verified at
functional level
• HW module can be called
as same as SW function
− We assume SW/HW
cooperative systems
25
Synthesis Flow
26
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
Synthesis Flow
27
Metaprogramming method is employed
to derive AST of Zen styled design
description by Quote function
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
Synthesis Flow
28
we provide templates of HDL
code that are equivalent to
Enum functions as DSL files
HDL code is synthesized by
applying pattern matching
with AST and DSL
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
Synthesis Flow
29
each modules is connected as data flow
from AST representation of |> and Flow
data flow and parallel processing
HW circuit is finally synthesized!!
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
Synthesis Flow
30
communication interface
and its driver are
generated as NIF function
Code analysis &
AST optimization
design desc.
Elixir
templates for IP
DSL
info. of desc.
AST
Synthesis of
HW modules from
Elixir function
HW IP modules
HDL
data flow HW
circuit HDL
HW circuits
bitstream
logic synthesis
SW app
Elixir+C(NIF)
Compilation
of SW
Generation of
device driver
of I/F circuit
Synthesis of
data flow
I/F driver
C(NIF)
SW binary and HW bit files are
compiled by respective tools
Synthesis Flow
31
SW binary and HW bit files are
compiled by respective tools
SW/HW Comm. Interface
• Activation/Operation to
HW from Elixir code
• Data communication
between SW and HW
− AXI4 bus on Zynq is used
• We implement device
driver as C/NIF module
− ikwzm/udmabuf is used
for DMA transfer
− Elixir/Erlang list should be
converted to C array
32
FPGA
processor
DMA buffer
HW circuits
Elixir app
Erlang VM
device driver
(NIF module)
interface
circuit
Our Targets
33
Zynq-7000 Zynq UltraScale+
Demonstration Time??
• Board: Avnet Ultra96-V2
− Zynq UltraScale+ ZU3EG
− 1.5GHz quad-core Arm Cortex-A53
− 16nm FinFET+ programmable logic
$249.00
• EDA tool: Xilinx Vivado 2019.1
• Software platform
− Linux Kernel v4.19.0 with debian10-rootfs-vanilla
from ikwzm/ZynqMP-FPGA-Linux build-v2019.1
with udmabuf v1.4.2 as kernel module
− Elixir 1.9.1-otp-22 / Erlang 22.0.7
34
Discussion
&
Future Direction
Discussion
• Currently, we just implement prototypes
− We will publish them as Hex pkgs very soon,,,
− Currently supported features are limited
IOW, we only synthesize Zen styled code
Are another Elixir/Erlang process models
suitable for efficient HW architecture?
− Quantitative evaluation of our proposal will be also
important (to verify academic contribution^^;
36
Discussion
• Applicable range of Cockatrice?
− Not only embedded, but also HPC domain!?
Bigger data for Cockatrice would be suitable
since there is some overhead on SW/HW comm.
− AI/ML would be a killer application
Big data stream processing for IoT
Cloud processing that allows users
to change functions flexibly
− We are planning to support large-scale FPGA
boards with comm. interface for PCIe bus
37
BTW, I love Nerves!!
• Experiences at Lonestar2019 was great for me!
• I made a presentation to promote the innovation of
Nerves to Japan at Erlang & Elixir Fest 2019!!
38
Nervesが開拓する
『ElixirでIoT』
の新世界
⾼瀬 英希
(京都⼤学/JSTさきがけ)
takase@i.kyoto-u.ac.jp
18
ライブデモのお品書き
1. Nervesプロジェクトの準備とビルド
2. microSDに書き込んでブート・IEx実⾏
3. ソース編集してlocal ssh書き込み
4. NervesHubから書き込み
5. Scenic連携&GPIOデバイスの制御
Raspberry Pi Zero WH Adafruit 128x64 OLED Bonnet
https://github.com/takasehideki/eefest19demo
NervesKey
『ElixirでIoT』の新世界︕
25
デバイス
エッジサーバ クラウド
あらゆるモノ・コト・ヒトを
ネットワーク化︕
情報科学の総合格闘技︕
新たな社会的価値を創出!!
みんなで⼀緒に
IoTを創ろう︕
14
NervesHub
•サーバ経由のOTA (Over The Air) で
Nervesアプリをリモートデプロイ︕
- X.509署名証明書とNervesKey回路で
セキュアな接続経路を実現
- 更新先とファームを任意指定可
Nerves Training in Japan!!
Thank you so much, Justin & Frank!!
39
Future Direction
40
What will happen
when Nerves meets Cockatrice?
Please help us, to evolve the new era of
"IoT development with Elixir"
Thank you for your attention!!
41

More Related Content

What's hot

Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabTaeung Song
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack monad bobo
 
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Takahiro Harada
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料一路 川染
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDBLinaro
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPFAlex Maestretti
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwardingMasakazu Asama
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラNVIDIA Japan
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Hideki Takase
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThomas Graf
 
What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19ShapeBlue
 
Virtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper VVirtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper Vfabricemeillon
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCKernel TLV
 

What's hot (20)

Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料
 
rtnetlink
rtnetlinkrtnetlink
rtnetlink
 
Q2.12: Debugging with GDB
Q2.12: Debugging with GDBQ2.12: Debugging with GDB
Q2.12: Debugging with GDB
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPF
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19
 
Virtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper VVirtualisation de Machines avec Windows Hyper V
Virtualisation de Machines avec Windows Hyper V
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 

Similar to Cockatrice: A Hardware Design Environment with Elixir

ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計するHideki Takase
 
Basic Design Flow for Field Programmable Gate Arrays
Basic Design Flow for Field Programmable Gate ArraysBasic Design Flow for Field Programmable Gate Arrays
Basic Design Flow for Field Programmable Gate ArraysUsha Mehta
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12chitlesh
 
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V International
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11chitlesh
 
vlsi design summer training ppt
vlsi design summer training pptvlsi design summer training ppt
vlsi design summer training pptBhagwan Lal Teli
 
module 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptxmodule 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptxMaaz609108
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryDeepak Shankar
 
Integrated Circuits introduction and fpga
Integrated Circuits introduction and fpgaIntegrated Circuits introduction and fpga
Integrated Circuits introduction and fpgaVenkataramanLakshmin1
 
06_1_design_flow.ppt
06_1_design_flow.ppt06_1_design_flow.ppt
06_1_design_flow.pptMohammedMianA
 
6 months/weeks training in Vlsi,jalandhar
6 months/weeks training in Vlsi,jalandhar6 months/weeks training in Vlsi,jalandhar
6 months/weeks training in Vlsi,jalandhardeepikakaler1
 
6 weeks/months summer training in vlsi,ludhiana
6 weeks/months summer training in vlsi,ludhiana6 weeks/months summer training in vlsi,ludhiana
6 weeks/months summer training in vlsi,ludhianadeepikakaler1
 
OliverStoneSWResume2015-05
OliverStoneSWResume2015-05OliverStoneSWResume2015-05
OliverStoneSWResume2015-05Oliver Stone
 
Vlsi & embedded systems
Vlsi & embedded systemsVlsi & embedded systems
Vlsi & embedded systemsDeepak Yadav
 

Similar to Cockatrice: A Hardware Design Environment with Elixir (20)

ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
 
Basic Design Flow for Field Programmable Gate Arrays
Basic Design Flow for Field Programmable Gate ArraysBasic Design Flow for Field Programmable Gate Arrays
Basic Design Flow for Field Programmable Gate Arrays
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12
 
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
 
vlsi design summer training ppt
vlsi design summer training pptvlsi design summer training ppt
vlsi design summer training ppt
 
Detailed Cv
Detailed CvDetailed Cv
Detailed Cv
 
module 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptxmodule 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptx
 
A Common Backend for Hardware Acceleration of DSLs on FPGA
A Common Backend for Hardware Acceleration of DSLs on FPGAA Common Backend for Hardware Acceleration of DSLs on FPGA
A Common Backend for Hardware Acceleration of DSLs on FPGA
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
FPGA @ UPB-BGA
FPGA @ UPB-BGAFPGA @ UPB-BGA
FPGA @ UPB-BGA
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP Library
 
Integrated Circuits introduction and fpga
Integrated Circuits introduction and fpgaIntegrated Circuits introduction and fpga
Integrated Circuits introduction and fpga
 
verification resume
verification resumeverification resume
verification resume
 
06_1_design_flow.ppt
06_1_design_flow.ppt06_1_design_flow.ppt
06_1_design_flow.ppt
 
6 months/weeks training in Vlsi,jalandhar
6 months/weeks training in Vlsi,jalandhar6 months/weeks training in Vlsi,jalandhar
6 months/weeks training in Vlsi,jalandhar
 
6 weeks/months summer training in vlsi,ludhiana
6 weeks/months summer training in vlsi,ludhiana6 weeks/months summer training in vlsi,ludhiana
6 weeks/months summer training in vlsi,ludhiana
 
OliverStoneSWResume2015-05
OliverStoneSWResume2015-05OliverStoneSWResume2015-05
OliverStoneSWResume2015-05
 
Vlsi & embedded systems
Vlsi & embedded systemsVlsi & embedded systems
Vlsi & embedded systems
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 

More from Hideki Takase

Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirHideki Takase
 
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓くHideki Takase
 
関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミングHideki Takase
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2Hideki Takase
 
Elixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/NervesはナウでヤングなcoolなすごいやつElixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/NervesはナウでヤングなcoolなすごいやつHideki Takase
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開Hideki Takase
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはHideki Takase
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークHideki Takase
 
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Hideki Takase
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentHideki Takase
 
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Hideki Takase
 
ROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+αROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+αHideki Takase
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜Hideki Takase
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてHideki Takase
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~Hideki Takase
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANHideki Takase
 
ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?Hideki Takase
 
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~Hideki Takase
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームHideki Takase
 

More from Hideki Takase (20)

Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
 
関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2
 
Elixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/NervesはナウでヤングなcoolなすごいやつElixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/Nervesはナウでヤングなcoolなすごいやつ
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うには
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
 
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/Eloquent
 
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
 
ROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+αROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+α
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYAN
 
ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?
 
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
 

Recently uploaded

FAIR & AI Ready KGs for Explainable Predictions
FAIR & AI Ready KGs for Explainable PredictionsFAIR & AI Ready KGs for Explainable Predictions
FAIR & AI Ready KGs for Explainable PredictionsMichel Dumontier
 
Topography and sediments of the floor of the Bay of Bengal
Topography and sediments of the floor of the Bay of BengalTopography and sediments of the floor of the Bay of Bengal
Topography and sediments of the floor of the Bay of BengalMd Hasan Tareq
 
GBSN - Microbiology (Lab 2) Compound Microscope
GBSN - Microbiology (Lab 2) Compound MicroscopeGBSN - Microbiology (Lab 2) Compound Microscope
GBSN - Microbiology (Lab 2) Compound MicroscopeAreesha Ahmad
 
Jet reorientation in central galaxies of clusters and groups: insights from V...
Jet reorientation in central galaxies of clusters and groups: insights from V...Jet reorientation in central galaxies of clusters and groups: insights from V...
Jet reorientation in central galaxies of clusters and groups: insights from V...Sérgio Sacani
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...NathanBaughman3
 
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...Sérgio Sacani
 
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...muralinath2
 
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...Sérgio Sacani
 
SAMPLING.pptx for analystical chemistry sample techniques
SAMPLING.pptx for analystical chemistry sample techniquesSAMPLING.pptx for analystical chemistry sample techniques
SAMPLING.pptx for analystical chemistry sample techniquesrodneykiptoo8
 
RNA INTERFERENCE: UNRAVELING GENETIC SILENCING
RNA INTERFERENCE: UNRAVELING GENETIC SILENCINGRNA INTERFERENCE: UNRAVELING GENETIC SILENCING
RNA INTERFERENCE: UNRAVELING GENETIC SILENCINGAADYARAJPANDEY1
 
Aerodynamics. flippatterncn5tm5ttnj6nmnynyppt
Aerodynamics. flippatterncn5tm5ttnj6nmnynypptAerodynamics. flippatterncn5tm5ttnj6nmnynyppt
Aerodynamics. flippatterncn5tm5ttnj6nmnynypptsreddyrahul
 
mixotrophy in cyanobacteria: a dual nutritional strategy
mixotrophy in cyanobacteria: a dual nutritional strategymixotrophy in cyanobacteria: a dual nutritional strategy
mixotrophy in cyanobacteria: a dual nutritional strategyMansiBishnoi1
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinossaicprecious19
 
Microbial Type Culture Collection (MTCC)
Microbial Type Culture Collection (MTCC)Microbial Type Culture Collection (MTCC)
Microbial Type Culture Collection (MTCC)abhishekdhamu51
 
THYROID-PARATHYROID medical surgical nursing
THYROID-PARATHYROID medical surgical nursingTHYROID-PARATHYROID medical surgical nursing
THYROID-PARATHYROID medical surgical nursingJocelyn Atis
 
Seminar on Halal AGriculture and Fisheries.pptx
Seminar on Halal AGriculture and Fisheries.pptxSeminar on Halal AGriculture and Fisheries.pptx
Seminar on Halal AGriculture and Fisheries.pptxRUDYLUMAPINET2
 
National Biodiversity protection initiatives and Convention on Biological Di...
National Biodiversity protection initiatives and  Convention on Biological Di...National Biodiversity protection initiatives and  Convention on Biological Di...
National Biodiversity protection initiatives and Convention on Biological Di...PABOLU TEJASREE
 
Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...Sérgio Sacani
 
electrochemical gas sensors and their uses.pptx
electrochemical gas sensors and their uses.pptxelectrochemical gas sensors and their uses.pptx
electrochemical gas sensors and their uses.pptxHusna Zaheer
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayAADYARAJPANDEY1
 

Recently uploaded (20)

FAIR & AI Ready KGs for Explainable Predictions
FAIR & AI Ready KGs for Explainable PredictionsFAIR & AI Ready KGs for Explainable Predictions
FAIR & AI Ready KGs for Explainable Predictions
 
Topography and sediments of the floor of the Bay of Bengal
Topography and sediments of the floor of the Bay of BengalTopography and sediments of the floor of the Bay of Bengal
Topography and sediments of the floor of the Bay of Bengal
 
GBSN - Microbiology (Lab 2) Compound Microscope
GBSN - Microbiology (Lab 2) Compound MicroscopeGBSN - Microbiology (Lab 2) Compound Microscope
GBSN - Microbiology (Lab 2) Compound Microscope
 
Jet reorientation in central galaxies of clusters and groups: insights from V...
Jet reorientation in central galaxies of clusters and groups: insights from V...Jet reorientation in central galaxies of clusters and groups: insights from V...
Jet reorientation in central galaxies of clusters and groups: insights from V...
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
 
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...
Exomoons & Exorings with the Habitable Worlds Observatory I: On the Detection...
 
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
 
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...
Gliese 12 b: A Temperate Earth-sized Planet at 12 pc Ideal for Atmospheric Tr...
 
SAMPLING.pptx for analystical chemistry sample techniques
SAMPLING.pptx for analystical chemistry sample techniquesSAMPLING.pptx for analystical chemistry sample techniques
SAMPLING.pptx for analystical chemistry sample techniques
 
RNA INTERFERENCE: UNRAVELING GENETIC SILENCING
RNA INTERFERENCE: UNRAVELING GENETIC SILENCINGRNA INTERFERENCE: UNRAVELING GENETIC SILENCING
RNA INTERFERENCE: UNRAVELING GENETIC SILENCING
 
Aerodynamics. flippatterncn5tm5ttnj6nmnynyppt
Aerodynamics. flippatterncn5tm5ttnj6nmnynypptAerodynamics. flippatterncn5tm5ttnj6nmnynyppt
Aerodynamics. flippatterncn5tm5ttnj6nmnynyppt
 
mixotrophy in cyanobacteria: a dual nutritional strategy
mixotrophy in cyanobacteria: a dual nutritional strategymixotrophy in cyanobacteria: a dual nutritional strategy
mixotrophy in cyanobacteria: a dual nutritional strategy
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerin
 
Microbial Type Culture Collection (MTCC)
Microbial Type Culture Collection (MTCC)Microbial Type Culture Collection (MTCC)
Microbial Type Culture Collection (MTCC)
 
THYROID-PARATHYROID medical surgical nursing
THYROID-PARATHYROID medical surgical nursingTHYROID-PARATHYROID medical surgical nursing
THYROID-PARATHYROID medical surgical nursing
 
Seminar on Halal AGriculture and Fisheries.pptx
Seminar on Halal AGriculture and Fisheries.pptxSeminar on Halal AGriculture and Fisheries.pptx
Seminar on Halal AGriculture and Fisheries.pptx
 
National Biodiversity protection initiatives and Convention on Biological Di...
National Biodiversity protection initiatives and  Convention on Biological Di...National Biodiversity protection initiatives and  Convention on Biological Di...
National Biodiversity protection initiatives and Convention on Biological Di...
 
Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...
 
electrochemical gas sensors and their uses.pptx
electrochemical gas sensors and their uses.pptxelectrochemical gas sensors and their uses.pptx
electrochemical gas sensors and their uses.pptx
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate Pathway
 

Cockatrice: A Hardware Design Environment with Elixir

  • 1. Cockatrice Hardware Design Environment with Elixir Hideki Takase (Kyoto University / JST PRESTO) takase@i.kyoto-u.ac.jp
  • 2. Who am I? @takasehideki − Assistant Professor at Kyoto University − Researcher at PRESTO program, Japan Science of Technology Agency My Research Topics/Interests − System level design for embedded real-time systems − IoT computing architecture SW/HW codesign for processors and FPGA! − and,,, Elixir for IoT!!! 2
  • 3. Thank to,,, with Wabi-Sabi • My students in lab. − Kentaro Matsui − Yasuhiro Nitta • My research partners at fukuoka.ex − @zacky1972 − @hisawayex − @piacere_ex − @enpedasi • My friends at hls-friends − Tech comm. for self-made high-level synthesis tools 3
  • 4. Introduction of HW Design on FPGA • What is FPGA? • Advantages, applications, and design flow • High level synthesis and high level design
  • 5. “do what needed immediately” • application specific architecture • dedicated data width and customized units as needed Computational Resources ”do whatever is instructed" • universal data path to cover all application cases • fixed data width and arithmetic units processor with software ASIC as hardware 5
  • 6. Computational Resources 6 design flexibility development cost power efficiency performance FPGA processor with software ASIC as hardware
  • 7. What is FPGA? • Field Programmable Gate Array − LSIs whose contents can be changed any time − We can design a unique digital circuit (HW) on it − Two major vendors Xilinx・Altera (powered by Intel) 7 IOB SB CB LB IOB IOB SB IOB LB SB CB CB SB CB SB SB CB CBLB IOBIOB LB SB SB SB IOB IOB CB CB CB CB CB CB I/O block connection blockLB logic block IOBSB switching block CB LUT IN OUT 0000 1 0001 0 0010 0 … … 1110 1 1111 0 D-FF D Q
  • 8. Common Design Flow 8 RTL description RTL simulation logic synthesis technology mapping placement and routing bitstream generation • Design by Hardware Description Language (HDL) always@(posedge clk) begin if (!rst) out <= 0; else begin case (in) 4'b0001 : tmp <= 1; 4'b0010 : tmp <= 5; 4'b1100 : tmp <= 7; default : tmp <= 0; endcase end end assign out = ~{reg[7:4], tmp[3:0]}; post-layout simulation
  • 9. Common Design Flow 9 RTL description RTL simulation logic synthesis technology mapping placement and routing bitstream generation post-layout simulation LUT LUT EDA tools support almost everything!
  • 10. How to Use of FPGA 10 processor 通信バス FPGA Offloading heavy processing HW HW interface IF circuit performance improvement and low power consumption can be achieved SW SW communication between SW/HW SW SW IF driver
  • 11. Applications of FPGA • Used as LSIs for rapid design of ASICs − Functionality of ASICs can be verified before production − Development of SW can be started before HW manufacturing is completed • Used as LSIs for final products − There are already so many practical consumer products − It is possible to have a rewriting function after shipping − Recent practical applications  Financial market transaction, robotics and automotive  Data center / cloud server  Machine Learning!! 11
  • 12. Machine Learning on FPGA • Accelerator of CNN/DNN − Neuron synapse values flow through the pipeline 12 Ref: K. Ovtcharov, et al. Toward Accelerating Deep Learning at Scale Using Specialized Hardware in the Datacenter, HotChips27, 2015. C. Zhang, et al. Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks, FPGA 2014.
  • 13. Advantage of FPGA 13 FPGA Memory Func Func Func FuncFunc Func FuncFunc FuncFunc • Various systems can be designed onto one LSI • High performance / low power consumption • Parallel processing can be realized at task/data level • Data streaming processing can be realized
  • 14. Current Technology Trends • Increase in circuit scale and amount of LB − High performance systems can be realized − Further increase will continue by new technology  multi-die, 3D stacking,,, • Tightly coupling with processors − General-purpose: Connection via PCIe to processors − Embedded: Integration with embedded processors 14 high-quality system design in a short time has become difficult,,,
  • 15. High Level Synthesis (HLS) • Solution to improve design productivity! − Technology for synthesizing HDL from behavioral descriptions with a programming language C/C++ or its extension is commonly used − Abstraction level of design becomes higher 15 int func (int x) { int a[N]; int i; for(i=0;i<N;i++){ a[i] = ・・・; : : } : } x func i a
  • 16. Commercial HLS Tools • Xilinx Vivado HLS − Synthesize from C/C++ − #pragma is offered to indicate the optimization 16 • Intel SDK for OpenCL − Synthesize from OpenCL parallelized code − Can be executed with same description as the host PC Ref: Xilinx Inc. White paper UG902 D. Neto, Optimizing OpenCL for Altera FPGAs, Int’l Workshop on Open CL, 2014. It is essential to understand #pragma and libraries deeply for deriving optimized hardware
  • 17. not only C/C++!! • Chisel: Scala based − Object Oriented / Functional styled DSL • CλaSH: Haskell based − Synthesize HDL from description of functional language • Karuta: original scripting language • Synthesijer: Java based − HLS from the subset of Java specification • PyCoRAM, Polyphony: Python based  Veriloggen: Python library for HDL design • Mulvery: Ruby based − Synthesis from Reactive Programming • Octopus🐙:OCaml based 17 developed by Japanese hls-friends!!
  • 18. OK, What We Want is,,, 18 We want to design HW by Elixir!! We want to operate HW from our Elixir code!!
  • 19. Concept of Cockatrice • Elixir Zen Style • Why Elixir would be suitable for HW design? • HW synthesis flow from Elixir code • SW/HW communication interface
  • 20. What is Cockatrice? • Summoned beast that appears in FF4 (^^; − The effect is to make all enemies to stones • Hardware design environment with Elixir! • Features − It synthesizes Elixir Zen Styled code to the description of HW circuits − It provides communication interface between Elixir code and HW circuits 20 Your Elixir code can be accelerated, and low-powered!! NOTE: Current logo of cockatrice is from Wikipedia
  • 21. Elixir Zen Style • Enum: transform data directly • Flow: realize parallel processing intuitively (by MapReduce) • |>: pipeline operator express data flow intuitively • Zen(禅) means the essential beauty − The essential of programming is data transformation − Enum Flow |> describe only data transformation 21 input_list |> Flow.from_enumerable() |> Flow.map(& foo(&1)) |> Flow.map(fn a->-a end) |> Enum.to_list |> Enum.sort
  • 22. Zen’s process model 22 input_list |> Flow.from_enumerable(stages: 4) |> Flow.map(& foo(&1)) |> Flow.map(fn a->-a end) |> Enum.to_list |> Enum.sort from_ enumerable input_list foo foo foo foo sortto_list arbitrator -a -a -a -a It’s similar to efficient HW architecture!!
  • 23. Zen is suitable for HW design! 23 Cockatrice input_list |> Flow.from_enumerable(stages: 4) |> Flow.map(& foo(&1)) |> Flow.map(fn a->-a end) |> Enum.to_list |> Enum.sort from_ enumerable input_list foo foo foo foo sortto_list arbitrator -a -a -a -a We summon Cockatrice to lithify Elixir Zen Styled Code as parallel HW stones!!
  • 24. Effect of Cockatrice 24 Input List from_ enume rable to_list sort foo -a foo -a foo -a foo -a arbitrator foo -a foo -a foo -a foo -a foo -a foo foo -a foo -a foo -a -a foo -a foo -afoo -a foo -a
  • 25. HW Description by Elixir • defcockatrice part will be treat as HW description − It is completely equivalent to native Elixir code You do not need to consider HW design It can be verified at functional level • HW module can be called as same as SW function − We assume SW/HW cooperative systems 25
  • 26. Synthesis Flow 26 Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF)
  • 27. Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF) Synthesis Flow 27 Metaprogramming method is employed to derive AST of Zen styled design description by Quote function
  • 28. Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF) Synthesis Flow 28 we provide templates of HDL code that are equivalent to Enum functions as DSL files HDL code is synthesized by applying pattern matching with AST and DSL
  • 29. Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF) Synthesis Flow 29 each modules is connected as data flow from AST representation of |> and Flow data flow and parallel processing HW circuit is finally synthesized!!
  • 30. Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF) Synthesis Flow 30 communication interface and its driver are generated as NIF function
  • 31. Code analysis & AST optimization design desc. Elixir templates for IP DSL info. of desc. AST Synthesis of HW modules from Elixir function HW IP modules HDL data flow HW circuit HDL HW circuits bitstream logic synthesis SW app Elixir+C(NIF) Compilation of SW Generation of device driver of I/F circuit Synthesis of data flow I/F driver C(NIF) SW binary and HW bit files are compiled by respective tools Synthesis Flow 31 SW binary and HW bit files are compiled by respective tools
  • 32. SW/HW Comm. Interface • Activation/Operation to HW from Elixir code • Data communication between SW and HW − AXI4 bus on Zynq is used • We implement device driver as C/NIF module − ikwzm/udmabuf is used for DMA transfer − Elixir/Erlang list should be converted to C array 32 FPGA processor DMA buffer HW circuits Elixir app Erlang VM device driver (NIF module) interface circuit
  • 34. Demonstration Time?? • Board: Avnet Ultra96-V2 − Zynq UltraScale+ ZU3EG − 1.5GHz quad-core Arm Cortex-A53 − 16nm FinFET+ programmable logic $249.00 • EDA tool: Xilinx Vivado 2019.1 • Software platform − Linux Kernel v4.19.0 with debian10-rootfs-vanilla from ikwzm/ZynqMP-FPGA-Linux build-v2019.1 with udmabuf v1.4.2 as kernel module − Elixir 1.9.1-otp-22 / Erlang 22.0.7 34
  • 36. Discussion • Currently, we just implement prototypes − We will publish them as Hex pkgs very soon,,, − Currently supported features are limited IOW, we only synthesize Zen styled code Are another Elixir/Erlang process models suitable for efficient HW architecture? − Quantitative evaluation of our proposal will be also important (to verify academic contribution^^; 36
  • 37. Discussion • Applicable range of Cockatrice? − Not only embedded, but also HPC domain!? Bigger data for Cockatrice would be suitable since there is some overhead on SW/HW comm. − AI/ML would be a killer application Big data stream processing for IoT Cloud processing that allows users to change functions flexibly − We are planning to support large-scale FPGA boards with comm. interface for PCIe bus 37
  • 38. BTW, I love Nerves!! • Experiences at Lonestar2019 was great for me! • I made a presentation to promote the innovation of Nerves to Japan at Erlang & Elixir Fest 2019!! 38 Nervesが開拓する 『ElixirでIoT』 の新世界 ⾼瀬 英希 (京都⼤学/JSTさきがけ) takase@i.kyoto-u.ac.jp 18 ライブデモのお品書き 1. Nervesプロジェクトの準備とビルド 2. microSDに書き込んでブート・IEx実⾏ 3. ソース編集してlocal ssh書き込み 4. NervesHubから書き込み 5. Scenic連携&GPIOデバイスの制御 Raspberry Pi Zero WH Adafruit 128x64 OLED Bonnet https://github.com/takasehideki/eefest19demo NervesKey 『ElixirでIoT』の新世界︕ 25 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化︕ 情報科学の総合格闘技︕ 新たな社会的価値を創出!! みんなで⼀緒に IoTを創ろう︕ 14 NervesHub •サーバ経由のOTA (Over The Air) で Nervesアプリをリモートデプロイ︕ - X.509署名証明書とNervesKey回路で セキュアな接続経路を実現 - 更新先とファームを任意指定可
  • 39. Nerves Training in Japan!! Thank you so much, Justin & Frank!! 39
  • 40. Future Direction 40 What will happen when Nerves meets Cockatrice? Please help us, to evolve the new era of "IoT development with Elixir"
  • 41. Thank you for your attention!! 41

Editor's Notes

  1. I’m Hideki Takase from Kyoto, Japan. This is the second time for me to attend ElixirConf. First time was Lonestar in this year. So, nice to see you or long time no see! It’s my big pleasure to present our work on ElixirConf. Thank you so much to accept my talk proposal. 粗粒度並列化よりパイプライン化とかのほうが効くかも それを指定できると良いかも どこかで高位合成しないといけないのだから,HLS Cを吐くアプローチを取ったほうが手っ取り早いのでは? Elixir/ErlangからCに変換するようなコンパイラの研究ありそう データを流すから通信が重くなる 共有メモリへのアクセスとかで改善したほうが良さそう 最適化目標を指定できるようにしたほうが良いのか?
  2. I am a researcher in University. My major research topic is system level design methodology for embedded real-time systems, especially for the codesign about processors and FPGA. And also, I surely have a great interest about Elixir for IoT, especially for Nerves Project.
  3. First of all, let me introduce my research collaborator since Wabi-Sabi is important for Japanese. I would like to say a big thank to Kentaro and Yasuhiro. They are my students in laboratory, and have made a great effort on this project. I appreciate the members of fukuoka.ex, It is a Elixir community in Fukuoka, Japan. They always give a technical support for me. As you may know, Zacky and Hisaway will present their work for a novel technology about GPU with Elixir. I also appreciate the members of hls-friends. It is a Japanese community for self-made high level synthesis tools by various programming languages. These members give useful comments and motivation to my project.
  4. My presentation consists of 3 parts. How many people do you know about FPGA? First part is just a lecture in the University. I will introduce about hardware design and FPGA. OK, let’s go to the 1st part.
  5. First topic is traditional computing resources. There is two resources, processors with software, and hardware such as ASIC. Processor is the resource which can do whatever it is instructed by software. To cover all requirements from software applications, processor has universal data path, fixed data width and arithmetic units. On contrary, hardware can do immediately as what you needed. Since hardware is designed to specific requirement, internal architecture is fixed and it has dedicated data width and custom operation units as needed.
  6. There is pros and cons between SW and HW. For HW, performance and power efficiency are much better compared with processor because HW can be operated as the demand. In addition, high-performance parallel processing can be realized easily if we can design HW carefully. On the other hands, one of the advantages of processor is design flexibility. We can realize various application respective to your programming. So, FPGA takes good advantage from both resources. This means that FPGA is better performance and power efficiency than processor with better design flexibility.
  7. I introduce what is FPGA? FPGA stands for field programmable gate array, that is LSI whose contents can be changed any time as you want. So, we can realize a unique digital circuits on FPGA. There is 2 major vendors, Xilinx and Intel Altera. As shown in this figure, internal architecture of FPGA is expressed as the systolic array of logic block, connection, switching, and I/O blocks. The logic block consists of lookup tables and data flip-flop. So, we can change the HW Behavior by deciding the values of LUTs and their connections.
  8. This is the common design flow for HW design on FPGA. Hardware description language (HDL) is used to design the HW. We should design the behavior of circuits at register transfer level, such as always block and blocking and non-blocking statements. But it is difficult to design by HDL since its abstraction level is very low. When we have finished the design of HW, we will check the HW design by register transfer level simulation like this. We should verify the design at cycle level behavior. These are very busy work.
  9. And then, we should apply logic synthesis, technology mapping, place and routing, However, don’t warry because EDA tools can support almost these steps. Finally, bit-stream, it is a image file for burning to FPGA chip, can be derived by EDA tools.
  10. I will show general usage of FPGA. FPGA is typically used with processor as the accelerator. We can offload the part of heavy processing on processor to the FPGA. So, we expect the performance improvement and power savings by utilizing FPGA. To communicate between processors and FPGA efficiently, we need the suitable communication interface.
  11. 13分になってたら飛ばす As the application of FPGAs, it was formerly used for rapid design of ASICs. By using FPGA like this, functionality can be verified before the production of ASIC. And more, software developer can start their work before hardware manufacturing is finished. Recently, FPGA is used for the final products. It is possible to have a rewriting function after shipping. Recently practical applications of FPGA are financial market transaction, robotics, automotive, data and cloud server, and machine learning!
  12. I believe you like machine learning and AI. Structure of neural network is often expressed as the array of numbers. Please remember the structure of FPGA. Its systolic architecture is suitable for the structure of neural network. Neuron synapse values flow through the pipeline as the circuits.
  13. プロセッサ処理より高性能かつ省電力を実現する ASICよりも製造コストを抑えられる ノイマン・ボトルネックの解消に!
  14. Higher quality HW/SW cooperative system can be realized
  15. 逐次,分岐,繰り返しなどの制御はステートマシンとして,変数はレジスタ,配列はメモリとして生成される
  16. sequential
  17. オープンソース! LegUpはトロント大,ChiselはUCB
  18. 18分でいきたい
  19. The effect of cockatrice is to make all enemies to stones. So, I decide its codename that makes your Elixir code to HW.
  20. プロセスごとのGCを含む堅牢なメモリ管理 障害時にはプロセス単位で高速に再起動
  21. flow genstage
  22. Metaprogramming
  23. udmabuf is a Linux device driver that allocates contiguous memory blocks in the kernel space as DMA buffers and makes them available from the user space. It is intended that these memory blocks are used as DMA buffers when a user application implements device driver in user space using UIO (User space I/O).
  24. Zynq-7000 devices are equipped with dual-core ARM Cortex-A9 processors integrated with 28nm Artix-7 or Kintex®-7 based programmable logic for excellent performance-per-watt and maximum design flexibility. With up to 6.6M logic cells and offered with transceivers ranging from 6.25Gb/s to 12.5Gb/s, Zynq-7000 devices enable highly differentiated designs for a wide range of embedded applications including multi-camera drivers assistance systems and 4K2K Ultra-HDTV. EG devices feature a quad-core ARM® Cortex-A53 platform running up to 1.5GHz. Combined with dual-core Cortex-R5 real-time processors, a Mali-400 MP2 graphics processing unit, and 16nm FinFET+ programmable logic, EG devices have the specialized processing elements needed to excel in next-generation wired and 5G wireless infrastructure, cloud computing, and Aerospace and Defense applications.
  25. 32分? picocom /dev source config.txt sudo iex -S mix
  26. I’m Hideki Takase from Kyoto, Japan. This is the second time for me to attend ElixirConf. First time was Lonestar in this year. So, nice to see you or long time no see! It’s my great pleasure to present our work. Thank you so much to accept my talk proposal. 粗粒度並列化よりパイプライン化とかのほうが効くかも それを指定できると良いかも どこかで高位合成しないといけないのだから,HLS Cを吐くアプローチを取ったほうが手っ取り早いのでは? Elixir/ErlangからCに変換するようなコンパイラの研究ありそう データを流すから通信が重くなる 共有メモリへのアクセスとかで改善したほうが良さそう 最適化目標を指定できるようにしたほうが良いのか?
  27. Task, GenServer, and so on
  28. Bigger data would be suitable
  29. The new era of "IoT development with Elixir" pioneered by Nerves technology
  30. by providing the training materials from Frank and Justin. He agreed to hold it in Japan. Thank you so much, Justin & Frank,
  31. This is the last slide. I believe if Nerves can control the FPGA directly.