Author
xcell-journal-japanese
View
285
Download
3
Embed Size (px)
DESCRIPTION
Xcell Journal 93 号のカバーストーリーでは、急速に進化し、これまで以上に複雑な医療機器市場において、ますます重要になるザイリンクスデバイスについて考察します。そのほか、魅力的な方法論と実用的な ハウツー記事を紹介しています。
S O L U T I O N S F O R A P R O G R A M M A B L E W O R L D
Time-to-Market
FPGA
Zynq MPSoC Xen
XDC
FPGA
12japan.xilinx.com/xcell
93 2015
L E T T E R F R O M T H E P U B L I S H E R
Mike Santarini
Xcell journal
Xcell Journal 93
2015 12 21
Xilinx, Inc2100 Logic DriveSan Jose, CA 95124-3400
2015 Xilinx, Inc. All Right Reserved.
XILINX Xcell Xilinx
Xilinx, Inc.
Xilinx, Inc.
/
Mike [email protected]+1-408-626-5981
Jacqueline Damian
Scott Blair
Teie, Gelwicks & Associates
141-00321-2-2 4F
Zynq UltraScale+ Hello World 3 Zynq MPSoC XCZU9EG Zynq UltraScale+
MPSoC 28nm 7 20nm UltraScale 16/14nm FinFET UltraScale+ 3
2015 9 30 2 2 Zynq MPSoC TSMC
9 Linux ()
UltraScale+ 1 Zynq UltraScale+ MPSoC Linux
Xcell Journal 90 TSMC 16nm FinFET+ Zynq MPSoC 64 ARM Cortex-A53 32 ARM Cortex-R5 ARM Mali-400MP 16nm FPGA (UltraRAM ) Zynq UltraScale+ MPSoC 28nm Zynq SoC 5
Xcell Publications 28nm Zynq-7000 All Programmable SoC Zynq MPSoC Xcell Software JournalZynq MPSoC
This years best release.
SDx IDE C/C++OpenCL
FPGA SDx All Programmable
Xcell Software Journal
Solutions for a
Progammable World
Xcell Publications
VIEWPOINTS
Letter from the Publisher
Zynq UltraScale+ Hello World 2
XCELLENCE BY DESIGN APPLICATION FEATURES
Xcellence in Vision Systems
FPGA 12
Xcellence in Test & Measurement
Zynq SoC 20
Xcellence in Test & Measurement
Artix-7 FPGA USB 24
Xcellence in Industrial
FPGA 28
Cover Story
6
Time-to-Market
28
12 20
THE XILINX XPERIENCE FEATURES
Xplanation: FPGA 101
Zynq MPSoC Xen 34
Xplanation: FPGA 101
Vivado IPI Aurora FPGA 42
Xplanation: FPGA 101
XDC 50
Tools of Xcellence
56
42
34
50
93
6 Xcell Journal 93 6 Xcell Journal 93
Xilinx Speeds Customer Medical Innovations to Market
Time-to-Market
Mike Santarini Publisher, Xcell Journal, Xilinx, Inc. [email protected]
C O V E R S T O R Y
C O V E R S T O R Y
6 Xcell Journal 93 http://japan.xilinx.com/ 76 Xcell Journal 93
All Programmable IP
All Programmable
30
FPGA ( Zynq-7000
All Programmable SoC
)
()
(CTMRI)
X
FPGA
FPGA
FPGA ( Zynq SoC)
All Programmable
( 1)
Kamran Khan
73 2050 97
65
23% 2050 32%
(31 )
C O V E R S T O R Y
8 Xcell Journal 93
Khan
Khan
2019 2,120
60
Khan
Siemens
General Electric
X
Khan
Time-to-
Market
Khan
1
1
TI Freescale
MotorControl
UnitMC
MotorControl
UnitMC
Processor
ApplicationSpecificFeatures
Single Core ARM
RTOS
PeripheralsAnalytics
HMIMC
Video
Network
Sensors
MemoryLPDDR2
Network
MemoryLPDDR3
TI OMAP orFreescale i.MX6d
Higher Potentialfor Failure
Small FPGA forSensory input
MultipleDevices,
Extra BOM
Older Memory,Slower
Single ChipSolution with
7010
RTOSon isolated core
Higher reliablitywith real-time
analytics
Single chip =lower BOM
Lower power,Faster memory
FPGA
RTOSPeripherals
Dual Core A9
FabricAnalytics
Motor ControlHMI
Video
Zynq SoC
Traditional Clinical Designs Single-Chip Clinical Designs
Sensors
VideoUnit
Video
MotorControl
UnitMC
e Core ARMVideo
1 Zynq SoC
C O V E R S T O R Y
8 Xcell Journal 93 http://japan.xilinx.com/ 9
Khan
Khan
Khan
2
Khan
1
1
/
2
Khan
OEM
Khan
Khan
Khan
PC
Khan
FPGA Zynq SoC
All Programmable
All Programmable FPGA
SoC
Khan
IP
SDSoC
Zynq SoC
Zynq SoC ARM
( 2)
30
10
ASIC ASSP FPGA
C O V E R S T O R Y
10 Xcell Journal 93
ASIC ASSP
Khan 1980
1990
FPGA
FPGA ASIC ASSP
(Zynq SoC
Zynq SoC
Zynq
UltraScale+ MPSoC)
Khan
Zynq SoC
SDSoC
Khan
Khan
IDT
SDx (FPGA
CC++OpenCL
SDAccelZynq SoC
C/C++
SDSoC)
C
(
)
MotorControl
UnitMC
MotorControl
UnitMC
Processor
ApplicationSpecificFeatures
Single Core ARM
RTOS
PeripheralsAnalytics
HMIMC
Video
Network
Sensors
MemoryLPDDR2
Network
MemoryLPDDR3
TI OMAP orFreescale i.MX6d
~$20
Higher Potentialfor Failure
Small FPGA forSensory input
~$10
MultipleDevices,
Extra BOM
Older Memory,Slower
Single ChipSolution with7010 for
C O V E R S T O R Y
10 Xcell Journal 93 http://japan.xilinx.com/ 11
Khan
Khan
Vivado
Design Suite IP ( IP
)
ISO 60601 3 ISO 13485
ICE 61508 ()
ICE 62304 (RTOS )
Khan
IP
ICE 62304 RTOS
QNX
RTOS ICE 62304
Zynq SoC
6
TOPIC
Embedded Products
IP IP
SOM ISO 13485
( 3
)
Time-to-Market
Zynq SoC
Khan
Zynq SoC 1
Khan Zynq SoC
Khan
(2 3 )
10 15
3
1 3
10
5
Khan Zynq SoC MPSoC
I/O
Zynq
SoC MPSoC
BOM
Time-to-
Market Khan
http://japan.xilinx.com/
applications/medical.html
3 TOPIC Embedded Products Dyplo IP
12 Xcell Journal 93 12 Xcell Journal 93
X C E L L E N C E I N V I S I O N S Y S T E M S
Xilinx FPGAs Advance Autonomous Monitoring of Crowds
FPGA Muhammad Bilal MSc CandidateCenter for Advanced Studies in EngineeringIslamabad, Pakistan [email protected]
Dr. Shoab. A. Khan ProfessorCenter for Advanced Studies in Engineering (www.case.edu.pk)Islamabad, Pakistan [email protected]
X C E L L E N C E I N V I S I O N S Y S T E M S
12 Xcell Journal 93 http://japan.xilinx.com/ 1312 Xcell Journal 93
24 CCTV
/
/
FPGA
Vivado Design Suite (HLS)
UltraFast
FPGA
FPGA
MicroBlaze
FPGA
Vivado
HLS
(EDK)ISE Design Suite
EDA
Spartan-6 /
X C E L L E N C E I N V I S I O N S Y S T E M S
14 Xcell Journal 93
Spartan-6
LX45 FPGA
2
1
2
FPGA 2
FPGA
1
FPGA
(
)
[1]
1
[2]
KLT (Kanade-
Lucas-Tomasi)
(SWAD)
2
1
900
1
FPGA
360
1
Microsoft Visual C++ OpenCV
Web
FPGA
FPGA
FPGA
FPGA
3
1
FPGA
2
3
FPGA
FPGA
[3]
EDK
/
FPGA
X C E L L E N C E I N V I S I O N S Y S T E M S
14 Xcell Journal 93 http://japan.xilinx.com/ 15
1 ()
ADC
DAC
MicroBlaze
MicroBlaze
MicroBlaze
X C E L L E N C E I N V I S I O N S Y S T E M S
16 Xcell Journal 93
2 MicroBlaze
ID (
)
(ISR) MicroBlaze
ISR
DMA
ISR
(
API )
ISR
API
/
MicroBlaze
API
3
MicroBlaze
MicroBlaze
(SRAMSDRAM )
EDK DMA
MicroBlaze
API
ISR
4 FPGA
Picture
in Picture
Vivado HLS
()
2
Video Display Port
Video Capture PortMicroBlaze Processor
Video CaptureDMA Controller
InterruptController
Video DisplayDMA Controller
Processor Core
Display PortInterfaceController
ilmb dlmb
32K DPR
A B
Capture PortInterfaceControllerMicroBlaze Peripheral Bus (PLB or AXI)
Local Mem
oryLocal M
emory
BT-656 StreamEncoder
BT-656 StreamDecoder
Video ADC
Camera
Video DAC
Display
C MNote: Donate Control and Memory interfaces respectively.
C M
C M
FPGA
X C E L L E N C E I N V I S I O N S Y S T E M S
16 Xcell Journal 93 http://japan.xilinx.com/ 17
C/C++
Vivado
HLS RTL
Vivado HLS RTL
1
Vivado HLS
( )
(2D )
Vivado
8
RAM
4
8 RAM
RAM MicroBlaze
DMA
Vivado HLS
MicroBlaze GPIO
8 RAMMicroBlaze
5
5 SA1TA1 SA4
TA4 RAM
16 KBSA1TA1
SA4TA4 1
4
RAM
MicroBlaze
( 4
)
200MHz
10
2
MicroBlaze
(SDK)
C/C++
SDK
3 ISR API
User Application(Algorithm Control & Data Flow)
Video Frame Queue APIGrab_Capture_Frame()
Submit_Display_Frame()Push_Frame_Queue()Pop_Frame_Queue()Frame_Queue_Rest()
Video Ports Low-Level ISRsVideo_Capture_ISR()Video_Display_ISR()
4 FPGA ( )
X C E L L E N C E I N V I S I O N S Y S T E M S
18 Xcell Journal 93
API
(OSD)
OSD SDK
C/C++
(
/
)
FPGA
PC
2
(http://mha.
cs.umn.edu/proj_recognition.shtml)
www.gettyimages.com
Spartan-6-LX45 FPGA
LUT 30%
RAM 60%DSP48E
12% 6
()
Digilent Atlys Spartan-6
FPGA ADC DAC
5 Vivado HLS
4-Core SAD ComputationHardware Acceleration
MicroBlaze Processor
SWADEngine-1
SWADEngine-2
SWADEngine-3
SWADEngine-4
ControlHandshake
FPGA
16K DPR
A B
TA1
16K DPR
A B
SA1
16K DPR
A B
TA2
16K DPR
A B
SA2
16K DPR
A B
TA3
16K DPR
A B
SA3
16K DPR
A B
TA4
16K DPR
A B
SA4
Search AreaBRAM
Controller
Template AreaBRAM
Controller
SA-X, TA-XChip-Select
GPIOController
HardwareAcceleratorHandshake
GPIOController
HardwareAccelerator DMA
Controller
InterruptController
Processor Core
ilmb dlmb
32K DPR
A B
Micro
Blaze P
LB o
r AX
I Perip
heral Bus
M
M
M
M
M
M
M
M
M
M
MNote: Denotes the memory port.
X C E L L E N C E I N V I S I O N S Y S T E M S
18 Xcell Journal 93 http://japan.xilinx.com/ 19
FPGA
Web
http://www.dailymotion.com/video/
x2av1wo_fpga-based-real-time-human-
crowd-motion-classification-demo_school
http://www.dailymotion.com/video/
x23icxj_real-time-motion-vectors-
computation-on-fpga_news
http://www.dailymotion.com/video/
x28sq1c_crowd-motion-classification-
using-motion-vectors-statistical-
features_school
FPGA
FPGA
EDK
Vivado HLS
FPGA
1. Ramin Mehran, Mubarak Shah,
Abnormal Crowd Behavior Detection
Using Social Force Model, IEEE
International Conference on Computer
Vision and Pattern Recognition (CVPR),
Miami, 2009
2. Duan-Yu Chen, Po-Chung Huang,
Motion- based unusual-event detection
in human crowds, Journal of Visual
Computation and Image Representation,
Vol. 22 Issue 2 (2011), pages 178186
3. OmniTek OSVP: http://omnitek.tv/sites/
default/files/OSVP.pdf
Shoab A. Khan
Dr.
Darshika G. Parera Dr. Umair Ahsun
6 () FPGA
20 Xcell Journal 93 20 Xcell Journal 93
X C E L L E N C E I N T E S T & M E A S U R E M E N T
Test New Memory Technology Chips Using the Zynq SoC
Zynq SoC ZC706 Qualcomm MRAM
X C E L L E N C E I N T E S T & M E A S U R E M E N T
20 Xcell Journal 93 http://japan.xilinx.com/ 2120 Xcell Journal 93
Botao Lee Senior Staff EngineerQualcomm Technologies, Inc. [email protected]
Baodong Liu Staff EngineerQualcomm Technologies, [email protected]
Wah Hsu Senior Staff EngineerQualcomm Technologies, [email protected]
Bill Lu Staff EngineerQualcomm Technologies, [email protected]
PRAMMRAMRRAM
Zynq- 7000
All Programmable SoC ZC706
DRAMSRAM
1 0
DRAM PC
SRAM
DRAM SRAM
DRAM SRAM
X C E L L E N C E I N T E S T & M E A S U R E M E N T
22 Xcell Journal 93
RAM (MRAM)
2
MRAM SRAM
DRAM
MRAM
MRAM
Zynq SoC
ZC706 FPGA
(FMC) FMC
Zynq SoC
(PL)
2 ARM A9 Zynq
SoC (PS)
PS
1
Zynq SoC ARM A9
PS
DMA
FMC FMC
2
3
3
Linux Linux
1
Xilinx ZC706 Evaluation Board
FMC
XC7Z045 SoC
ZYNQ PS
ZYNQ PL
DMA
MemoryController
FMC Daughtercard
Test Chip
X C E L L E N C E I N T E S T & M E A S U R E M E N T
22 Xcell Journal 93 http://japan.xilinx.com/ 23
2
1
1
FAE 1
Zynq SoC
1
1
/
Zynq SoC
1 Vivado
Design Suite
Vivado
Vivado Design
Suite
RTL
Linux OS
GUI
Linux OS Linux
GUI
Zynq-7000 All Programmable SoC
ZC706
2
Application Test Configuration Performance Profiling OS Linaro Linux
Device Driver Memory Controller Device Driver
Core 2x ARM A9 Memory Controller
Device XC7Z045 SoC Memory Test Chip
Board ZC706 Evaluation Board FMC Daughtercard
Xcell journal PR
Xcell Journal
9,000
Web iPad
Xcell Journal
24 Xcell Journal 93 24 Xcell Journal 93
X C E L L E N C E I N T E S T & M E A S U R E M E N T
Unleashing High-Performance USB Devices with Artix-7 FPGA
Artix-7 FPGA USB
FPGA USB
X C E L L E N C E I N T E S T & M E A S U R E M E N T
24 Xcell Journal 93 http://japan.xilinx.com/ 2524 Xcell Journal 93
Tom Myers Senior Hardware EngineerAnritsu [email protected]
USB ( )
USB
FPGA
Artix-7
Vivado Design Suite
Artix-7 MicroBlaze
USB 2.0
Anritsu Company ()
USB 2.0
USB
500mA ( 5V)
X C E L L E N C E I N T E S T & M E A S U R E M E N T
26 Xcell Journal 93
200MB
4 (Gb)
LPDDR2
Xilinx Power Estimator
MicroBlaze (
(MIG)
)
Vivado IP
I/O
Vivado
MIG LPDDR2
AXI
AXI Shim
MIG
LPDDR2
1
Vivado Design Suite :
(UG907)
1
USB 5V
1
FPGA
USB
USB
Artix-7 USB Bus-Powered Device Architecture
FPGAXilinx
XC7A100TFGG484-2L
PLL, Core Logicat 100 MHz
Reset Controller
XADCTemp/VoltageMonitor
SPIController
SPI FLASH Config/Boot 256Mb/1.8V
AXI4 LiteInterconnect
LPDDR24Gb 128Mx32
LPDDR2Memory
Onterface
AXI shim
AXI4Interconnect
32 bit datapath @
100 MHz
MicroBlaze
Cache
Interruptcontroller
JTAGconfig/debug
5V to 1,8VReg
JTAGconnector
AXI4 LitePeripherals
[email protected] 200 MHz
DMA
USBCore
USB ULPITransceiver
USBconnector
5V to 1.2VReg
5V to 1.0VReg
5V to 1.8VReg
USBULPI100 MHz
osc
SystemClock
1 Artix-7
X C E L L E N C E I N T E S T & M E A S U R E M E N T
26 Xcell Journal 93 http://japan.xilinx.com/ 27
2 QuickBoot
Configuration Step 1:FPGA configuration
starts here readcritical switch word
Flash MemoryAddr 0
Component 1:QuickBoot Header
Configuration Step 2A:If critical switch word is ON,
then execute warm bootand jump to update bitstream.
Configuration Step 2B:Synchronize and load
update bitstream.
Configuration Step 3A:If critical switch word isOFF, then ignorewarm boot sequence.
Configuration Step 3B:Synchronize and loadgolden bitstream.
CriticalSwitch Word
Warm BootJump Sequence
Component 2:Golden
Bitstream
Component 3:Update
Bitstream
XAPP1081
QuickBoot
2 7
FPGA
XAPP1081
QuickBoot
SDRAM
16nm UltraScale+
UltraRAM
ARM7 Zynq-7000 All
Programmable SoC
28 Xcell Journal 93 28 Xcell Journal 93
X C E L L E N C E I N I N D U S T R I A L
FPGA-Based Fuzzy Controller Manages Sugarcane Extraction
FPGA Deepali Vyas Masters CandidateMody University of Science and TechnologyLakshmangarh, Rajasthan, India [email protected]
Yogesh Misra Research ScholarMewar UniversityChittorgarh, Rajasthan, [email protected]
H. R. Kamath DirectorMalwa Institute of TechnologyIndore, Madhya Pradesh, [email protected]
X C E L L E N C E I N I N D U S T R I A L
28 Xcell Journal 93 http://japan.xilinx.com/ 2928 Xcell Journal 93
Virtex-6 FPGA 3
6,000 120
MITS (Mody
Institute of Science and Technology)
FPGA
1 2,500t
26.6kg/
3
1
2
1 2cm
Donnelly
2 3
5
6
Donnelly
2014 1
Donnelly
2
2 [1]
26.6 kg/
2
3
3
2
2014 3
[2]
X C E L L E N C E I N I N D U S T R I A L
30 Xcell Journal 93
3
MATLAB
3
[3]
FPGA
FPGA
FPGA
Virtex-6 FPGA
2 3
2
3 MATLAB
3 (Roll Low (RL):
12cm/Roll Medium (RM): 14.3cm/
Roll High (RR): 16.6cm/)
MATLAB
PSpice
(ADC)
5
VHDL
5
IF-THEN
Mamdani Sugeno 2
Mamdani
Mamdani
2
Sugeno
Sugeno
3
3
WEIGHT ()
500kg 1,000kg 11
(LV)
HEIGHT (
) 0 180cm 7
LV
ROLLSPEED ()
12cm/ 16.6 cm/
3 LV
VHDL
3 3
2
( 1)
( 2)
S1= (y2-y1/ 2-x1) S2= (y2-y1/x2- 2)
(DOM) ()
4
Segment1 (=0)Segment2 {( -
1)* 1}Segment3 {( - 1
Cane Carrier
Cane Knives
ShredderKnives
Rake
Car
rier
Bagassefor Boiler
Juice forClarification
CHUTE
X C E L L E N C E I N I N D U S T R I A L
30 Xcell Journal 93 http://japan.xilinx.com/ 31
2 3
Roll Speed
RL RM RR
HEIGHT = EL HEIGHT = VL HEIGHT = L
NO NO NO
YES YES YES
HEIGHT = VH HEIGHT = H HEIGHT = JR
NO NO NO
YES YES YES
Feed Rate = +42% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = +31% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = +20% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = +31% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = +20% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
Feed Rate = +20% of Flow Rate
For WEIGHT = SL, UL, EL, VL, l,JR, H, VH, EH, UH and SH
HEIGHT = EH
YES
NO
Y2
Y1
X1 X2
1
1.5
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Segment 1Segment 2 Segment 3 Segment 4
Point 1
Point 2
Point 3
Slope 1Slope 2
3 3 2
X C E L L E N C E I N I N D U S T R I A L
32 Xcell Journal 93
2)* 2}Segment4 (=0)
DOM
< 1 (Segment
1)DOM =0
2 1
(Segment 2)DOM = (
1) * 1
3 1
(Segment 3)DOM = FF- (
2) * 2
3 (Segment
4)DOM = 0
If-Then
MATLAB
Fuzzy Logic Toolbox
AND 3
3
231
3
3
DOM
LV
1
1 (
)
Sugeno
Virtex-6
3
1 90cm
Parameters Cane Cane Motor Carrier Cane in Feed Data for Cane Cane level weight speed speed carrier rate next level (MATLAB) (cm) (kg) (rpm) (cm/s) (kg/cm) (kg/s) sampling *(VHDL) ** (cm)
Time Roll kg cm (sec) speed (cm/s)
0 15.4 90.0 750 47.0 24.6 0.938 23.1 -16.0 -6.4 83.6 85.7 10 15.8 83.6 729 52.0 27.2 0.911 24.8 -5.0 -2.0 81.6 84.3 20 15.0 81.6 792 50.0 26.2 0.990 25.9 +19.0 +7.6 89.2 90.4 30 16.2 89.2 908 42.0 22.0 1.135 25.0 -9.0 -3.6 85.6 86.5 40 16.6 85.6 965 44.0 23.0 1.206 27.7 +11.0 +3.9 89.5 90.5 50 13.4 89.5 720 49.0 25.7 0.900 23.1 +16.0 +6.4 95.9 95.9 60 13.8 95.9 760 39.0 20.4 0.950 19.4 -27.0 -9.6 86.3 86.3 70 13.4 86.3 790 44.0 23.0 0.988 22.7 +12.0 +4.8 91.1 91.3 80 15.4 91.1 820 46.0 24.1 1.025 24.7 0.0 0.0 91.1 93.4 90 16.2 91.1 555 73.0 38.2 0.694 26.5 -4.0 -1.6 89.5 93.4 100 13.0 89.5 609 51.0 26.7 0.761 20.3 -5.0 -2.0 87.5 92.3 110 14.3 87.5 578 62.0 32.5 0.723 23.5 +6.0 +2.4 89.9 90.2 120 14.6 89.9 598 57.0 29.8 0.748 22.3 -11.0 -4.4 85.5 87.0 130 12.3 85.5 700 44.0 23.0 0.875 20.1 +4.0 +1.6 87.1 88.8 140 12.6 87.1 679 48.0 25.1 0.849 21.3 +11.0 +4.4 91.5 91.7 150 15.4 91.5 800 46.0 24.1 1.000 24.1 -6.0 -2.4 89.1 91.3 160 12.0 89.1 845 32.0 16.8 1.056 17.7 -15.0 -6.0 83.1 84.2 170 14.3 83.1 835 45.0 23.6 1.044 24.6 +17.0 +6.1 89.2 90.3 180 14.6 89.2 874 42.0 22.0 1.093 24.0 +6.0 +2.4 91.6 92.1 190 15.0 91.6 900 41.0 21.5 1.125 24.2 +2.0 +0.8 92.4 92.1 200 15.4 92.4 924 40.0 20.9 1.155 24.1 -6.0 -2.4 90.0 91.4
* Cane level of FPGA-implemented system after each sampling ** Cane level of MATLAB-implemented system after each sampling
X C E L L E N C E I N I N D U S T R I A L
32 Xcell Journal 93 http://japan.xilinx.com/ 33
MATLAB
Fuzzy Toolbox 7.11.0.584
(R2020b) 3
ISE Design Suite 14.5
VHDL Virtex-6
FPGA
10 200
6 756
90cm
750kg
1
VHDL
FPGA
MITS
3
VHDL
ISim
ISim
4
750kg
Donnelly
90cm 16.6 cm/
54.2rpm (MATLAB)
36H
54rpm MATLAB
Virtex-6
(LUT) 78%
93% 1%LUT
1%
VHDL
( 2 )
-
MITS Spartan-6
FPGA
LUT
Virtex-6
National
Sugar Institute
National
Sugar Institute
1. Y. Misra and H.R. Kamath, Design
Algorithm of Conventional and Fuzzy
Controller for Maintaining the Cane
Level During Sugar Making Process,
International Journal of Intelligent
Systems and Applications, ISSN: 2074-
9058,Vol.7 No.1, December 2014
2. Y. Misra and H.R. Kamath,
Implementation and Performance
Analysis of a Three Inputs Conventional
Controller to Maintain the Cane Level
During Cane Crushing in FPGA using
VHDL, International Journal of
Engineering Research & Technology
(IJERT), ISSN: 2278-0181, Vol. 3 Issue 9,
September 2014
3. Y. Misra and H.R. Kamath, Analysis and
design of a three input fuzzy system for
maintaining the cane level during sugar
manufacturing, Journal of Automation
and Control (accepted), ISSN: 2372-3041
4 750 kg 90 cm 16.6 cm/s
2
Three-inputconventional
controller
Three-inputfuzzy
controller(MATLAB)
Three-inputfuzzy
controller(Xilinx VHDL)
Percentage of time cane is in between 85cm-95 cm (% Time)
45.8 94.7 88.0
Lowest level of cane in chute (cm) 61.7 84.2 81.6
Highest level of cane in chute (cm) 103.5 95.9 95.9
34 Xcell Journal 93
X P L A N AT I O N : F P G A 1 0 1
Zynq MPSoC Gets Xen Hypervisor Support
Zynq MPSoC Xen Steven H. VanderLeest Chief Operating OfficerDornerWorks, [email protected]
X P L A N A T I O N : F P G A 1 0 1
34 Xcell Journal 93 http://japan.xilinx.com/ 35
Zynq Xen
Xen
DornerWorks
Zynq UltraScale+ MPSoC
Xen
Xen Zynq
(OS )
()
Zynq MPSoC
Xen Xen Zynq
X P L A N A T I O N : F P G A 1 0 1
36 Xcell Journal 93
OS
(OS
)
OS (
)
1960
1974 Popek Goldberg
3
(VMM)
VMM ()
()
VMM
VMM
VMM
GUI
(
OS )
Type 1
Type 2
OS
OS
OS
Mac MacBook
Parallels Windows
Windows VirtualBox
Linux
(
)
(FAA)
DO-248C
FAA
1
MILS (Multiple Independent Levels of
Security)
MRI
()CT
(
)
OEM
(ADAS)
VMM
(CPU I/O)
CPU
1
OS
CPU
() 1
I/O
RAW
X P L A N A T I O N : F P G A 1 0 1
36 Xcell Journal 93 http://japan.xilinx.com/ 37
I/O
2
I/O
1 I/O
(
)
I/O
GNU General Public License (
GPLv2 GPLv3)GNU
Lesser General Public LicenseApache
LicenseBSD ()
(
)
1 Red Hat
Linux OS 10
Xen Zynq Zynq UltraScale+
MPSoC Xen
ARMv8
64
ARM Cortex-A53
Zynq MPSoC
Xen
DornerWorks
Xen Zynq
Xen
OS
OS
CPU
I/O Xen
Xen
Xen 1
dom0 dom0
Time
First-StageBoot Loader
(FSBL)U-Boot XenKernel
dom0
Guest 1
Guest 2
1 OS
X P L A N A T I O N : F P G A 1 0 1
38 Xcell Journal 93
(domU )
I/O
ARM
Zynq
MPSoC
(Cortex-A53
Cortex-R5)
2
Xen Zynq
Cortex-A53
1 Cortex-R5
OS
FSBL ( 1
) R5
R5 R5 A53 (
FSBL )
U-Boot 2
Xen
dom0
dom0
1
dom0
OS
dom0
domU
Xen XSM-FLASK
ARM
Cortex-A53
ARMv8 2
4
1
EL3
ARM TrustZone Monitor
EL2
OS EL1
EL0
64 32
Xen Zynq ARMv8
AArch64 64
32
dom0
3
1 (dom0 )
1
2 3
CPU
2 ARM EL2
EL0
EL1
EL2
EL3
App 1 App 2 App 3 App 4
Guest OS 1 Guest OS 2 Secure World OS
Hypervisor
TrustZone Monitor
Cortex
-A53
Cortex-R
5
TrustedApp 6
TrustedApp 5
X P L A N A T I O N : F P G A 1 0 1
38 Xcell Journal 93 http://japan.xilinx.com/ 39
(MMU)
I/O
Cortex-A53
I/O FPGA
I/O
I/O dom0
Xen
dom0
I/O
dom0
I/O Xen
(I/O ) Xen
Xen
I/O
OS
API dom0
dom0
I/O
3 1 2 3
dom0
Hyp
ervi
sor
OS App OS AppOS App OS App
dom0
Hyp
ervi
sor
OS App OS App
dom0
Hyp
ervi
sor
OS App OS App
Guest 1
Hyp
ervi
sor
OS1 App1 OS1 App2
Guest 2
Hyp
ervi
sor
OS2 App3 OS2 App4
Guest 3H
yper
viso
r
OS3 App5 OS2 App6
Guest 1
Hyp
ervi
sor
OS1 App1 OS1 App2
Guest 3
Hyp
ervi
sor
OS3 App5 OS3 App6
Guest 3
Hyp
ervi
sor
OS3 App5 OS3 App6
Guest 1
Hyp
ervi
sor
OS1 App1 OS1 App2
Guest 3
Hyp
ervi
sor
OS3 App5 OS3 App6
Guest 2
Hyp
ervi
sor
OS2 App3 OS2 App4
Core 0
Core 1
Core 2
Core 3
Time
X P L A N A T I O N : F P G A 1 0 1
40 Xcell Journal 93
Xen Zynq Zynq SoC
(
)
DornerWorks Xen
FPGA
DornerWorks
Xen Zynq MPSoC
Xen
dom0 (Linux )
Xen Zynq
QEMU
x86
Zynq MPSoC
6 Virtex-7 FPGA
Remus
( Xen
)
4 /
DornerWorks Zynq
MPSoC Xen
4 Xen Zynq
Repository
I/O Stimulus
Dashboard
Target FarmCode Under TestTest Scripts
Stimulus Definition
Parsed Results
Test Measurements
Build ImageLoad ImageRun Tests
FutureExpansion
ZynqMPSoC
QEMU
REMUS
Linux GuestOS
BuildConfig
Tests
FSBL U-Boot
DeveloperBuild and
DebugEnvironment
Build &Test Server
X P L A N A T I O N : F P G A 1 0 1
40 Xcell Journal 93 http://japan.xilinx.com/ 41
5 Xen
Developer PC
Xen source
Xilinx Linux,ARM FSBL,
U-Boot source
64-bit ARM GCCcross-compiler
Buildroot source
ARM FSBL,U-Boot,
Xilinx Linux image
PetalinuxBuildroot
Xen image dom0 image
Pull Pull Pull
Program
CompileBuild
Generate
Passed as VirtualSATA Drive
TFTP
Load
Load
Load
Load
On Chip Memory QEMU
U-Boot
Xen
dom0
domU
Target
DornerWorks
DornerWorks
(
)
Jira
DornerWorks Xen
http://xen.world
Xen Zynq MPSoC
Xen Xen
x86 PC Type 1
Windows VirtualBox
Xen ARM
ARM
( Cortex-A53 Cortex-A15
)
5
Xen dom0 Linux
OS
http://www.
xenproject.org/
DornerWorks Zynq MPSoC
Xen Zynq
http://dornerworks.com/services/
XilinxXen
OS
Zynq MPSoC Xen
42 Xcell Journal 93 42 Xcell Journal 93
X P L A N AT I O N : F P G A 1 0 1
Vivado IPI Opens FPGA Shareable Resources for Aurora Designs
Vivado IPI Aurora FPGA K Krishna Deepak Senior Design EngineerXilinx, [email protected]
Dinesh Kumar Senior Engineering ManagerXilinx, [email protected]
Jayaram PVSS Senior Engineering ManagerXilinx, [email protected]
Ketan Mehta Senior IP Product Manager Xilinx, [email protected]
X P L A N A T I O N : F P G A 1 0 1
42 Xcell Journal 93 http://japan.xilinx.com/ 4342 Xcell Journal 93
IP Aurora
1 FPGA
IP (Intellectual Property)
1
Aurora
Vivado Design Suite IP
(IPI)
Aurora
Aurora
IP
Aurora
ASIC
FPGA
X P L A N A T I O N : F P G A 1 0 1
44 Xcell Journal 93
Aurora
Aurora
Vivado Design
Suite IP Aurora
64b66b Aurora 8b10b
Vivado IP (IPI)
IPI Aurora
64b66b Aurora 8b10b
Aurora 64b66b
IP Aurora 8b10b
Aurora
Aurora 64b66b
1
(MMCM)BUFGIBUFDS
GT GT
(GT) 7
2
GT1 GT2
Kintex-7 FPGA KC705
16 Aurora
64b66b GT
1
Tx Aurora ProtocolEngine
Tx Aurora ProtocolEngine
ScramblerScrambler
DescramblerRx Aurora ProtocolEngineRx Aurora Protocol
Engine
TxRx StartupFSM
CBCC
FIFO
CBCC
FIFO
TXMMCM
GTCommon
User IF GT1 GT2
IBUFDS
IBUFDS_GT
BUFG
BUFG
BUFGCE
64 64 64
64 6432
32
gt_ref_clk
drp_clk drp_clk
user_clk
rxrec_clk
rxusr_clkrxusr_clk2
init_clk
txusr_clk
txusr_clk2
tx_out_clkX
X
1 Aurora 64b66b
X P L A N A T I O N : F P G A 1 0 1
44 Xcell Journal 93 http://japan.xilinx.com/ 45
FPGA GT
IP
AURORA GT
Aurora
()
(
)
2
GT
IP
IP (IPI)
IPI
IP
I/O
1168Vivado IP
AXI IP
(XAPP1168)
IPI
Aurora
GT PLL
GT GT
(
)
1
1 1
IP Aurora
1
Aurora
Aurora
1 FPGA
4
4 Aurora
Aurora 1 GT
4
GT
4 GT GT
1 Aurora
3 Aurora
3 Kintex-7 FPGA KC705 GT
16-Lane Aurora Design
Resource Availability in Device Used by Aurora
MMCME2_ADV 10 1
IBUFDS_GTE2 8 2
GTE2_COMMON 4 4
GTXE2_CHANNEL 16 16
X P L A N A T I O N : F P G A 1 0 1
46 Xcell Journal 93
2 1 Aurora () 3
USER_DATA_S_AXIS_TX
GT_DIFF_REFCLK1
INIT_DIFF_CLK
CORE_CONTROL
GT_SERIAL_RX
reset_pb
pma_init
drp_clk_in
GT_DIFF_REFCLK1INIT_DIFF_CLK
USER_DATA_M_AXIS_RX
CORE_STATUS
channel_up
gt_pll_lock
lane_up[0:0]
hard_err
mmom_not_locked_out
soft_err
GT_SERIAL_TX
tx_out_clk
link_reset_out
user_clk_out
sync_clk_out
gt_qpllclk_quad1_out
gt_qpllrefclk_quad1_out
init_clk_out
sys_reset_out
gt_reset_out
gt_refclk1_out
aurora_64b66b_master
Aurora 64B66B
aurora_64b66b_slave1
Aurora 64B66B
USER_DATA_S_AXIS_TX
CORE_CONTROL
GT_SERIAL_RX
gt_rxcdrovrden_in
loopback[2:0]
mmcm_not_locked
power_down
refclk1_in
user_clk
sync_clk
reset_pb
pma_init
drp_clk_in
init_clk
gt_qpllclk_quad1_in
gt_qpllrefclk_quad1_in
USER_DATA_M_AXIS_RX
CORE_STATUS
GT_SERIAL_TX
tx_out_clk
link_reset_out
sys_reset_out
aurora_64b66b_slave3
Aurora 64B66B
USER_DATA_S_AXIS_TX
CORE_CONTROL
GT_SERIAL_RX
gt_rxcdrovrden_in
loopback[2:0]
mmcm_not_locked
power_down
refclk1_in
user_clk
sync_clk
reset_pb
pma_init
drp_clk_in
init_clk
gt_qpllclk_quad1_in
gt_qpllrefclk_quad1_in
USER_DATA_M_AXIS_RX
CORE_STATUS
GT_SERIAL_TX
tx_out_clk
link_reset_out
sys_reset_out
aurora_64b66b_slave2
Aurora 64B66B
USER_DATA_S_AXIS_TX
CORE_CONTROL
GT_SERIAL_RX
gt_rxcdrovrden_in
loopback[2:0]
mmcm_not_locked
power_down
refclk1_in
user_clk
sync_clk
reset_pb
pma_init
drp_clk_in
init_clk
gt_qpllclk_quad1_in
gt_qpllrefclk_quad1_in
USER_DATA_M_AXIS_RX
CORE_STATUS
GT_SERIAL_TX
tx_out_clk
link_reset_out
sys_reset_out
4 4
Design with Four Single Lanes
Resource Without Shared Logic With Shared Logic
MMCME2_ADV 4 1
IBUFDS_GTE2 4 1
GTE2_COMMON 4 1
GTXE2_CHANNEL 4 4
X P L A N A T I O N : F P G A 1 0 1
46 Xcell Journal 93 http://japan.xilinx.com/ 47
( 2)
Aurora
2 4
12 GT 7 FPGA
GT
1
12 GT
12
2 1 + 3
1+3
3 6
2
INIT_CLK GT
3 3 1 2 4 Aurora
aurora_64b66b_slave2
aurora_64b66b_slave1
aurora_64b66b_master1aurora_64b66b_master1
aurora_64b66b__slave1
Aurora 64B66B
GT_DIFF_REFCLK1INIT_DIFF_CLK
USER_DATA_M_AXIS_RX
CORE_STATUS
tx_out_clk
link_reset_out
QPLL_CONTROL_OUT
GT_SERIAL_TX
gt_qplllock_quad1_out
gt_qplllock_quad2_out
gt_qplllock_out
gt_qpllrefclklost_out
gt_qpllrefclklost_quad1_out
gt_qpllrefclklost_quad2_out
user_clk_out
sync_clk_out
gt_qpllclk_quad1_out
gt_qpllrefclk_quad1_out
gt_qpllclk_quad2_out
gt_qpllrefclk_quad2_out
gt_qpllclk_quad3_out
gt_qpllrefclk_quad3_out
init_clk_out
sys_reset_out
gt_reset_out
gt_refclk1_out
USER_DATA_S_AXIS_TX
GT_DIFF_REFCLK1
INIT_DIFF_CLK
CORE_CONTROL
GT_SERIAL_RX
reset_pb
pma_init
drp_clk_in
GTXQ2
GTXQ1
GTXQ0
3 4
X X
X X
X 2
X X
1 X
GT Refclk1 GT Refclk2GTXQ1 None
GT Refclk1 GT Refclk2GTXQ1 None
USER_DATA_S_AXIS_TX
CORE_CONTROL
GT_SERIAL_RX
QPLL_CONTROL_IN
gt_qplllock_in
gt_qplllock_quad1_in
qt_qpllrefclklost_in
qt_qpllrefclklost_quad1_in
refclk1_in
user_clk
sync_clk
reset_pb
pma_init
drp_clk_in
init_clk
gt_qpllclk_quad1_in
gt_qpllrefclk_quad1_in
gt_qpllclk_quad2_in
gt_qpllrefclk_quad2_in
Aurora 64B66B
GTXQ2
GTXQ1
GTXQ0
X X
X X
X X
4 2
2 3
X 1
USER_DATA_M_AXIS_RX
CORE_STATUS
GT_SERIAL_TX
tx_out_clk
link_reset_out
sys_reset_out
aurora_64b66bb_slave2
GT Refclk1 GT Refclk2GTXQ1 None
USER_DATA_S_AXIS_TX
CORE_CONTROL
GT_SERIAL_RX
QPLL_CONTROL_IN
gt_qplllock_in
gt_qplllock_quad1_in
qt_qpllrefclklost_in
qt_qpllrefclklost_quad1_in
refclk1_in
user_clk
sync_clk
reset_pb
pma_init
drp_clk_in
init_clk
gt_qpllclk_quad2_in
gt_qpllrefclk_quad2_in
gt_qpllclk_quad3_in
gt_qpllrefclk_quad3_in
Aurora 64B66B
GTXQ2
GTXQ1
GTXQ0
X X
3 4
1 2
X X
X X
X X
USER_DATA_M_AXIS_RX
CORE_STATUS
GT_SERIAL_TX
tx_out_clk
link_reset_out
sys_reset_out
5 12
12-Single-Lane Designs
Resource Without Shared LogicWith Shared Logic
(default)
With Shared Logic (using single-ended master input clocks)
MMCME2_ADV 12 3 3
IBUFDS_GTE2 12 3 1
GTE2_COMMON 12 3 3
GTXE2_CHANNEL 12 12 12
X P L A N A T I O N : F P G A 1 0 1
48 Xcell Journal 93
6 2
IBUFDS/IBUFDS_GTE2
( 3)IBUFDS_GTE2
MMCM
3 x 4 3 4
3 4 Aurora
3 1
2
Aurora
(16 )
48
4 Aurora
Tx
TxRx
Rx
Board1/Chip1 Board2/Chip2N != M
#M lanes
#N lanes
6 3 x 4
Optimized Lane Selection for 3 x 4-Single-Lane Designs
GTQ2 Master1_3 Master1_4
Slave2_3 Slave2_4
GTQ1 Slave2_1 Slave2_2
Slave1_4 Master1_2
GTQ0 Slave1_3 Slave1_2
Master1_1 Slave1_1
X P L A N A T I O N : F P G A 1 0 1
48 Xcell Journal 93 http://japan.xilinx.com/ 49
Aurora
GT
12
2*12
12
MMCM
( 5)
ROI
4 (
) (
) GT
Aurora
(/) TX
RX
2 Aurora
7 FPGA
1
1227
Aurora 64B/66B IP
(XAPP1227)
1
BUFG
Aurora
Aurora
(BUFG)
BUFG BUFR/BUFH
GT
TX
7 Aurora 1
BUFG
(DRP)
Aurora
DRP
Aurora
DRP
BUFG
Aurora
Aurora
Aurora
Vivado IP
All
Programmable
UltraScale
GT GT
Aurora IP
IPIAurora (http://
japan.xilinx.com/products/design_
resources/conn_central/grouping/
aurora.htm)
7 48
48-Single-Lane Designs
Resource Without Shared Logic With Shared Logic
MMCME2_ADV 48 4
IBUFDS_GTE2 48 4
GTE2_COMMON 48 12
GTXE2_CHANNEL 48 48
50 Xcell Journal 93
X P L A N AT I O N : F P G A 1 0 1
Making XDC Timing Constraints Work for You
XDC Adam Taylor Chief Engineer [email protected]
X P L A N A T I O N : F P G A 1 0 1
50 Xcell Journal 93 http://japan.xilinx.com/ 51
RTL FPGA
FPGA SoC
(
)
Vivado Design Suite
1
( 1 )
Vivado
Vivado
3
/
/
()
X P L A N A T I O N : F P G A 1 0 1
52 Xcell Journal 93
2
1,000
1,000
Vivado
Vivado
(XDC)
XDC Tcl
Synopsys
(SDC) XDC
set_clock_groups name logically_exclusive physically_exclusive asynchronous group
name group
(
)
logically_exclusive
physically_exclusive
(BUFGMUX
BUFGCTL )
Vivado
asynchronous
2
set_input_jitter
set_system_ jitter
()
1
2
(
)
2
( 2 )
XDC
XDC
set_multicycle_path path_multiplier [-setup|-hold] [-start|-end][-from ] [-to ] [-through ]
(
) path_multiplier
1
path_
mutiplier 2
OSC 1
OSC 2
CLK1Domain
CLK2Domain
CLK1Domain
1 CLK1 CLK2
X P L A N A T I O N : F P G A 1 0 1
52 Xcell Journal 93 http://japan.xilinx.com/ 53
= -
1 -
= - 1 (
)
XDC
2
1
I/O
I/O
I/O
I/O I/O
Vivado Design Suite
3
DONT_TOUCH
MARK_DEBUG RTL
CLOCK_DEDICATED_ROUTE
I/O
I/O
I/O FPGA
I/O
I/O
I/O
FPGA
I/O I/O
I/O
I/O
I/O
FPGA I/O
I/O
Zynq-7000
All Programmable SoC (
7 ) I/O
High Performance (HP)
High Range (HR) 2
HP
LVCMOS 33 LVCMOS 25
HR HP
I/O
HR
3.3V 2.5V
3
Propagation Time
> 1 CLK period
Timing analysis between registers uses 1 CLK period by default.
2
X P L A N A T I O N : F P G A 1 0 1
54 Xcell Journal 93
SI ( )
SI IBIS
IBIS Vivado
[File] [Export] [Export
IBIS model]
SI
SI PCB
SI
I/O
set_property PACKAGE_PIN G17 [get_ports {dout}] set_property IOSTANDARD
LVCMOS33 [get_ports {dout}] set_property SLEW SLOW [get_ports {dout}]
set_property DRIVE 4 [get_ports {dout}]
HP I/O
(DCI)
I/O
SI
I/O
I/O
FPGA
I/O
3
BEL (Basic Element of Logic)
LOC (Location)
PBlock ( (P) )
FPGA
LOC
BEL
PBlock
PBlock
PBlock
RPM (
)
RPM DSP
LUTRAM
RPM PBlock
()
RPM
3 7 HP () HR I/O
Bank 18HP
50 I/0
Bank 17HP
50 I/0
Bank 16HP
50 I/0
Bank 32HP
50 I/0
Bank 33HP
50 I/0
Bank 34HP
50 I/0
Bank 12HP
50 I/0
Bank 13HP
50 I/0
Bank 14HP
50 I/0
Bank 15HP
50 I/0
X P L A N A T I O N : F P G A 1 0 1
54 Xcell Journal 93 http://japan.xilinx.com/ 55
2
3
HDL
U_SET RPM
HU_SET RPM
RLOC SET
RLOC RLOC = XmYm
X Y FPGA
RLOC
RPM_GRID
RPM_GRID
4 HDL
HDL
4
SIGNAL ip_sync : STD_LOGIC_VECTOR(1 DOWNTO 0) :=(OTHERS =>0);SIGNEL shr_reg : STD_LOGIC_VECTOR(31 DOWNTO 0) :=(OTHERS =>0);
ATTRIBUTE RLOC : STRING;ATTRIBUTE HU_SET : STRING;ATTRIBUTE HU_SET OF ip_sync : SIGNAL IS ip_sync;ATTRIBUTE HU_SET of shr_reg : SIGNAL IS shr_reg;
japan.xilinx.com/xcell/
Xcell Publications ?
Xcell
Xcell Publication Mike Santarini ([email protected])
56 Xcell Journal 93 56 Xcell Journal 93
T O O L S O F X C E L L E N C E
Toward Easier Software Development for Asymmetric Multiprocessing Systems
Arvind Raghuraman Staff EngineerMentor Graphics Corp. [email protected]
T O O L S O F X C E L L E N C E
56 Xcell Journal 93 http://japan.xilinx.com/ 5756 Xcell Journal 93
Mentor Embedded Multicore Framework SoC
Zynq UltraScale+ MPSoC
SoC ( )
ARM Cortex-A53 ARM Cortex-R5
SoC
IP FPGA
Zynq MPSoC SoC
(SMP) OS
(AMP)
AMP SoC
(Linux
(RTOS)
)
T O O L S O F X C E L L E N C E
58 Xcell Journal 93
( OS )
()
(IPC)
Mentor Graphics Mentor Embedded
Multicore Framework AMP
2
1
remoteproc
API 1
AMP OS
IPC rpmsg
API Mentor Embedded Multicore
Framework
AMP
Linux
Mentor
Embedded Multicore Framework
API Mentor
Graphics Linux 3.4.x
remoteproc
rpmsg API Linux remoteproc
rpmsg
Texas Instruments Linux
Linux OS
Linux
Linux rpmsg Linux OS
Linux
OS AMP
remoteproc API rpmsg API
Linux
OS
API
Mentor Embedded Multicore Framework
C
RTOS
remoteproc
rpmsg
Linux API
1a
Mentor Embedded Multicore Framework
RTOS
Porting Layer (
)
(HIL) OS
OS
1b Linux remoteproc
rpmsg
1 Mentor Embedded Multicore Framework: RTOS (a) Linux remoteproc rpmsg (b)
a. b.
Application Application
Mentor Embedded Multicore Framework Linux Kernel
Hardware Hardware
Environment
remoteproc remoteprocplatform driver
rpmsg user devicedriver
rpmsg
remoteprocPorting Layer HIL
RTOSOr
Bare-Metal
VirtIO
rpmsg
VirtIO
Chardevice
T O O L S O F X C E L L E N C E
58 Xcell Journal 93 http://japan.xilinx.com/ 59
remoteproc rpmsg
remoteproc
rpmsg
remoteproc
rpmsg
IPC
Mentor Embedded Multicore Framework
AMP RTOS
Linux
remoteproc/rpmsg
Linux AMP
OS
AMP 2
Mentor Embedded Multicore Framework
AMP
AMP (uAMP)
OS
OS
3a Mentor Embedded
Multicore Framework (
)
SoC
(sAMP)
sAMP OS
(
)
Mentor
Embedded Multicore Framework
sAMP SoC
3b
2
OS
OS
Mentor Embedded Multicore
Framework
/
SoC
2 Mentor Embedded Multicore Framework AMP
remoteproc
Linux
remoteproc &rpmsg
Master Core
RTOSor
Baremetal
RemoteCore
Master CoreRemote
Core Master CoreRemote
Core
Linux
remoteproc &rpmsg
rpmsg rpmsg rpmsg
Master
Remote
RTOSor
Baremetal
RTOSor
Baremetal
RTOSor
Baremetal
MEMF
MEMF
MEMF
MEMF
remoteproc remoteproc
Configuration a Configuration b Configuration c
T O O L S O F X C E L L E N C E
60 Xcell Journal 93
Mentor Embedded Multicore
Framework
RTOS
()
Linux
Linux
RTOS
Mentor Embedded Multicore Framework
API AMP
AMP
API
AMP
(1
) (
)
OS
OS
IPC
OS SoC
AMP
AMP OS
OS
OS
BSP
I/O
OS
OS
OS
(
)
Linux OS Linux
3 Mentor Embedded Multicore Framework : uAMP (a) sAMP (b)
Cortex-A53Core
Cortex-A53Core
Cortex-R5
Core
Cortex-R5
Core
a.
IPC between OS contexts using rpmsg
b.
Cortex-A53Core
Cortex-A53Core
Cortex-R5
Core-
Baremetal
RTOSMentor
EmbeddedLinux (SMP)
LinuxGuest 0
LinuxGuest 1
Baremetal
RTOS
Hypervisor
remoteproc remoteproc
IPC between OS contexts using rpmsg
M E M F M E M F M E M F
M E M F
M E M F M E M F
remoteproc
Cortex-R5
Core Cortex-A53Core
remoteprocrpmsg
remoteprocrpmsg
T O O L S O F X C E L L E N C E
60 Xcell Journal 93 http://japan.xilinx.com/ 61
(DTS)
Nucleus RTOS
remoteproc
OS
Mentor Embedded
Multicore Framework
Linux
RTOS
ELF
ELF
IPC
remoteproc
remoteproc_
init API
remoteproc
remoteproc
rpmsg/VirtIO
IPC
remoteproc remoteproc_
boot API
remoteproc_
shutdown API
remoteproc_deinit API
( 5
remoteproc
API )
API
API
remoteproc
remoteproc_resource_init API
remoteproc_resource_
deinit API
Linux remoteproc
Linux
RPMSG (IPC)
rpmsg API
rpmsg
rpmsg
rpmsg
(rpmsg )
rpmsg rpmsg
rpmsg
rpmsg
rpmsg
rpmsg
rpmsg
rpmsg
4 rpmsg
remoteproc
rpmsg
remoteproc
rpmsg
rpmsg
rpmsg
rpmsg
rpmsg_sendxx API (
) rpmsg_ trysendxx
API ()
remoteproc_resource_
deinit rpmsg
rpmsg
T O O L S O F X C E L L E N C E
62 Xcell Journal 93
remoteproc_shutdown API
5
remoteproc
API rpmsg API
rpmsg
VirtIO
VirtIO lguestKVMMentor
Embedded Hypervisor
I/O
rpmsg VirtIO
rpmsg
rpmsg VirtIO
VirtQueue
AMP AMP
AMP
SoC
OS
OS
Mentor
Embedded Sourcery CodeBench
OS
(Mentor Embedded Linux Nucleus
RTOS ) IDE
Sourcery CodeBench
Linux Nucleus
RTOS
JTAG Linux
Nucleus RTOS
GDB
AMP
OS
OS
4 rpmsg
1
1
21
2
Application logic producing data
Remote 1
rpmsg channel
endpoint
Master
Remote 2
Endpoint
Data producer
T O O L S O F X C E L L E N C E
62 Xcell Journal 93 http://japan.xilinx.com/ 63
OS
OS
Mentor Embedded
Sourcery Analyzer
Mentor OS OS
AMP
Mentor Embedded Multicore Framework
Mentor OS
ARM
SoC
Mentor
OS
AMP
AMP
AMP
Linux
RTOS
Mentor Graphics
Zynq-7000 All Programmable SoC
Mentor
Embedded Multicore Framework
OpenAMP
Mentor Graphics
/* rpmsg channel created callback - invoked on channel creation */void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) { ..
/* Use RTOS provided primitives (ex., semaphores) to release the application context blocked on rpmsg channel creation */}
/* rpmsg channel deletion callback - invoked on channel deletion */void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) { ..
/* Use RTOS provided primitives (ex., semaphores) to release the application context blocked on rpmsg channel deletion */}
/* rpmsg receive callback - invoked when data received on default endpoint */void rpmsg_rx_cb(struct rpmsg_channel *rp_chnl, void *data, int len, void * priv, unsigned long src) { ..
/* Copy received data to application buffer and use RTOS provided primitives (ex., semaphores) to release the application IPC data processing context */}
/* Initialize remote context */int Initialize_Remote_Context(..) { ...
/* Initialize remote context */ remoteproc_init(remote_fw_info, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_rx_cb, &proc);
/* Boot remote context */ remoteproc_boot(proc); ...
}
/* Send data to remote context after rpmsg channel creation */int Send_Data_To_Remote(..) { ..
rpmsg_send(app_rp_chnl, user_buff, sizeof(user_buff)); ..
}
/* Finalize remote context after rpmsg channel deletion */int Finalize_Remote_Context(..) { ..
/* Shut down and finalize the remote processor */ remoteproc_shutdown(proc); remoteproc_deinit(proc); ..
}
5 remoteproc API rpmsg API
Xcell Journal Daily Blog Xcell Journal Daily Blog
Recent n Use C/C++ to Offload Image Processing to Programmable Logic
n EE Journals Kevin Morris writes some choice words about high-level synthesis and the Xilinx Vivado HLx introduction
n Xcell Software Journal Issue #2 now online, ready for you to read and download
n Bunnie Huangs Novena Open-Source Linux Laptop incorporates a User-Programmable Spartan-6 FPGA
n Auviz offers free eval version of its high-performance OpenCV Computer Vision Library for Xilinx All Programmable devices
: www.forums.xilinx.com/t5/Xcell-Daily/bg-p/Xcell
Xcell Journal
Xcell Daily Blog
All Programmable Smarter System