System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4...
Transcript of System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4...
![Page 1: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/1.jpg)
System-on-ChipDesignTransac5on-LevelModelingwithSystemC
Dr.HaoZhengComp.Sci&Eng.UofSouthFlorida
![Page 2: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/2.jpg)
Mo5va5on
• Whyusetransac?on-levelmodelingandESLlanguages?- Managegrowingsystemcomplexity- EnableHW/SWco-design- Speed-upsimula?on- Supportsystem-leveldesignandverifica?on
• Increasedesigners’produc?vity• Reducedevelopmentcostsandrisk• Accelerate?me-to-market&?me-to-money
2
![Page 3: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/3.jpg)
LevelsofAbstrac5on
3
4
EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin
A. "Specification model" "Untimed functioal models"
B. "Component-assembly model" "Architecture model" "Timed functonal model"
C. "Bus-arbitration model" "Transaction model"
D. "Bus-functional model" "Communicatin model" "Behavior level model"
E. "Cycle-accurate computationmodel"
F. "Implementation model" "Register transfer model"
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
Levels of Abstraction
• Consider models as a function of their time-granularity
* Figure and taxonomy by Gajski and Cai, UC Irvine
A. Specification Model
“‘Untimed’ Functional Models”
B. Component-Assembly Model
“Architecture Model”
“’Timed’ Functional Model”
C. Bus-Arbitration Model
“Transaction Model”
D. Bus-Functional Model
“Communication Model”
“Behavior-Level Model”
E. Cycle-Accurate Computation Model
F. Implementation Model
“Register-Transfer Level (RTL) Model”
EE382 – System-on-Chip Design - ESL Languages SPS-8 University of Texas at Austin
Specification Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Behaviors
Communication:
Variables
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b; v3= v1- b*b;
v1
v1 = a*a;
v2
v4 = v2 + v3;c = sequ(v4);
B1
B2
v3
B3
B4
B2B3
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
![Page 4: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/4.jpg)
Func5onalModel:Un5medorTimed
4
5
EE382 – System-on-Chip Design - ESL Languages SPS-9 University of Texas at Austin
Component-Assembly Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP
Communications:
Variable Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
cv2
cv12
cv11
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-10 University of Texas at Austin
Bus-Arbitration Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Communications:
Abstract Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
cv12
cv11
cv2
PE4(Arbiter)
3
1 2
1. Master interface2. Slave interface3. Arbiter interface
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
Computa5on–behaviorCommunica5on–abstractchannels
Anetworkofcommunica?ngsequen?alprocessesconnectedbyabstractchannels.
![Page 5: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/5.jpg)
BusFunc5onal/Arbitra5onModel
5
Computa5on–behavioral,approximately5medCommunica5on–protocolbuschannels
6
EE382 – System-on-Chip Design - ESL Languages SPS-11 University of Texas at Austin
Bus-Functional Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Communications:
Protocol Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b;B2
PE2
v1 = a*a;B1
PE1
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
PE4(Arbiter)
3
1 2
1: mast er i nt er f ace2: sl ave i nt er f ace3: ar bi t or i nt er f ace
readyack
address[15:0]data[31:0]
IProtocolSlav
e
ready
ack
address[15:0]
data[31:0]
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-12 University of Texas at Austin
Cycle-Accurate Computation Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Wrappers
Communications:
Abstract Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
PE3
cv12
cv11
cv2
3
1 2
1. Master interface2. Slave interface3. Arbiter interface4. Wrapper
S0
S1
S2
S3
S4
PE4
S0
S1
S2
S3
4
4
PE2
PE1
MOV r1, 10MUL r1, r1, r1
....
...MLA r1, r2, r2, r1
....
4
4
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
![Page 6: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/6.jpg)
6
CycleAccurateComputa5onModel
6
EE382 – System-on-Chip Design - ESL Languages SPS-11 University of Texas at Austin
Bus-Functional Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Communications:
Protocol Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b;B2
PE2
v1 = a*a;B1
PE1
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
PE4(Arbiter)
3
1 2
1: mast er i nt er f ace2: sl ave i nt er f ace3: ar bi t or i nt er f ace
readyack
address[15:0]data[31:0]
IProtocolSlav
e
ready
ack
address[15:0]
data[31:0]
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-12 University of Texas at Austin
Cycle-Accurate Computation Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Wrappers
Communications:
Abstract Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
PE3
cv12
cv11
cv2
3
1 2
1. Master interface2. Slave interface3. Arbiter interface4. Wrapper
S0
S1
S2
S3
S4
PE4
S0
S1
S2
S3
4
4
PE2
PE1
MOV r1, 10MUL r1, r1, r1
....
...MLA r1, r2, r2, r1
....
4
4
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
Communica?onisapproximately?med.
![Page 7: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/7.jpg)
7
Implementa5onModel
7
EE382 – System-on-Chip Design - ESL Languages SPS-13 University of Texas at Austin
Implementation Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Wrappers
Communications:
Buses/Wires
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
PE2PE1
PE3PE4
S0
S1
S2
S3
S4
MOV r1, 10MUL r1, r1, r1
....
...MLA r1, r2, r2, r1
....
S0
S1
S2
S3
MCNTRMADDRMDATA
interrupt
interrupt
interrupt
req req
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-14 University of Texas at Austin
Characteristics of the Different Models
* Figure and taxonomy by Gajski and Cai, UC Irvine
Models Communication time
Computation time
Communication scheme
PE interface
Specification model
no no variable (no PE)
Component-assembly model
no approximate variable channel abstract
Bus-arbitration model
approximate approximate abstract bus channel
abstract
Bus-functional model
time/cycle accurate
approximate protocol bus channel
abstract
Cycle-accurate computation
model
approximate cycle-accurate abstract bus channel
pin-accurate
Implementation model
cycle-accurate cycle-accurate bus (wire) pin-accurate
![Page 8: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/8.jpg)
DataflowModeling(SystemC-1,Chapter5)
• Actors–processes• communica?ons–FIFOchannels- Channelsarebounded.
• Comm.channelopera?ons–blockingread&write
8
Constant Adder Fork Printer
![Page 9: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/9.jpg)
9
BasicChannel:sc_fifo<T>
void read(T&);
T read();
bool nb_read(T&);
int num_available();
void write(const T&);
bool nb_write(const T&);
int num_free();
sc_fifo(int size=16);
sc_fifo(char* name, int size=16);
![Page 10: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/10.jpg)
10
PortsCompa5blewithsc_fifo<T>
sc_fifo_in<T>: support only read operations.
sc_fifo_out<T>: support only write operations.
Main PageMain Page | | Namespace ListNamespace List | | Class HierarchyClass Hierarchy | | Class ListClass List | | DirectoriesDirectories | | File ListFile List | | Namespace MembersNamespace Members | | Class MembersClass Members | |File MembersFile Members | | SSearch for earch for
sc_fifo_in< T > Class Template Referencesc_fifo_in< T > Class Template Reference#include <sc_fifo_ports.h>
Inheritance diagram for sc_fifo_in< T >:
List of all members.
Public TypesPublic Types
typedef T data_typedata_typetypedef sc_fifo_in_ifsc_fifo_in_if< data_typedata_type > if_typeif_type
typedef sc_portsc_port< if_typeif_type, 0 > base_typebase_typetypedef sc_fifo_insc_fifo_in< data_typedata_type > this_typethis_type
typedef if_typeif_type in_if_typein_if_typetypedef sc_port_bsc_port_b< in_if_typein_if_type > in_port_typein_port_type
Public Member FunctionsPublic Member Functions
sc_fifo_insc_fifo_in () sc_fifo_insc_fifo_in (const char *name_) sc_fifo_insc_fifo_in (in_if_typein_if_type &interface_) sc_fifo_insc_fifo_in (const char *name_, in_if_typein_if_type &interface_) sc_fifo_insc_fifo_in (in_port_typein_port_type &parent_) sc_fifo_insc_fifo_in (const char *name_, in_port_typein_port_type &parent_) sc_fifo_insc_fifo_in (this_typethis_type &parent_) sc_fifo_insc_fifo_in (const char *name_, this_typethis_type &parent_)
virtual ~sc_fifo_in~sc_fifo_in ()void readread (data_typedata_type &value_)
data_typedata_type readread ()bool nb_readnb_read (data_typedata_type &value_)
int num_availablenum_available () constconst sc_eventsc_event & data_written_eventdata_written_event () const
sc_event_findersc_event_finder & data_writtendata_written () constvirtual const char * kindkind () const
Static Public AttributesStatic Public Attributes
static const char *const kind_stringkind_string = "sc_fifo_in"
Private Member FunctionsPrivate Member Functions
sc_fifo_insc_fifo_in (const this_typethis_type &)this_typethis_type & operator=operator= (const this_typethis_type &)
template<class T>template<class T>
Main PageMain Page | | Namespace ListNamespace List | | Class HierarchyClass Hierarchy | | Class ListClass List | | DirectoriesDirectories | | File ListFile List | | Namespace MembersNamespace Members | | Class MembersClass Members | |File MembersFile Members | | SSearch for earch for
sc_fifo_out< T > Class Template Referencesc_fifo_out< T > Class Template Reference#include <sc_fifo_ports.h>
Inheritance diagram for sc_fifo_out< T >:
List of all members.
Public TypesPublic Types
typedef T data_typedata_typetypedef sc_fifo_out_ifsc_fifo_out_if< data_typedata_type > if_typeif_type
typedef sc_portsc_port< if_typeif_type, 0 > base_typebase_typetypedef sc_fifo_outsc_fifo_out< data_typedata_type > this_typethis_type
typedef if_typeif_type out_if_typeout_if_typetypedef sc_port_bsc_port_b< out_if_typeout_if_type > out_port_typeout_port_type
Public Member FunctionsPublic Member Functions
sc_fifo_outsc_fifo_out () sc_fifo_outsc_fifo_out (const char *name_) sc_fifo_outsc_fifo_out (out_if_typeout_if_type &interface_) sc_fifo_outsc_fifo_out (const char *name_, out_if_typeout_if_type &interface_) sc_fifo_outsc_fifo_out (out_port_typeout_port_type &parent_) sc_fifo_outsc_fifo_out (const char *name_, out_port_typeout_port_type &parent_) sc_fifo_outsc_fifo_out (this_typethis_type &parent_) sc_fifo_outsc_fifo_out (const char *name_, this_typethis_type &parent_)
virtual ~sc_fifo_out~sc_fifo_out ()void writewrite (const data_typedata_type &value_)bool nb_writenb_write (const data_typedata_type &value_)
int num_freenum_free () constconst sc_eventsc_event & data_read_eventdata_read_event () const
sc_event_findersc_event_finder & data_readdata_read () constvirtual const char * kindkind () const
Static Public AttributesStatic Public Attributes
static const char *const kind_stringkind_string = "sc_fifo_out"
Private Member FunctionsPrivate Member Functions
sc_fifo_outsc_fifo_out (const this_typethis_type &)this_typethis_type & operator=operator= (const this_typethis_type &)
template<class T>template<class T>class sc_fifo_out< T >class sc_fifo_out< T >
Member Typedef DocumentationMember Typedef Documentation
![Page 11: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/11.jpg)
DataflowModeling:Adder
11
template <class T>
SC_MODULE(DF_Adder) {
sc_fifo_in<T> din1, din2;
sc_fifo_out<T> dout;
void process() {
while (1)
dout.write(din1.read() + din2.read());
}
SC_CTOR(DF_Adder) { SC_THREAD(process); }
};
![Page 12: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/12.jpg)
DataflowModeling:ConstantGenerator
12
template <class T>
SC_MODULE(DF_Const) {
sc_fifo_out<T> dout;
void process() {
while (1) dout.write(constant_); }
SC_HAS_PROCESS(DF_Const);
DF_Const(sc_module_name N, const T& C) :
sc_module(N), constant_(C)
{ SC_THREAD(process); }
T constant_;
};
![Page 13: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/13.jpg)
DataflowModeling:Fork
13
template <class T>
SC_MODULE(DF_Fork) {
sc_fifo_in<T> din;
sc_fifo_out<T> dout1, dout2;
void process() {
while (1) {
T value = din.read();
dout1.write(value);
dout2.write(value);
}}
SC_CTOR(DF_Fork) { SC_THREAD(process); }
};
![Page 14: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/14.jpg)
DataflowModeling:Printer
14
template <class T>
SC_MODULE(DF_Printer) {
sc_fifo_in<T> din;
void process() {
for (int i=0; i < n_iter; i++) {
T value = din.read();
cout << name() << “ “ <<value<<endl;
}
done_ = true; return; // terminate
}
SC_HAS_PROCESS(DF_Printer);
DF_Printer(...) ... { SC_THREAD(process); }
};
![Page 15: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/15.jpg)
DataflowModeling:TopModule
15
sc_main(int argc, char* argv[]) {
DF_Const<int> constant(“constant”, 1);
DF_Adder<int> adder(“adder”);
DF_Fork<int> fork(“fork”);
DF_Printer<int> printer(“printer”, 10);
sc_fifo<int> const_out(“const_out”, 5);
sc_fifo<int> adder_out(“adder_out”, 1);
sc_fifo<int> feedback(“feedback”, 1);
sc_fifo<int> to_printer(“2printer”, 1);
feedback.write(42); // channel init.
...
}
![Page 16: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/16.jpg)
DataflowModeling:TopModule
16
sc_main(int argc, char* argv[]) {
...
constant.output(const_out);
adder.din1(feedback);
adder.din2(const_out);
fork.din(adder_out);
fork.dout1(feedback);
fork.dout2(to_printer);
printer.din(to_printer);
sc_start(); //No sim. time limit
return 0;
}
Port binding
![Page 17: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/17.jpg)
TimedModels
17
template <class T>
SC_MODULE(DF_Const) {
sc_fifo_out<T> dout;
void process() {
while (1) {
wait(200, SC_NS);
dout.write(constant_);
}
...
};
Computationaldelay
![Page 18: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/18.jpg)
TimedModels
18
template <class T>
SC_MODULE(DF_Adder) {
...
void process() {
while (1)
T data = din1.read() + din2.read();
wait(200, SC_NS);
dout.write(data);
}
...
};
![Page 19: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/19.jpg)
StoppingDataflowSimula5on
• Executethemodelforafixednumberofitera?ons–thenstopsimula?on.- Example:DF_printer
• OrletconstantgeneratorproducestopaTerproducinganumberoftokens.
• Iftermina?ondependsonthatmul?plemodulesfinish,thentheyoutputflagstoaterminatormoduletodecidewhethertostopsimula?on.
• For?medmodels,usesc_start() witha?melimit.
19
![Page 20: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/20.jpg)
Reading
• SystemC-1book,Chapter5.
20
![Page 21: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/21.jpg)
ConceptsofTLM
• Transac?on:asingleobjectthatincludessignalscarryingdataandprotocolstoallowdatatobetransferred.
• TLMseparatescomputa?onfromcommunica?on.- Separaterefinementsofcomp&comm.
• InaTLM,communica?onisdoneviafunc?oncalls.- Ex:burst_read(char*buf,intaddr,intlen);- Focusonwhatdatatotransferfromandtoloca?ons- Notabouthowdatatransferisimplemented.
21
![Page 22: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/22.jpg)
WhyTLM
• Highersimula?onspeedcomparedtoRTLmodels• Highermodelingaccuracycomparedtofunc?onalmodelsforevalua?ngdesignproper?es.
• ATLMcanintegratebothSWandHWmodels.- Provideapla`ormforearlySWdevelopment.- Earlysystemexplora?onandverifica?on
22
![Page 23: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/23.jpg)
SupportTLM:InterfaceandChannel
• Aninterfacedeclaresaccessmethodstochannels• Achannelimplementsaccessmethodsdeclaredintheinterfacesinheritedbythechannel.
• Adesignmodelcanchoosefromdifferentchannelsaslongastheyallimplementthesameinterfaces.
• Separa?onofinterfacesandchannelsfacilitatesdesignspaceexplora?onandrefinement.
23
![Page 24: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/24.jpg)
Func5onalModel:Un5medorTimed
24
5
EE382 – System-on-Chip Design - ESL Languages SPS-9 University of Texas at Austin
Component-Assembly Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP
Communications:
Variable Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
cv2
cv12
cv11
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-10 University of Texas at Austin
Bus-Arbitration Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Communications:
Abstract Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
cv12
cv11
cv2
PE4(Arbiter)
3
1 2
1. Master interface2. Slave interface3. Arbiter interface
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
Computa5on–behaviorCommunica5on–abstractchannels
Anetworkofcommunica?ngsequen?alprocessesconnectedbyabstractchannels.
![Page 25: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/25.jpg)
BusArbitra5onModel
25
5
EE382 – System-on-Chip Design - ESL Languages SPS-9 University of Texas at Austin
Component-Assembly Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP
Communications:
Variable Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
cv2
cv12
cv11
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
EE382 – System-on-Chip Design - ESL Languages SPS-10 University of Texas at Austin
Bus-Arbitration Model
* Figure and taxonomy by Gajski and Cai, UC Irvine
Objects:
Computation:
Processors
Memories
IP, arbiters
Communications:
Abstract Bus Channels
Composition:
Hierarchy
Execution Order
Sequential
Parallel
Pipelined
States
Synchronization:
Notify/Wait
v2 = v1 + b*b;B2
PE2
v1 = a*a;
B1
PE1
v3
v3= v1- b*b;B3
v4 = v2 + v3;c = sequ(v4);
B4
PE3
cv12
cv11
cv2
PE4(Arbiter)
3
1 2
1. Master interface2. Slave interface3. Arbiter interface
Computation
Communication
A B
C
D F
Un-timed
Approximate-timed
Cycle-timed
Un-timed
Approximate-timed E
Cycle-timed
Abstractchannelsareimplementedinanabstractcommunica?onstructure.
![Page 26: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/26.jpg)
ASimpleBusDesign
26
class bus_if: virtual public sc_interface { public: virtual void burst_read ( char* data,
unsigned addr, unsigned len) = 0;
virtual void burst_write ( char* data,
unsigned addr, unsigned len) = 0;
}
Howmanycycleswouldbeneededtotocompleteabursttransac?oninaRTLmodel?
![Page 27: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/27.jpg)
ASimpleBusDesign
27
class simple_bus : public bus_if, public sc_channel
{ public: simple_bus(sc_module_name nm, unsigned mem_size,
sc_time cycle_time) : sc_channel(nm), _cycle_time(cycle_time) {...}
~simple_bus() {...} virtual void burst_read(...) {} virtual void burst_write(...) {} protected: char* _mem; sc_time _cycle_time; sc_mutex _bus_mutex; // ensure exclusion access to _mem }
![Page 28: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/28.jpg)
sc_mutex
28
sc_mutex name; name.lock(); // lock the mutex int name.trylock(); // non-blocking lock
// return 0 for success // return -1 otherwise
name.unlock(); // free a locked mutex.
![Page 29: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/29.jpg)
ASimpleBusDesign
29
virtual void burst_read( char* data, unsigned addr unsigned len)
{ _bus_mutex.lock(); // Block the caller for the data xfer // Modeling mem read delay
wait (len * _cycle_time); // xfer data memcpy(data, _mem + addr, len); _bus_mutex.unlock(); }
![Page 30: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/30.jpg)
ASimpleBusDesign
30
virtual void burst_write( char* data, unsigned addr unsigned len)
{ _bus_mutex.lock(); // Block the caller for the data xfer // Modeling mem write delay
wait (len * _cycle_time); // xfer data memcpy(_mem + addr, data, len); _bus_mutex.unlock(); }
Arbitra'onisnotsupported.Anyideahowtodoit?
![Page 31: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/31.jpg)
Reading
• SystemC-1book,sec?on8.1–8.2.
31
![Page 32: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/32.jpg)
AdesignProblem:MatrixMul5plica5on
32
2
6664
b1,1 b1,2 · · · b1,kb2,1 b2,2 · · · b2,k...
.... . .
...bn,1 bn,2 · · · bn,k
3
7775
2
6664
a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n...
.... . .
...am,1 am,2 · · · am,n
3
7775 ·
=
2
6664
c1,1 c1,2 · · · c1,kc2,1 c2,2 · · · c2,k...
.... . .
...cm,1 cm,2 · · · cm,k
3
7775
where ci,j
=nX
x=1
ai,x
bx,j
![Page 33: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/33.jpg)
AdesignProblem:MatrixMul5plica5on
• Firststep,algorithmicmodeling–aCprogram.• Secondstep:transac?onlevelmodeling• Thirdstep:communica?onrefinement• Fourthstep:customHWimplementa?on• Fi9hstep:replaceCPUwithacycle-accurateinstruc?onsetsimulator- Willskipthisstep
33
![Page 34: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/34.jpg)
AdesignProblem:MatrixMul5plica5on
34
CPU CustomHW
Mem
![Page 35: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/35.jpg)
AdesignProblem:MatrixMul5plica5on
• Words–unsigned32-bitintegers.• Performanceconstraints- Memoryaccessoverhead:100cycles/access- Memoryread/writedelay:10cycles/word- CPUAdd:15cycles- CPUshiT:1cycle- CPUmul?ply:500cycles- Busxfer:1cycle/word- CustomHW:dependontheimplementa?on
35
![Page 36: System-on-Chip Design - University of South Florida · 2016. 10. 12. · Levels of Abstrac5on 3 4 EE382 – System-on-Chip Design - ESL Languages SPS-7 University of Texas at Austin](https://reader035.fdocuments.in/reader035/viewer/2022071515/6137ee3f0ad5d2067648f1a2/html5/thumbnails/36.jpg)
AdesignProblem:MatrixMul5plica5on
• CustomHWimplementa?on- mul?plica?on–variousop?miza?onsforperformance
- mul?/accumula?on- mul?plecopiesoftheaboveforparallelism
• Needtofinditsaverageperformancefores?ma?on.- needtorunitforalargesetofrandominputs.
36