SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
cReComp : Automated Design Tool
for ROS-Compliant FPGA Component
Kazushi Yamashina, Hitomi Kimura,
Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota
Graduate School of Engineering, Utsunomiya University in Japan
September, 22 MCSoC 2016 @Lyon, France 1
Outline
1. Introduction
• ROS & ROS-compliant FPGA component
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 2
Outline
1. Introduction
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 3
Background 1/2
• Requirements for autonomous mobile robots
• Wireless communication and Battery operation
• Robots should operate at low power and show high performance!
• FPGA* contributes to speeding up processing in various fields
• e.g.) image processing, networking packet routing
• Power efficiency of FPGA is much better than CPU, micro controller [1]
• We employed FPGA to realize a robot which has high
performance and needs low power
September, 22 MCSoC 2016 @Lyon, France 4
[1] Li, F., Lin, Y., He, L., and Cong, J., “Low-power FPGA using pre-defined dual-Vdd/dual-Vt fabrics,” In Proceedings of the 2004 ACM/SIGDA 12th
international symposium on Field programmable gate arrays (pp. 42-50). ACM, 2004.
* FPGA : Field Programmable Gate Array
Background 2/2
• Development costs of FPGA are very high!
• It is not easy and hard for anyone to implement applications on FPGA
• Re-usability of FPGA module is very low
• Component oriented development on FPGA
• That means, FPGA application is implemented a component
September, 22 MCSoC 2016 @Lyon, France 5
FPGA
component
Re-usable
ROS (Robot Operating System)
• ROS is a software platform for component-oriented
development of robotic application software
• Build tools +application tool + communication library
• Communication model : Publish/Subscribe messaging
September, 22 MCSoC 2016 @Lyon, France 6
Any component can be added to or removed from robot system
easily, since components are connected loosely
Component
Publish Subscribe
Subscriber
A publisher can send messages
to any topic, and the messages
are queued in the topic.
Publisher
A publisher can send messages
to any topic, and the messages
are queued in the topic.
Topic
Service invocationMassage (data)
Component
ROS-compliant FPGA component
September, 22 MCSoC 2016 @Lyon, France 7
Circuit
(User logic)
Software (CPU)
Software interface Hardware interface
Hardware (FPGA)
ROS
Application
FIFO
FIFO
ROS
component
ROS
component
Topic
Topic
Component
oriented interface
• ROS-compliant FPGA component is…
a technology to realize an application level interface for FPGA
• User logic : target application on FPGA
• Target platform : Programmable SoC (CPU+ FPGA)
FPGA
application
(User logic)
Software (CPU)
Software interface Hardware interface
Hardware (FPGA)
ROS
Application
FIFO
FIFO
ROS
component
ROS
component
Topic
Topic
Component
oriented interface
The biggest problem in conventional development for componentization
• ROS-compliant FPGA component needs an interface for
communication between HW and SW
• Problem : High development cost!!
September, 22 MCSoC 2016 @Lyon, France 8
System-wide
verification
Design of interface
between HW/SW
(Hardware : HDL)
Implementation
of hardware
(HDL)
Design of interface
between HW/SW
(Software : C++)
Simulation
Debug
Verification
Simulation
Debug
Verification
Debug
Verification
System-wide
verification
4 phases in the development of componentization
Development of
user logic
Implementation of an interface between
hardware and software
Implementation as
a ROS component
Adding ROS functions
to the interface
(C++)
Implementation
of hardware
(HDL)
Simulation
Debug
Verification
Development of
user logic
Design of interface
between HW/SW
(Hardware : HDL)
Design of interface
between HW/SW
(Software : C++)
Simulation
Debug
Verification
Implementation of an interface between
hardware and software
Debug
Verification
Implementation as
a ROS component
Adding ROS functions
to the interface
(C++)
System-wide
verification
System-wide
verification
Objective
• For improvement of re-usability and productivity
of FPGA application
• We propose cReComp which improves productivity of ROS-
compliant FPGA component
September, 22 MCSoC 2016 @Lyon, France 9
Open source software
User
(Robotic developer
or
FPGA developer)
Re-usable!
&
Happy!
ROS-compliant
FPGA component
Developer
By using cReComp,
I can develop easily!
Outline
1. Introduction
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 10
cReComp overview
• cReComp : creator for Reconfigurable Component
• cReComp generates a component-oriented interface
• The interface enables communication between HW and SW
• The tool gives an abstract of user logic (hardware) in application level
• The interface model is described by 2 formats
• Python format
• scrp format
• scrp : specification for cReComp. This is my original format for cReComp.
September, 22 MCSoC 2016 @Lyon, France 11
User logic supported by cReComp
• User logic description types are
different depending on usage of FPGA
• For interface of sensor, motor and so on → RTL
• RTL : Register Transfer Level
• For accelerator of processing such as processing → HLS
• HLS : High Level Synthesis
• These 2 types of user logic are
able to be input to cReComp!
• Any module is OK!
September, 22 MCSoC 2016 @Lyon, France 12
Interface generation model on cReComp
September, 22 MCSoC 2016 @Lyon, France 13
FIFO CtrlROS APP
Verilog-HDL
FIFO
FIFO
Configuration
file
cReComp
User logic
Output
ROS-compliant FPGA component
C++
Communication
HardwareSoftware
Described by User
FILE
Input
• Input
• User logic (Verilog-HDL)
• Configuration file
• scrp (specification for cReComp )
• Python
• Output
• Component-oriented interface
• Circuit for communication control (Verilog-HDL)
• ROS Application (C++)
• ROS message file
• Configuration contents
• Bit width of FIFO
• Number of receiving data from input FIFO
(HW→SW)
• Number of sending data from input FIFO
(SW→HW)
• Condition to receive/send
• Assignment of user logic
Therefore…
September, 22 MCSoC 2016 @Lyon, France 14
Configuration
file
scrp or python
cReComp
Describe Input Output
ROS-compliant
FPGA component
User logic
Developer need not design the interface for communication between
HW and SW.
Only two files
Outline
1. Introduction
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 15
Case study: control circuit of ultra sonic distance sensor
(user logic described by RTL)
September, 22 MCSoC 2016 @Lyon, France 16
Ultra sonic distance sensor
(Parallax Inc. PING)
Input : req
sonic_sensor.v
(RTL)
Output : out_data
01 11532 Sensor values
If “req” is asserted, sensor values are output on “out_data”
32
count clocks
until pulse returns
User logic
1. Template generation
September, 22 MCSoC 2016 @Lyon, France 17
Template
generation
crecomp -s sensor_ctl.scrp -u sonic_sensor.v
Description
for
configuration
Componentization [3] Shinaya Takamaeda, “A High-level Hardware
Design Environment in Python ,” Technical report of
IEICE, RECONF2015-36, pp.21-26, 2015.
• The description is generated
automatically by cReComp.
• User logic is analyzed by veriloggen [3]
• You may specify user logic before
cReComp generates a template file.
• Input file should be the top module of
your user logic.
2. Description for configuration : 1 / 2
September, 22 MCSoC 2016 @Lyon, France 18
Template
generation
Description
for
configuration
Componentization
Communication setting
FIFO bit width : 32 bits
Receive data (SW→HW) : one time
Send data (HW→SW) : one time
“req” is connected to input FIFO
“out_data” is connected to output FIFO
2. Description for configuration : 2 / 2
September, 22 MCSoC 2016 @Lyon, France 19
Template
generation
Description
for
configuration
Componentization
component_name "sensor_ctl"
{
in_out_signals
{
input 1 clk,
input 1 rst,
inout 1 sig
}
option_signals
{
wire 1 finish,
wire 1 busy,
reg 31 dummy,
reg 1 req,
wire 32 data_out
}
communication xillybus
{
fifo_width 32,
rcv_cycle1,
snd_cycle 1,
condition "busy == 0 && finish",
rcv = req,
rcv = dummy,
snd = data_out
}
userlogic_path "sonic_sensor.v" instance_name "uut"
{
input 1 clk = clk,
input 1 rst = rst,
input 1 req = req,
output 1 busy = busy,
inout 1 sig = sig,
output 1 finish = finish,
output 32 out_data = data_out
}
generate_ros_package
}
Very few code!
3. Componentization
September, 22 MCSoC 2016 @Lyon, France 20
Template
generation crecomp -b sensor.ctl.scrp
sensor_ctl/
+--hardware/
+--sensor_ctl.v
+--sonic_sensor.v
+--software/
+--lib_cpp.h
+--Makefile
+--sensor_ctl.cpp
+----ros_package/
Configure
Description
Componentization
Execute a command to generate a component
such directory is generated
sensor_ctl/
+--inculude/
+--msg/
+--sensor_ctl.msg
+--src/
+--sensor_ctl.cpp
+--CMakeLists.txt
+--package.xml
The generated component in the design case
September, 22 MCSoC 2016 @Lyon, France 21
FIFO
32-bits
out_data
req
32
ROS
Application
(C++)
Input
Output
Sensorreq
32
finish
out_data
busy
Interface
Circuit
(Verilog-
HDL)
sig
sig
sonic_sensor
(user logic)
ROS
component
Topic
Topic
ROS
component
msg
msg
cReComp generates a ROS message file automatically
In ROS, you can define data structure in *.msg file
User logic on FPGA can be access from other ROS component
by publish/subscribe!
ROS-compliant FPGA component
cReComp translates
user logic signal
into ROS message
Outline
1. Introduction
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 22
Evaluation : development productivity
• We conducted an experiment in February, 2016
• Theme : Effect on the productivity by using scrp description
• Subjects’ experience in HW/SW co-design
• FPGA : from nothing to 3 years
• C++ : from 1 to 6 years
• Linux : from 1 to 3 years
• User logic : control circuit of sonic distance sensor
• The user logic is the same as design case
September, 22 MCSoC 2016 @Lyon, France 23
Details and results of the experiment
• Evaluation methods
• The difficulty rated in five stages5 : Very easy ~ 1: Very difficult
• The average of elapsed time
• The rating of b) was 3.7 and b) took 17 minutes.
• maximum : 5, minimum : 2
September, 22 MCSoC 2016 @Lyon, France 24
Evaluation environment
• FPGA board : Zedboard Avnet
• Programmable SoC : Zynq-7020 Xilinx
• OS:xillinux-1.3(Ubuntu12.04)
• ROS:groovy
• Sensor : PING Ultrasonic Distance Sensor Parallax
a) Installation of cReComp
b) Description of scrp file
c) Componentization
Experiment flow
The experiment shows…
• All the subjects were able to finish their componentization in less than one hour.
September, 22 MCSoC 2016 @Lyon, France 25
Development
Without cReComp
(me : Kazushi Yamashia)
With cReComp
(average of the subjects)
Described Lines
About 300
(hardware + software)
27
(scrp)
Described Characters
About 6000
(hardware + software)
385
(scrp)
Time 1 hour 46 minutes 17 minutes
Comparison on implementation of component-oriented interface
cReComp contributes to improve the productivity of
ROS-compliant FPGA component
version of cReComp was not the latest when experiment was conducted. (The latest is 1.4.4)
My experience; FPGA : 3years, C++ : 6 years, Linux : from 3 years
Outline
1. Introduction
2. Proposal of cReComp
3. Development using cReComp
4. Evaluation : Development productivity
5. Conclusion
September, 22 MCSoC 2016 @Lyon, France 26
Conclusion
We proposed cReComp for easy integration of FPGA into robot
system.
• The experiment was conducted to evaluate development
productivity
• All the subjects were able to finish componentization of experiment less
than one hour.
• cReComp contributes to improve the productivity of ROS-compliant FPGA
component
Future work
• We are going to conduct further experiments in October
• Using the latest version of cReComp
September, 22 MCSoC 2016 @Lyon, France 27
Thank you for listening!
• Acknowledgment
• This research and development work was supported by the
MIC/SCOPE#152103014.
• Contact
• Email : kazushi@virgo.is.utsunomiya-u.ac.jp
• This slide is published at slideshare after presentation
my account : kazuyamashi
September, 22 MCSoC 2016 @Lyon, France 28
cReComp is released as open source software!!
git clone https://github.com/kazuyamashi/cReComp.git
pip install crecomp
cReComp : Automated Design Tool
for ROS-Compliant FPGA Component
Kazushi Yamashina, Hitomi Kimura,
Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota
Graduate School of Engineering, Utsunomiya University in Japan
September, 22 MCSoC 2016 @Lyon, France 29

Más contenido relacionado

La actualidad más candente

An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Juan Fumero
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14
Juan Fumero
 
Efficient JIT to 32-bit Arches
Efficient JIT to 32-bit ArchesEfficient JIT to 32-bit Arches
Efficient JIT to 32-bit Arches
Netronome
 

La actualidad más candente (20)

A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
A High Performance Heterogeneous FPGA-based Accelerator with PyCoRAM (Runner ...
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
 
An Open Discussion of RISC-V BitManip, trends, and comparisons _ Claire
 An Open Discussion of RISC-V BitManip, trends, and comparisons _ Claire An Open Discussion of RISC-V BitManip, trends, and comparisons _ Claire
An Open Discussion of RISC-V BitManip, trends, and comparisons _ Claire
 
Cockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with ElixirCockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with Elixir
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
Rtabmap investigation report-lihang
Rtabmap investigation report-lihangRtabmap investigation report-lihang
Rtabmap investigation report-lihang
 
The Parrot VM
The Parrot VMThe Parrot VM
The Parrot VM
 
uRock @ Jserv Course Final
uRock @ Jserv Course Final uRock @ Jserv Course Final
uRock @ Jserv Course Final
 
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
 
Erlang os
Erlang osErlang os
Erlang os
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14
 
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment UpgradesThe FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
 
OpenCon2014 - Sumatra as an Open Science tool
OpenCon2014 - Sumatra as an Open Science toolOpenCon2014 - Sumatra as an Open Science tool
OpenCon2014 - Sumatra as an Open Science tool
 
LAS16-106: GNU Toolchain Development Lifecycle
LAS16-106: GNU Toolchain Development LifecycleLAS16-106: GNU Toolchain Development Lifecycle
LAS16-106: GNU Toolchain Development Lifecycle
 
Efficient JIT to 32-bit Arches
Efficient JIT to 32-bit ArchesEfficient JIT to 32-bit Arches
Efficient JIT to 32-bit Arches
 
Track Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 TriggerTrack Finding in LHCb's 2020 Trigger
Track Finding in LHCb's 2020 Trigger
 
RISC-V assembly
RISC-V assemblyRISC-V assembly
RISC-V assembly
 
SuperAGILE Standard Orbital data Analysis pipeline
SuperAGILE Standard Orbital  data Analysis pipelineSuperAGILE Standard Orbital  data Analysis pipeline
SuperAGILE Standard Orbital data Analysis pipeline
 

Similar a cReComp : Automated Design Tool for ROS-Compliant FPGA Component

Similar a cReComp : Automated Design Tool for ROS-Compliant FPGA Component (20)

pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
 
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
 
Python Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkPython Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on Flink
 
ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!ebpf and IO Visor: The What, how, and what next!
ebpf and IO Visor: The What, how, and what next!
 
P4_tutorial.pdf
P4_tutorial.pdfP4_tutorial.pdf
P4_tutorial.pdf
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?Summit 16: How to Compose a New OPNFV Solution Stack?
Summit 16: How to Compose a New OPNFV Solution Stack?
 
AMIT SRIVASTAVA
AMIT SRIVASTAVAAMIT SRIVASTAVA
AMIT SRIVASTAVA
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with Systemc
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
Multipilot pres-ufficiale def
Multipilot pres-ufficiale defMultipilot pres-ufficiale def
Multipilot pres-ufficiale def
 
High speed customized serial protocol for IP integration on FPGA based SOC ap...
High speed customized serial protocol for IP integration on FPGA based SOC ap...High speed customized serial protocol for IP integration on FPGA based SOC ap...
High speed customized serial protocol for IP integration on FPGA based SOC ap...
 
Labview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRLLabview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRL
 
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGSA STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
Bindu_Resume
Bindu_ResumeBindu_Resume
Bindu_Resume
 

Último

AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 

Último (20)

UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 

cReComp : Automated Design Tool for ROS-Compliant FPGA Component

  • 1. cReComp : Automated Design Tool for ROS-Compliant FPGA Component Kazushi Yamashina, Hitomi Kimura, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota Graduate School of Engineering, Utsunomiya University in Japan September, 22 MCSoC 2016 @Lyon, France 1
  • 2. Outline 1. Introduction • ROS & ROS-compliant FPGA component 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 2
  • 3. Outline 1. Introduction 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 3
  • 4. Background 1/2 • Requirements for autonomous mobile robots • Wireless communication and Battery operation • Robots should operate at low power and show high performance! • FPGA* contributes to speeding up processing in various fields • e.g.) image processing, networking packet routing • Power efficiency of FPGA is much better than CPU, micro controller [1] • We employed FPGA to realize a robot which has high performance and needs low power September, 22 MCSoC 2016 @Lyon, France 4 [1] Li, F., Lin, Y., He, L., and Cong, J., “Low-power FPGA using pre-defined dual-Vdd/dual-Vt fabrics,” In Proceedings of the 2004 ACM/SIGDA 12th international symposium on Field programmable gate arrays (pp. 42-50). ACM, 2004. * FPGA : Field Programmable Gate Array
  • 5. Background 2/2 • Development costs of FPGA are very high! • It is not easy and hard for anyone to implement applications on FPGA • Re-usability of FPGA module is very low • Component oriented development on FPGA • That means, FPGA application is implemented a component September, 22 MCSoC 2016 @Lyon, France 5 FPGA component Re-usable
  • 6. ROS (Robot Operating System) • ROS is a software platform for component-oriented development of robotic application software • Build tools +application tool + communication library • Communication model : Publish/Subscribe messaging September, 22 MCSoC 2016 @Lyon, France 6 Any component can be added to or removed from robot system easily, since components are connected loosely Component Publish Subscribe Subscriber A publisher can send messages to any topic, and the messages are queued in the topic. Publisher A publisher can send messages to any topic, and the messages are queued in the topic. Topic Service invocationMassage (data) Component
  • 7. ROS-compliant FPGA component September, 22 MCSoC 2016 @Lyon, France 7 Circuit (User logic) Software (CPU) Software interface Hardware interface Hardware (FPGA) ROS Application FIFO FIFO ROS component ROS component Topic Topic Component oriented interface • ROS-compliant FPGA component is… a technology to realize an application level interface for FPGA • User logic : target application on FPGA • Target platform : Programmable SoC (CPU+ FPGA) FPGA application (User logic) Software (CPU) Software interface Hardware interface Hardware (FPGA) ROS Application FIFO FIFO ROS component ROS component Topic Topic Component oriented interface
  • 8. The biggest problem in conventional development for componentization • ROS-compliant FPGA component needs an interface for communication between HW and SW • Problem : High development cost!! September, 22 MCSoC 2016 @Lyon, France 8 System-wide verification Design of interface between HW/SW (Hardware : HDL) Implementation of hardware (HDL) Design of interface between HW/SW (Software : C++) Simulation Debug Verification Simulation Debug Verification Debug Verification System-wide verification 4 phases in the development of componentization Development of user logic Implementation of an interface between hardware and software Implementation as a ROS component Adding ROS functions to the interface (C++) Implementation of hardware (HDL) Simulation Debug Verification Development of user logic Design of interface between HW/SW (Hardware : HDL) Design of interface between HW/SW (Software : C++) Simulation Debug Verification Implementation of an interface between hardware and software Debug Verification Implementation as a ROS component Adding ROS functions to the interface (C++) System-wide verification System-wide verification
  • 9. Objective • For improvement of re-usability and productivity of FPGA application • We propose cReComp which improves productivity of ROS- compliant FPGA component September, 22 MCSoC 2016 @Lyon, France 9 Open source software User (Robotic developer or FPGA developer) Re-usable! & Happy! ROS-compliant FPGA component Developer By using cReComp, I can develop easily!
  • 10. Outline 1. Introduction 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 10
  • 11. cReComp overview • cReComp : creator for Reconfigurable Component • cReComp generates a component-oriented interface • The interface enables communication between HW and SW • The tool gives an abstract of user logic (hardware) in application level • The interface model is described by 2 formats • Python format • scrp format • scrp : specification for cReComp. This is my original format for cReComp. September, 22 MCSoC 2016 @Lyon, France 11
  • 12. User logic supported by cReComp • User logic description types are different depending on usage of FPGA • For interface of sensor, motor and so on → RTL • RTL : Register Transfer Level • For accelerator of processing such as processing → HLS • HLS : High Level Synthesis • These 2 types of user logic are able to be input to cReComp! • Any module is OK! September, 22 MCSoC 2016 @Lyon, France 12
  • 13. Interface generation model on cReComp September, 22 MCSoC 2016 @Lyon, France 13 FIFO CtrlROS APP Verilog-HDL FIFO FIFO Configuration file cReComp User logic Output ROS-compliant FPGA component C++ Communication HardwareSoftware Described by User FILE Input • Input • User logic (Verilog-HDL) • Configuration file • scrp (specification for cReComp ) • Python • Output • Component-oriented interface • Circuit for communication control (Verilog-HDL) • ROS Application (C++) • ROS message file • Configuration contents • Bit width of FIFO • Number of receiving data from input FIFO (HW→SW) • Number of sending data from input FIFO (SW→HW) • Condition to receive/send • Assignment of user logic
  • 14. Therefore… September, 22 MCSoC 2016 @Lyon, France 14 Configuration file scrp or python cReComp Describe Input Output ROS-compliant FPGA component User logic Developer need not design the interface for communication between HW and SW. Only two files
  • 15. Outline 1. Introduction 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 15
  • 16. Case study: control circuit of ultra sonic distance sensor (user logic described by RTL) September, 22 MCSoC 2016 @Lyon, France 16 Ultra sonic distance sensor (Parallax Inc. PING) Input : req sonic_sensor.v (RTL) Output : out_data 01 11532 Sensor values If “req” is asserted, sensor values are output on “out_data” 32 count clocks until pulse returns User logic
  • 17. 1. Template generation September, 22 MCSoC 2016 @Lyon, France 17 Template generation crecomp -s sensor_ctl.scrp -u sonic_sensor.v Description for configuration Componentization [3] Shinaya Takamaeda, “A High-level Hardware Design Environment in Python ,” Technical report of IEICE, RECONF2015-36, pp.21-26, 2015. • The description is generated automatically by cReComp. • User logic is analyzed by veriloggen [3] • You may specify user logic before cReComp generates a template file. • Input file should be the top module of your user logic.
  • 18. 2. Description for configuration : 1 / 2 September, 22 MCSoC 2016 @Lyon, France 18 Template generation Description for configuration Componentization Communication setting FIFO bit width : 32 bits Receive data (SW→HW) : one time Send data (HW→SW) : one time “req” is connected to input FIFO “out_data” is connected to output FIFO
  • 19. 2. Description for configuration : 2 / 2 September, 22 MCSoC 2016 @Lyon, France 19 Template generation Description for configuration Componentization component_name "sensor_ctl" { in_out_signals { input 1 clk, input 1 rst, inout 1 sig } option_signals { wire 1 finish, wire 1 busy, reg 31 dummy, reg 1 req, wire 32 data_out } communication xillybus { fifo_width 32, rcv_cycle1, snd_cycle 1, condition "busy == 0 && finish", rcv = req, rcv = dummy, snd = data_out } userlogic_path "sonic_sensor.v" instance_name "uut" { input 1 clk = clk, input 1 rst = rst, input 1 req = req, output 1 busy = busy, inout 1 sig = sig, output 1 finish = finish, output 32 out_data = data_out } generate_ros_package } Very few code!
  • 20. 3. Componentization September, 22 MCSoC 2016 @Lyon, France 20 Template generation crecomp -b sensor.ctl.scrp sensor_ctl/ +--hardware/ +--sensor_ctl.v +--sonic_sensor.v +--software/ +--lib_cpp.h +--Makefile +--sensor_ctl.cpp +----ros_package/ Configure Description Componentization Execute a command to generate a component such directory is generated sensor_ctl/ +--inculude/ +--msg/ +--sensor_ctl.msg +--src/ +--sensor_ctl.cpp +--CMakeLists.txt +--package.xml
  • 21. The generated component in the design case September, 22 MCSoC 2016 @Lyon, France 21 FIFO 32-bits out_data req 32 ROS Application (C++) Input Output Sensorreq 32 finish out_data busy Interface Circuit (Verilog- HDL) sig sig sonic_sensor (user logic) ROS component Topic Topic ROS component msg msg cReComp generates a ROS message file automatically In ROS, you can define data structure in *.msg file User logic on FPGA can be access from other ROS component by publish/subscribe! ROS-compliant FPGA component cReComp translates user logic signal into ROS message
  • 22. Outline 1. Introduction 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 22
  • 23. Evaluation : development productivity • We conducted an experiment in February, 2016 • Theme : Effect on the productivity by using scrp description • Subjects’ experience in HW/SW co-design • FPGA : from nothing to 3 years • C++ : from 1 to 6 years • Linux : from 1 to 3 years • User logic : control circuit of sonic distance sensor • The user logic is the same as design case September, 22 MCSoC 2016 @Lyon, France 23
  • 24. Details and results of the experiment • Evaluation methods • The difficulty rated in five stages5 : Very easy ~ 1: Very difficult • The average of elapsed time • The rating of b) was 3.7 and b) took 17 minutes. • maximum : 5, minimum : 2 September, 22 MCSoC 2016 @Lyon, France 24 Evaluation environment • FPGA board : Zedboard Avnet • Programmable SoC : Zynq-7020 Xilinx • OS:xillinux-1.3(Ubuntu12.04) • ROS:groovy • Sensor : PING Ultrasonic Distance Sensor Parallax a) Installation of cReComp b) Description of scrp file c) Componentization Experiment flow
  • 25. The experiment shows… • All the subjects were able to finish their componentization in less than one hour. September, 22 MCSoC 2016 @Lyon, France 25 Development Without cReComp (me : Kazushi Yamashia) With cReComp (average of the subjects) Described Lines About 300 (hardware + software) 27 (scrp) Described Characters About 6000 (hardware + software) 385 (scrp) Time 1 hour 46 minutes 17 minutes Comparison on implementation of component-oriented interface cReComp contributes to improve the productivity of ROS-compliant FPGA component version of cReComp was not the latest when experiment was conducted. (The latest is 1.4.4) My experience; FPGA : 3years, C++ : 6 years, Linux : from 3 years
  • 26. Outline 1. Introduction 2. Proposal of cReComp 3. Development using cReComp 4. Evaluation : Development productivity 5. Conclusion September, 22 MCSoC 2016 @Lyon, France 26
  • 27. Conclusion We proposed cReComp for easy integration of FPGA into robot system. • The experiment was conducted to evaluate development productivity • All the subjects were able to finish componentization of experiment less than one hour. • cReComp contributes to improve the productivity of ROS-compliant FPGA component Future work • We are going to conduct further experiments in October • Using the latest version of cReComp September, 22 MCSoC 2016 @Lyon, France 27
  • 28. Thank you for listening! • Acknowledgment • This research and development work was supported by the MIC/SCOPE#152103014. • Contact • Email : kazushi@virgo.is.utsunomiya-u.ac.jp • This slide is published at slideshare after presentation my account : kazuyamashi September, 22 MCSoC 2016 @Lyon, France 28 cReComp is released as open source software!! git clone https://github.com/kazuyamashi/cReComp.git pip install crecomp
  • 29. cReComp : Automated Design Tool for ROS-Compliant FPGA Component Kazushi Yamashina, Hitomi Kimura, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota Graduate School of Engineering, Utsunomiya University in Japan September, 22 MCSoC 2016 @Lyon, France 29