Presentation is loading. Please wait.

Presentation is loading. Please wait.

5 Mar 001animation check Animation check for on-line presentations Ellen M. Sentovich.

Similar presentations


Presentation on theme: "5 Mar 001animation check Animation check for on-line presentations Ellen M. Sentovich."— Presentation transcript:

1 5 Mar 001animation check Animation check for on-line presentations Ellen M. Sentovich

2 5 Mar 002animation check Introduction l This is a short presentation to test animation capabilities in the video-presentation-on-web process. l Disclaimer: –The slides are taken from several different presentations on similar topics, and now make no sense whatsoever. –The author accepts no responsibility for the use of their content in any design flows. l Many types of animation are mixed together on purpose. –The author accepts no responsibility for viewers who may be subsequently overwhelmed or confused by the images.

3 5 Mar 003animation check Outline l Technology & tool overview –Esterel : capabilities, example –ECL : language, compiler, capabilities, example –EsterelStudio –Graphical formalism (SyncCharts) –Development tools (code generation, simulation, verification)

4 5 Mar 004animation check People l ECL –CBL : Luciano Lavagno, Ellen Sentovich, Roberto Passerone l Esterel –CMA (France) : Gérard Berry et al –CBL has a research contract with CMA l EsterelStudio –Simulog (France) –Research project (French gov’t) with Cadence

5 5 Mar 005animation check Esterel l Features –Language: efficient for specifying state machines –signal communication, pre-emption, concurrency –Semantics: formal, clean, underlying deterministic FSM –advanced analysis tools available –HW or SW implementation possible –Compiler: well-developed (10+ years), implicit (efficient) –Tools : graphical simulation, verification, code generation –free access to binaries

6 5 Mar 006animation check Esterel : example Specification: “Wait until both A and B have occurred, then output O, unless the reset R occurs” A B/O B A/O AB/O R R R Number of states: exponential in inputs [await A || await B] ; emit O abort when R loop end Explicit state machine:Esterel : Each reactive notion written once concurrencypre-emption

7 5 Mar 007animation check ECL compilation Implementation in HW / SW ECL Specification Esterel CodeC - code C functions data handling reactive control Simulation Model Esterel Compiler to C Esterel Compiler to C/FSM

8 5 Mar 008animation check ECL : example Specification: “Wait until both A and B have occurred, then output O, unless the reset R occurs” [await A || await B] ; emit O abort when R loop end Esterel : concurrency pre-emption while (1) { } do { } abort(R); emit(O); par await A; par await B; ECL:

9 5 Mar 009animation check De-proprietrized Flows file.a file.b file.c Result 1 Demo 1 Analysis 1 Analysis 2 Demo 3 A program Analysis 3 Opt 1 Demo 2 Toolbox !

10 5 Mar 0010animation check De-proprietrized Flows file.a file.b file.c Result 1 A program Analysis 1 Analysis 2 Demo 4 Analysis 3 Opt 1

11 5 Mar 0011animation check Example : pre-compilation typedef { byte hdr[HSIZE]; byte data[DSIZE]; int crc; } frame_t; module frame_proc (input byte in, output frame_t out) { signal frame_t frame; signal int bad_crc; byte buf[SIZE]; frame_t f; int crc; par { while (1) {/* get bytes into frame */ for (i = 0; i < SIZE; i++) {await (in); buf[i] = in;} create_frame_from_buffer(&f, buf); emit (frame, f); } while (1) {/* check CRC */ await (frame); for (i = 0; i < HSIZE; i++) crc ^= frame.hdr[i]; if (crc != frame.crc) emit (bad_crc); } while (1) {/* process address (if correct) */ await (frame); do { /* … */; emit (out, frame) } abort (bad_crc); } C data type Pre-emption Non-reactive loop Reactive loop Concurrency

12 5 Mar 0012animation check Example : post-compilation typedef { byte hdr[HSIZE]; data[DSIZE]; int crc } frame_t; void crc_compute(int crc, frame_t frame) { for (i = 0; i < HSIZE; i++) crc ^= frame.hdr[i]; } /* plus interface functions such as set_buffer_i */ module frame_proc: input in : byte; output out : frame_t; signal frame : frame_t, bad_crc:integer in var buf : frame_t, crc:integer in loop % get bytes into frame trap DONE in cnt := 0; loop {await in; set_buffer_i(buffer, i, in); if (cnt < SIZE) else exit DONE end if;} end loop emit frame(?buffer); end trap; end loop || loop % check CRC await frame; crc_compute(crc, frame); if (crc != get_frame_crc(frame) then emit bad_crc end if; end loop || etc Compiled to C Compiled to Esterel Reactive loop Non-reactive loop


Download ppt "5 Mar 001animation check Animation check for on-line presentations Ellen M. Sentovich."

Similar presentations


Ads by Google