Sunteți pe pagina 1din 20

!"##$%&'(!)*#"*+#,!‘-.

!"#$!%&#'()

1 Enabling System Level Design


!"##$%&'(!/0-

* +,-,-.,#!(&#!-/00/()!/0!'(!1#(2/3,
4)',#(1,#".5,!-(3,55/)6!$/'0: Tool independent Infrastructure.

* 7#,,)8(90!:;<!"330=
• 8>)(10>0!4))(2"'(#!®!?(-1"'/./5/'>

• @"0/,#!'(!&0,!A/'B!"!0/)65,!'"#!."55!#,5,"0,

• C33/'/()"5!D&)9'/()"5/'>
* 4)95&3/)6!E@!F!/)!"!8>0',-?!.(G

* C50(!),A!D,"'&#,0!/)!7#,,)?()D/6
")3!7#,,)+,6

• ?(-1"'/./5/'>!D(#!H/#'&',9B!8/-/90!®
8>0',-?!%#/36,

AND Full support now available from Tool Vendors


2 Enabling System Level Design
1$2#"34'#(5!6&"7+$8!9:(2"#4;!&3!<=>?

* !,-(#>!!"11,3!%&00,0=
7#,,)8(90!9(-15,',3!'B,!I?JK4J!8LM!,"#5/,#!'B/0!>,"#
* C)3!)(A!A(#$/)6!()!('B,#!0/-/5"#!$/'0;

• ‘%"9$!,)3!/)',#D"9,0’=
7#,,)8(90!A(#$/)6!A/'B!!!!!!!!!!!!!!!!!!!!!!!")3!('B,#!5,"3!1"#'),#0!'(
.&/53!/)',#D"9,0!D(#=
* 7#"1B/90
* @'B,#),'
* F8%
* 8/6)"50!N/)',##&1'!,'9O
* 8,#/"5
* @'9
• H/#'&',9B!/0!(DD,#/)6!8/-/90®!3,0/6)!1"'',#)!")3!/)',#D"9,0!D(#!)()
-,-(#>!-"11,3!.&0!/)',#D"9,0;

* 7#,,)8(90!A/55!1#(2/3,!"!),A!‘/)',#D"9,!9B,9$,#!'((5’!D(#!"55
/)',#D"9,0;

3 Enabling System Level Design


6@42!+(!4!>&A#BB+$8!7+2C
Model Model
* P()!2"5&,!"33!K!Q>6/,),=
Tool

R; ?()D/6&#"'/() Environment
S; ?()'#(5
:; TL!!?()2,)/,)9,!0(9$,'0
• N%/)3K"./5/'>!9B,9$/)6U!1#('(9(5!),6('/"'/()U!-,-(#>!-")"6,-,)'U
,'9O
V; 4)',#D"9,!3,D/)/'/()0
• NJ?4,U!4)',#&1'0U!7#"1B/90U!F8%U!FC+TU!@'B,#),'U!,'9O;
• C55!W,)2/#()-,)'X!4YI!6(,0!2/"!'((5;
* ?#&9/"5!D(#!'((5!1#(2/3,#0
• +,Z&/#,0!/)',#D"9,0!")3![,)2/#()-,)'!15&6K/)0\;

* C55!#,Z&/#,3!K!)()!W9(#,X!,)6/),,#/)6;!NP,/'B,#!D(#!'B,!-(3,5!A#/',#U
)(#!D(#!'B,!'((5!1#(2/3,#O;

4 Enabling System Level Design


6@42!A&#(!!"##$%&'(!D&C

5 Enabling System Level Design


6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

Of course I have registers in my


My IP
IP block,

I want define them, and get


callbacks when they are
updated,
I want a rich framework of
callbacks, and complex register
My.code = in->here; types.
And I want it to be efficient and
work with all Tools!
(I want to be able to inspect
registers, set them, etc)

I don’t need to write another


decoder in my life!
TOOL INDEPENDENT
6 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

My IP

Test points
I want to see them in ANY tool I use

State
I want to see, and potentially manipulate
state in ANY tool I use

Configuration
I want to set configuration information
statically, and maybe dynamically
(In ANY tool I use)

TOOL INDEPENDENT
7 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

My IP

I want to use a configuration database


that works for ANY tool environment

And I need that to be rich -


programmable even.

TOOL INDEPENDENT
8 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

I want to quickly write some


My IPscripts inside my IP

Or..

TOOL INDEPENDENT
9 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

I want to write a quick test bench as a script.

My IP

TOOL INDEPENDENT
10 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

My IP
I want the interfaces on my device to
Use TLM-2.0
Handle Binadability - protocol negotiation
Sort out memory management
Allow for different abstraction levels
(Any dynamic switching)
And provide a nice easy ‘convenient’
interface.

OCP
For my protocol, I want to provide all these PCIe
features for people to use - e.g. a protocol Signal
‘kit’. Serial
Graphics

TOOL INDEPENDENT
11 Enabling System Level Design
6@#"#!A&#(!!"##$%&'(!+$3"4(2"9'29"#!@#B:C

My IP
When I use an interface, e.g. for the
output of my device,
I want some example ‘back
ends’ to connect it to!

And, they should work in all the


tools too!

We’re working
on this one!

TOOL INDEPENDENT
12 Enabling System Level Design
1$2#"34'#(!#*#"E,@#"#
“Back-end”
interface, device-
to-world

/01(2-34,553-
%7!

Interrupts
and reset
6,=3-CD=E2F
8G(=E2F
#"6 7H8(=,=3-C
!"#$

>7)$(<=,-

8G"78H !?O
User-interactive
809:;(<=,- IO simulations
running on same
809:M machine or
&.*,--N2* %78G remote machine

#$H ?"$"(@8A)B
%&'()*+,-.,*
Simulation

Host operating system


Devices that depend Remote
on time that can be physical
A&5I(&=E',(JK,
real-world or virtual
3.(+35*(L&5I Host hardware machine

13 Enabling System Level Design


F4'7!G$A!1$2#"34'#(

My IP Connection to the
host
Or to the user…
(in any tool)
Fault injection

GreenSocs Pre-recorded test


Interfaces scenarios
Based on
TLM-2.0 Logger
Technology.
My IP
‘Indirection router’ A model !
provided for each
interface
14 Enabling System Level Design
1$2#"34'#(5!6&"7+$8!9:(2"#4;!&3!)%H1

* ](#$/)6!A/'B!9(55".(#"'/2,!1"#'),#0=

* M,D/)/)6!/)',#D"9,0!AB/9B!D"55!(&'0/3,!'B,!9&##,)'!TL!KS;<!!,-(#>
!"11,3!%&0!W7,),#/9!J#('(9(5X;

* TB,!/)',#D"9,0!A/55!/)95&3,=
• J#('(9(5!95"00!3,D/)/'/()0!AB/9B!&0,!'B,!TL!KS;<!0'")3"#3;
• W?()2,)/,)9,!4JX!=
*J#('(9(5!+(&',#0
*J#('(9(5!9B,9$,#0
*%"9$!,)3![2/0&5/0"'/()\!9(-1(),)'0
* [],!"#,!9&##,)'5>!5(($/)6!"'=
* 7#"1B/90
* @'B,#),'
* F8%
* 8/6)"50!N/)',#&1'!,'9O
* 8,#/"5
* @'9
15 Enabling System Level Design
I$$&9$'+$8!1$2#"34'#!J"&2&'&B!H@#'7#"

• Based on a web, or text based protocol description description


• From the description we generate a full protocol state machine.
• The state machine can be used to check protocols
• Or, eventually, to generate protocol specific abstraction layer adapters.
• (This is still research).
• The protocol checker will cover:
1. phase propagations
2. return value correctness
3. timing annotation correctness
• The protocol checker state machine will offer a callback registration
mechanism to allow for any user defined checks

* ?&##,)'5>!/)!4)',#)"5!@)6/),,#/)6!%,'"

+,6/0',#!>(&#!/)',#,0'!)(A^
16 Enabling System Level Design
!"##$%&'(!K9(+$#((!;&A#B!#*&B92+&$0

Refined Collaborative
Infrastructure Infrastructure
with 2nd level Development
support

Supported
Tools and
Infrastructure
Vendors Users

17 Enabling System Level Design


!"##$%&'(!,&"7+$8!2&8#2@#"!3&"!%24$A4"A(0

tool Tool Users


Vendors

We all contribute
to standards. Pre-
existing GreenSocs
OSCI/SPIRIT
infrastructure will
help standards
bodies move faster
18 Enabling System Level Design
HH1!J"&A9'2

* ]/55!.,!D&55>!9(-1"'/./5/'>!A/'B
I8?4!??4;
* 4)',6#"'/()0!A/'B!"!)&-.,#
'((50;
• TB/0!-,")0!9&0'(-,#0!9")!9B((0,!'(!&0,=
* I8?4!??4!/)',#D"9,!3/#,9'5>;
* 7#,,)8(90!9()2,)/,)9,!5">,;
* I'B,#!@MC!'((5!2,)3(#0!&0,#!9()2,)/,)9,!5">,#0;
* J5&6/)0!"2"/5".5,!D(#=
• ?()D/6&#"'/()!3"'"."0,0!N/D!>(&#!'((5!3(,0!)('!"5#,"3>!B"2,!(),O
• C)"5>0/0!(&'1&'!'(!>(&#!'((50!8?H!/)',#D"9,
• 8&11(#'!D(#!T,-1(#"5!M,9(&15/)6!'B#(&6B!15&6/)0;
* ](#$0!A/'B!D&55!#")6,!(D!7#,,)8(90!-(3,5!/)D#"0'#&9'&#,;

* Q"0!,G/0'/)6!9&0'(-,#!."0,;

7#,,)8(90!(DD,#0!S)3!5,2,5!0&11(#'!")3!-"/)',)")9,!D(#!"!D&55!??4
/-15,-,)'"'/()U!6&"#")',,3!??4!9(-15/")9,!AB,)!0'")3"#3!/0!#,5,"0,3U
#,"3>!D(#!'((5!/)',6#"'/()!)(A;
19 Enabling System Level Design
L&"!;&"#!+$3&";42+&$5

B''1=YYAAA;6#,,)0(90;9(-Y

!"#$_6#,,)0(90;9(-

20 Enabling System Level Design

S-ar putea să vă placă și