co-design and co-verification using a synchronous language · co-verification using a synchronous...

63
Co-Design and Co-Verification using a Synchronous Language Satnam Singh Xilinx Research Labs

Upload: lamthuan

Post on 09-Jun-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Co-Design and Co-Verification using a Synchronous Language

Satnam SinghXilinx Research Labs

Page 2: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 3: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 4: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Virtex-II PRO

Device ArraySize

LogicGates

PPCs GBIOs BRAMs

2VP2 16 x 22 38K 0 4 12

2VP4 40 x 22 81K 1 4 28

2VP7 40 x 34 133K 1 8 44

2VP20 56 x 46 251K 2 8 88

2VP50 88 x 70 638K 4 16 216

Page 5: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 6: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 7: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

ZBT SSRAM SDRAM

ZBT SSRAMController

SDRAMController

405PPC

On-ChipPeripheral

ROM

High-SpeedPeripheral

On-ChipPeripheral

CoreConnect OPB(On-Chip Peripheral Bus)

OPB

DDRSDRAM

CoreConnect Processor Local Bus (PLB) Arbiter

DDR SDRAMController

External BusController OPB Bridge

OPB BridgeI-Cache PLB

D-Cache PLB

Page 8: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Formal Techniques Project

• Domain specific languages for hardware design and verification (Lava) and cryptology (Cryptol).

• Formal methods for CAD (routing) and dynamic reconfiguration (reconfiguration controllers).

• Formal notations/representations for HW/SW co-design and verification (e.g. Esterel)

• Property checking (PSL/Sugar)• IP-reuse (more powerful type systems la de Alfaro

and Henzinger)

Page 9: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Problems Challenges

• Customer requirements for migrating software into hardware (“salmon effect”):– determinism: multiple SW processes on RTOS vs. genuinely

concurrent HW– verification– isolation

• Customer requirements to trade-off HW/SW partitioning for products at different price points.

• Requirements for verification of SW+HW• Safe Dynamic Reconfiguration• Verification of control-based systems

Page 10: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

LocalLink (Point to Point)

Page 11: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Aurora (Link Layer Protocol)

Page 12: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

TX of 10 Gigabit Ethernet MAC

Page 13: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Verify RX Control Signals

Page 14: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Safe Dynamic Reconfiguration

Page 15: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

JPEG2000 Platform

Page 16: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Video Monitoring Application

Page 17: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Bus Based Reconfiguration

Page 18: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Bus Based Reconfiguration

Page 19: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Bus Based Reconfiguration

Page 20: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Single Specification for Hardware and Software

HW/SW agnostic specification void uart_device_driver (){.....} uart.c

VHDL, Verilog -> hardware implementation

C -> software implementation

Page 21: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Embedded Developer Kit

Page 22: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Configuration

0101110001110001110100111001100100111000111001010110001110001110

New .bit File0101110001110001110100111001100100111000111001010110001110001110

.mem File

DATA2BRAM

0101110001110001110100111001100100111000111001010110001110001110

ELF File

# CPU address space 0xFFFFE000 - 0xFFFFFFFF. ADDRESS_BLOCK dramctlrBUS_BLOCK [0xFFFFF000:0xFFFFFFFF] xrefdes/dramctlr/bram0 [7:0] LOC=RAMB16_X0Y0;xrefdes/dramctlr/bram1 [15:8] LOC=RAMB16_X1Y0;xrefdes/dramctlr/bram2 [23:16] LOC=RAMB16_X2Y0;. . .

END_BUS_BLOCK; END_ADDRESS_BLOCK;

BlockRam Memory Map (.bmm)

0101110001110001110100111001100100111000111001010110001110001110

.bit File

Page 23: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 24: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

FSM Specification

Page 25: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Esterel Specification

Page 26: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

FIFO Extract

Page 27: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Concurrent Loops

Page 28: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Orthogonality

• Orthogonal language constructs for:– Sequencing– Concurrency– Waiting– Pre-emption

• Freely mixable at any level.• “Things are only written once.” Gérard Berry.

Page 29: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Esterel Studio

Page 30: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Creating design

Via Safe State Machines Via Esterel code

loop[ await A || await B ] ;emit O

each R

Page 31: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 32: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 33: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 34: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification
Page 35: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Code generation

Esterel design void uart_device_driver (){.....} uart.c

VHDL, Verilog -> hardware implementation

C -> software implementation

Page 36: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Hardware UART XC2V1000

Page 37: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Direct use in SoC

Page 38: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Soft UART MicroBlaze XC2V1000

Page 39: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

sender

Page 40: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

parallel to serial shift

Page 41: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

receive

Page 42: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

serial to parallel

Page 43: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

FIFO

Page 44: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

UART without bus interface

Page 45: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

OPB Protocol

M1_BE Byte enable

Page 46: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

UART with OPB Interface

Page 47: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Generated circuit

Esterel UART Lite :912 LUTs385 flip flops

Page 48: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Comparison with Original CoreGen IP

CoreGen UART Lite IP :100 LUTs51 flip flops9 times smaller !

Page 49: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Verification by simulation

Page 50: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Verification with Observers

Observed system

Systemmodel Observer

VerifierBUG is possibly

emittedBUG is always

emitted

BUG is never emitted

BUG

Inputs

Outputs

Page 51: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Verification engines

• 2 proof engines available inside Esterel Studio

– Built-in verifier : TiGer• BDD technique

– Prover Plug-in• SAT technique

Page 52: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Formal verification

Of the FIFO :

proving that only a read access can make it exit the “full” state

Proven in less than 2 seconds

Page 53: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Specification of master behavior ...

Page 54: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

… slave

Page 55: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

and arbiter

Page 56: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

OPB Protocol violationse.g. Checking that RNW doesn’t change during a transaction :

Page 57: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Formal verification

Of the OPB slave interface :

proving that it won’t cause bus timeouts

Proven in less than 2 seconds

Page 58: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Formal verification

Using an internal observer to access internal signals

No constraint on input signals

Of the FIFO : proving that only initialized data is returned

Proven in 30 seconds

Page 59: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Interactive Deadlock Demo

Page 60: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Other examples (LocalLink, Aurora, ...)

Page 61: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Positive Conclusions

• Control-based calculations can be implemented in hardware using a software style specification in Esterel (“computing without processors”).

• Synchronous observers provide an additional verification technique to simulation, assertion languages (Sugar/OpenVERA etc.) and permits co-verification.

• Co-synthesis allows HW/SW trade-offs to be explored.• VHDL/RTL provide poor interface between high systems

and back-end tools.

Page 62: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

Next Steps

• Currently working on:– Xilinx Link Layer protocol (LocalLink, Aurora).– TX portion of 10 gigabit ethernet MAC.

• Wire-speed high level processing of gigabit and 10-gigabit traffic.

• Language enhancements to better support HW design.

• Interface synthesis (a la CoWare)• Control for System Generator

Page 63: Co-Design and Co-Verification using a Synchronous Language · Co-Verification using a Synchronous Language Satnam Singh ... • Synchronous observers provide an additional verification

System Generator

HDL co-simulation

Hardware in the loopco-simulation

System Generator extends Simulink to support external simulation engines

•Hardware acceleration•Mixed-mode HDL/data flow