System Development Models and Methods Dipl.-Inf. Mirko Caspar Version: 10.02.L.r-1.0-100929 Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System Synthesis Models CO mplex ncurrent rrect ordinated DESIGN 02-2 1
Designing Embedded Systems design structuring representation of requirements necessary for automation of design process chip - chip board board hardware software design steps scheduling allocation binding objects algorithms for HW and SW 02-3 HW/SW Codesign Process Specification System Synthesis SW Synthesis Interface- Synthesis HW Synthesis machine code netlist 02-4 2
Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System-Synthesis Models CO mplex ncurrent rrect ordinated DESIGN 02-5 Y-Chart Behavioural View Structural View Test View X-Chart Physical View 02-6 3
Example device: MP3 decoder ASIC (HW) system Behavioural View decode files with 32 256kBit, 32 Bit output quality, Structural View components for sample detection, configurable decoder, output registers algorithm description for each part, e.g. in C / Java detailed structure for different parts of system registertransfer complex modules and their data flow / communication register-transfer components and connections gate transistor differential equations transistors, resistors, wires, 02-7 Double-Roof-Model abstraction of Y/X-chart software hardware system module architecture block logic HW and SW design processes are equally structured 02-8 4
P-Chart dimension SW-Synthesis level system level algorithm level RT level view behaviour structure test geometry 02-9 Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System Synthesis Models CO mplex ncurrent rrect ordinated DESIGN 02-10 5
Synthesis software hardware behaviour system module architecture block logic structure synthesis = tasks for synthesis: allocation: select components binding: map functions to components scheduling: plan execution order 02-11 Example behaviour: Boolean equation synthesis f ab cd structure: netlist a b c d & & 1 f 02-12 6
Specification on System Level constraints task graph A B D C execution time < 200ms E 02-13 Allocation on System Level processor, dedicated hardware memory, I/O connection structures 02-14 7
Binding on System Level map tasks to resources A B C D E 02-15 Scheduling on System Level 02-16 8
Rating of Design Alternatives : criteria can not be improved without worsen another 1, 2, 4, 6 are 02-17 Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System Synthesis Models CO mplex ncurrent rrect ordinated DESIGN 02-18 9
Data Structures for algorithms (calculation l of optimisations) i are dedicated di d and formal models necessary data structures granularity detailing for optimisation parameters abstraction for manageability extendibility annotation by optimisation method output generation, if necessary for common optimisation 02-19 Graph modelling by graphs graph G = (V,E), E V x V set of vertices (nodes) V: operation, tasks, communication set of arcs (edges) E: dependencies between nodes example: G = (V,E) V = (A, B, C, D, E) E = ((A,B), (A,C), (B,E), (C,D), (D,E)) directed graph (A,B) (B,A) B A E D C 02-20 10
Control and Data Flow Models possible dependencies d to model by data structure t data dependency control dependency (caused by implementation) important models data flow graph (DFG) control flow graph (CFG) system modelling graphs (later) 02-21 Data Flow Graph (DFG) shows data dependencies between calculation or memory units (functions, variables, ALUs, ) directed edge, if a producer-consumer consumer relation between two nodes x = 3*a + b*b c; y = a + b*x; z = b c*(a + b); 02-22 11
Control Flow Graph (CFG) models control paths of algorithms directed graph with one start and one end node read(a,b) done = FALSE start instructions foo { read(a,b); done = false; repeat { if (a > b) a = a b; else if (b > a) b = b a; else done = true; } until done; write(a); } a = a-b a > b b > a b = b-a done!= TRUE write(a) done = TRUE true false branch end 02-23 Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System Synthesis Models CO mplex ncurrent rrect ordinated DESIGN 02-24 12
Models for System Synthesis problem graph nodes: functional and communication objects edges: dependencies architecture graph nodes: functional and communication resources edges: directed communication paths specification graph problem graph + architecture graph + 02-25 Problem Graph 1 2 1 2 5 3 3 6 7 4 communication nodes 4 DFG problem graph 02-26 13
Architecture Graph architecture architecture graph RISC RISC bus bus FPGA1 FPGA2 FPGA1 point-to-point link P2P communication resources FPGA2 02-27 Specification Graph weighting (different scenarios) 1 2 10 7 100 RISC 5 1 1 5 bus 3 6 5 3 100 FPGA1 7 P2P 4 problem graph possible mapping FPGA2 architecture graph specification graph 02-28 14
Example HW/SW partitioning ( ) HW HW bus bus processor processor architecture architecture graph only two blocks (HW and SW) 02-29 15