SlideShare a Scribd company logo
1 of 21
1
One day in 1994...
Development Strategies for (P)SoCs
2
Andreas
Koschak
Crossing the Boundaries
Parametric Engineering GmbH
akoschak@parametric.ch
Embedded Computing Conference 2013, Winterthur CH
3
Short Summary
Increased complexity of PSoC and FPGA
No Time for Trial and Error
FPGA/PSoC based System Development just about to
come of age
Focus on Verification and Simplicity
Systems Engineering
Verification Tools
Agile SW + FPGA/PSoC Development?
4
PSoC
Systems
Research &
Development
Technology
Consulting
OEM Hardware & Software
ASIC
FPG
A
Our Field of Activity
Focus: Fast Development, Verification and Simplicity, also on System
Level, mostly for industrial applications
ASSP
5
What we see:
Difficulty: Hardware and Software partitioning
Poor Verification Strategies for FPGA/PSoC
Decision-Makers often hesitate to use
FPGA/PSoC for more complex tasks

6
SoC
Microprocessor
Core 1
+TCM
(Microprocessor
Core 2)
+TCM
RAMROM Periphery
Power Supply
Generation
Analog/RF/
Mixed Signal
Circuitry
Bus System(s) / Network(s) on Chip
Emphasis on Reuse
7
FPGAs with integrated Microcontrollers as
Hard Macros
• Xilinx Zynq
• Altera SoC
• Microsemi SmartFusion (2)
• ARM based Cores (ie. Microsemi ARM Cortex-M1)
• NIOS2
• Micro/Picoblaze
• LatticeMico
• Cadence Xtensa
• Many more on Market (8051, LEON, MSP430, PIC, ...)
Soft Processors for FPGAs
8
The mostly seen (P)SoC Structure
Microprocessor
Core 1
+TCM
RAM ROM
Periphery
1
Periphery
2
Periphery
3
Periphery
4
Periphery
5
Bus Bridge
Hardware
Accelerator
9
Microprocessor
Core 1
+TCM
RAM ROM
Periphery
1
Periphery
2
Periphery
3
Periphery
4
Periphery
5
Bus Bridge
Hardware
Accelerator
What happens...
Incomplete System Verification
Performance Bottleneck
10
About Verification...
«Verification is a process used to demonstrate that the
intent of a design is preserved in its implementation»
Janick Bergeron: «Writing Testbenches»
Efforts for large ASIC projects:
11
Verification Space
(Trivial and theoretic) Example Process:
32 Bit Bus Transfer CPU->Periphery (32 Bit Data)
32 Bit Address
(2^32 values) 32 Bit Data
(2^32 values)
Bus Latency
Full functional coverage: 2^32 * 2^32 * Latency values
12
Microprocessor
Core 1
+TCM
RAM ROM
Periphery
1
Periphery
2
Periphery
3
Periphery
4
Periphery
5
Bus Bridge
An alternative Solution
Sequencer
13
Verification Space -> Alternative Solution
(Trivial and theoretic) Example Process:
32 Bit Bus Transfer CPU->Periphery (32 Bit Data)
32 Bit Address
(2^32 values) 32 Bit Data
(2^32 values)
Bus Latency
Full functional coverage: 2^32 data values
-> Verification possible without BFM (bus functional model!)
14
Traditional Verification Approach:
Self-Checking Test Bench for UART:
BUS Master
Model
UART
TX
RXBUS
1. Generate Bus Signals for Write Transfer (Data x)
2. Wait y milliseconds
3. Generate Bus Signals for Command Transfer (Send)
4. Wait z milliseconds
5. Check Signals on TX Pin and compare with expected result
What happens if at the same time data is received at the
RX port? What happens if the bus is stalled?
Create new test cases for each special situation
Do you know all of them?
15
Contrained Random Approach:
BUS Master
BFM
UART
TX
RXBUS
Random
Generator
Constraints
Assertion Checker
Random Generator: Sends random data with random intervals
Contraints: Only send data that has to be verified with
Assertion Checker: «Check what the system does with the data»
UART
BFM
Constraints
Assertion Example:
«If the Bus Master sends a data command to address A and later a write command,
then the UART must output the byte that has been previously set to address A with a
delay of between 0 and 10 microseconds»
Result
DB
You need to be able to repeat exactly the same sequence!
16
Our Systems Engineering Approach
Requirements
DB with Link to
Assertions
Result
DB
System Verification
FPGA Verification
You do not lose time with Requirements
Engineering if you do it right!
Realtime
Functional
Coverage Checker
Assertion Example:
«If the Bus Master sends a data command to address A and later a write command,
then the UART must output the byte that has been previously set to address A with a
delay of between 0 and 10 microseconds»
This is a perfect System Requirement!
Calculation
Servers
Calculation
Servers
17
A BIG System
Requirements
DB Result
DB
Functional
Coverage Checker
Remote
Devices
Communication
Server
Calculation
Devices
Data Processing
Machine
Database
Server
Configuration
Server
Temporal
Assertion Checker
Result
DB
Randomized dynamic
Testcase Generator
You are here
Config
DB
18
What happens if Requirements Change?
1. Create/Change Requirement(s) in DB
2. Identify new System Level Assertions and link them to Requirements
3. Derive FPGA Assertions
4. Extend Radom Generators if necessary
5. Adapt FPGA Structure
6. Repeat Test Process, first FPGA, then System
Test Driven Design on System Level
A certain degree of «Agility» is feasible
19
Don’t just buy expensive Design Software
And try working with it
20
Recap: DNFs for FPGA based SoCs
1. D o n ’t l e t R e u s a b i l i t y d i c t a t e
y o u r S y s t e m A r c h i t e c t u r e
2. M i n i m i z e D e s i g n S p a c e
3. K e e p F u n c t i o n a l i t y w h e r e i t i s
n e e d e d
4. C h e c k T e s t B e n c h e s o f y o u r
C o r e s b e f o r e y o u u s e t h e m
5. I d e n t i f y s u i t a b l e V e r i f i c a t i o n
E f f o r t (Y o u w i l l m o s t l i k e l y
n e v e r b e a b l e t o v e r i f y 100% o f a
c o m p l e x S o C j u s t b y s i m u l a t i o n )
6. A l w a y s m a k e s u r e y o u c a n r e p e a t
21
Q&A
www.incose.ch
www.verificationguild.com
www.osvvm.org
www.myhdl.org
www.python.org
docs.python.org/2/library/unittest.html
de.wikipedia.org/wiki/Pentium-FDIV-Bug
www.parametric.ch
Web-Links:
More Questions: akoschak@parametric.ch

More Related Content

Similar to Crossing the Boundaries: Development Strategies for (P)SoCs

Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Mingliang Liu
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture explorationDeepak Shankar
 
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...NECST Lab @ Politecnico di Milano
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionPersiPersi1
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Javacodebits
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi ResumeSudheer Vaddi
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...Alexandre Moneger
 
Strata + Hadoop 2015 Slides
Strata + Hadoop 2015 SlidesStrata + Hadoop 2015 Slides
Strata + Hadoop 2015 SlidesJun Liu
 
Application Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance CenterApplication Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance Centerinside-BigData.com
 
The CAOS framework: democratize the acceleration of compute intensive applica...
The CAOS framework: democratize the acceleration of compute intensive applica...The CAOS framework: democratize the acceleration of compute intensive applica...
The CAOS framework: democratize the acceleration of compute intensive applica...NECST Lab @ Politecnico di Milano
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemDatabricks
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA accelerationMarco77328
 
Boosting spark performance: An Overview of Techniques
Boosting spark performance: An Overview of TechniquesBoosting spark performance: An Overview of Techniques
Boosting spark performance: An Overview of TechniquesAhsan Javed Awan
 
What’s eating python performance
What’s eating python performanceWhat’s eating python performance
What’s eating python performancePiotr Przymus
 

Similar to Crossing the Boundaries: Development Strategies for (P)SoCs (20)

Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture exploration
 
computer architecture.
computer architecture.computer architecture.
computer architecture.
 
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...
From FPGA-based Reconfigurable Systems to Autonomic Heterogeneous Computing S...
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 
Introduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSPIntroduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSP
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin
 
Sudheer vaddi Resume
Sudheer vaddi ResumeSudheer vaddi Resume
Sudheer vaddi Resume
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
 
Strata + Hadoop 2015 Slides
Strata + Hadoop 2015 SlidesStrata + Hadoop 2015 Slides
Strata + Hadoop 2015 Slides
 
Soc.pptx
Soc.pptxSoc.pptx
Soc.pptx
 
Application Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance CenterApplication Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance Center
 
The CAOS framework: democratize the acceleration of compute intensive applica...
The CAOS framework: democratize the acceleration of compute intensive applica...The CAOS framework: democratize the acceleration of compute intensive applica...
The CAOS framework: democratize the acceleration of compute intensive applica...
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA acceleration
 
Boosting spark performance: An Overview of Techniques
Boosting spark performance: An Overview of TechniquesBoosting spark performance: An Overview of Techniques
Boosting spark performance: An Overview of Techniques
 
What’s eating python performance
What’s eating python performanceWhat’s eating python performance
What’s eating python performance
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Crossing the Boundaries: Development Strategies for (P)SoCs

  • 1. 1 One day in 1994...
  • 2. Development Strategies for (P)SoCs 2 Andreas Koschak Crossing the Boundaries Parametric Engineering GmbH akoschak@parametric.ch Embedded Computing Conference 2013, Winterthur CH
  • 3. 3 Short Summary Increased complexity of PSoC and FPGA No Time for Trial and Error FPGA/PSoC based System Development just about to come of age Focus on Verification and Simplicity Systems Engineering Verification Tools Agile SW + FPGA/PSoC Development?
  • 4. 4 PSoC Systems Research & Development Technology Consulting OEM Hardware & Software ASIC FPG A Our Field of Activity Focus: Fast Development, Verification and Simplicity, also on System Level, mostly for industrial applications ASSP
  • 5. 5 What we see: Difficulty: Hardware and Software partitioning Poor Verification Strategies for FPGA/PSoC Decision-Makers often hesitate to use FPGA/PSoC for more complex tasks 
  • 6. 6 SoC Microprocessor Core 1 +TCM (Microprocessor Core 2) +TCM RAMROM Periphery Power Supply Generation Analog/RF/ Mixed Signal Circuitry Bus System(s) / Network(s) on Chip Emphasis on Reuse
  • 7. 7 FPGAs with integrated Microcontrollers as Hard Macros • Xilinx Zynq • Altera SoC • Microsemi SmartFusion (2) • ARM based Cores (ie. Microsemi ARM Cortex-M1) • NIOS2 • Micro/Picoblaze • LatticeMico • Cadence Xtensa • Many more on Market (8051, LEON, MSP430, PIC, ...) Soft Processors for FPGAs
  • 8. 8 The mostly seen (P)SoC Structure Microprocessor Core 1 +TCM RAM ROM Periphery 1 Periphery 2 Periphery 3 Periphery 4 Periphery 5 Bus Bridge Hardware Accelerator
  • 9. 9 Microprocessor Core 1 +TCM RAM ROM Periphery 1 Periphery 2 Periphery 3 Periphery 4 Periphery 5 Bus Bridge Hardware Accelerator What happens... Incomplete System Verification Performance Bottleneck
  • 10. 10 About Verification... «Verification is a process used to demonstrate that the intent of a design is preserved in its implementation» Janick Bergeron: «Writing Testbenches» Efforts for large ASIC projects:
  • 11. 11 Verification Space (Trivial and theoretic) Example Process: 32 Bit Bus Transfer CPU->Periphery (32 Bit Data) 32 Bit Address (2^32 values) 32 Bit Data (2^32 values) Bus Latency Full functional coverage: 2^32 * 2^32 * Latency values
  • 13. 13 Verification Space -> Alternative Solution (Trivial and theoretic) Example Process: 32 Bit Bus Transfer CPU->Periphery (32 Bit Data) 32 Bit Address (2^32 values) 32 Bit Data (2^32 values) Bus Latency Full functional coverage: 2^32 data values -> Verification possible without BFM (bus functional model!)
  • 14. 14 Traditional Verification Approach: Self-Checking Test Bench for UART: BUS Master Model UART TX RXBUS 1. Generate Bus Signals for Write Transfer (Data x) 2. Wait y milliseconds 3. Generate Bus Signals for Command Transfer (Send) 4. Wait z milliseconds 5. Check Signals on TX Pin and compare with expected result What happens if at the same time data is received at the RX port? What happens if the bus is stalled? Create new test cases for each special situation Do you know all of them?
  • 15. 15 Contrained Random Approach: BUS Master BFM UART TX RXBUS Random Generator Constraints Assertion Checker Random Generator: Sends random data with random intervals Contraints: Only send data that has to be verified with Assertion Checker: «Check what the system does with the data» UART BFM Constraints Assertion Example: «If the Bus Master sends a data command to address A and later a write command, then the UART must output the byte that has been previously set to address A with a delay of between 0 and 10 microseconds» Result DB You need to be able to repeat exactly the same sequence!
  • 16. 16 Our Systems Engineering Approach Requirements DB with Link to Assertions Result DB System Verification FPGA Verification You do not lose time with Requirements Engineering if you do it right! Realtime Functional Coverage Checker Assertion Example: «If the Bus Master sends a data command to address A and later a write command, then the UART must output the byte that has been previously set to address A with a delay of between 0 and 10 microseconds» This is a perfect System Requirement!
  • 17. Calculation Servers Calculation Servers 17 A BIG System Requirements DB Result DB Functional Coverage Checker Remote Devices Communication Server Calculation Devices Data Processing Machine Database Server Configuration Server Temporal Assertion Checker Result DB Randomized dynamic Testcase Generator You are here Config DB
  • 18. 18 What happens if Requirements Change? 1. Create/Change Requirement(s) in DB 2. Identify new System Level Assertions and link them to Requirements 3. Derive FPGA Assertions 4. Extend Radom Generators if necessary 5. Adapt FPGA Structure 6. Repeat Test Process, first FPGA, then System Test Driven Design on System Level A certain degree of «Agility» is feasible
  • 19. 19 Don’t just buy expensive Design Software And try working with it
  • 20. 20 Recap: DNFs for FPGA based SoCs 1. D o n ’t l e t R e u s a b i l i t y d i c t a t e y o u r S y s t e m A r c h i t e c t u r e 2. M i n i m i z e D e s i g n S p a c e 3. K e e p F u n c t i o n a l i t y w h e r e i t i s n e e d e d 4. C h e c k T e s t B e n c h e s o f y o u r C o r e s b e f o r e y o u u s e t h e m 5. I d e n t i f y s u i t a b l e V e r i f i c a t i o n E f f o r t (Y o u w i l l m o s t l i k e l y n e v e r b e a b l e t o v e r i f y 100% o f a c o m p l e x S o C j u s t b y s i m u l a t i o n ) 6. A l w a y s m a k e s u r e y o u c a n r e p e a t