110 likes | 227 Vues
This document presents an approach to extend the capabilities of the POLIS tool, particularly in supporting user-defined data types. Initially focused on the Two Chip Intercom project at BWRC, the paper discusses the limitations of the existing POLIS framework, which only accommodates basic integer types and lacks support for floats or user-defined structures. It outlines a proposed solution involving modifications to the SHIFT environment to incorporate these data types through auxiliary files and updated synthesis paths. The paper also covers current work and future enhancements aimed at automating type generation and improving user interaction.
E N D
EECS 249 Dec 4, 1999 Extending POLIS with User Defined Data Types Arvind Thirunarayanan
Overview • What is POLIS? • Design Flow • Project Description • Proposed Solution • Current/Future Work
What is POLIS? • System Design • initially HW/SW • function architecture co-design • Co-design environment • mixed system • specification, synthesis, estimation, verification • Embedded system
Design Flow - Simulation Path • Initial specification of embedded system • high level language - Esterel • compile into SHIFT • Read into POLIS • create/ optimize internal graph representation • generate C/Ptolemy code for each module • Functional/Performance simulation • validation to analyze performance • repartition to evaluate implementation
Design Flow - Synthesis Path • Read into POLIS • partition each module into hardware/software • Hardware • Translate into a hardware format like VHDL,BLIF • Optimize and write netlist • Software • create/ optimize internal graph representation • generate RTOS and C code for each module • Generate hardware and software implementation
Project Description • Motivation • Two Chip Intercom (TCI) Project at BWRC • Current POLIS • no support for user-defined data types • use of events • data of integer types only • workaround for floats • Project implementation • change SHIFT to include user-defined types • extend the changes through the synthesis paths
Esterel Auxiliary file SHIFT HW SW Proposed Solution • Aux file • type definitions • structs, arrays • SHIFT file • not just a bit • add type information • Synthesis path • translate to synthesized types • VHDL records
Proposed Solution • Aux file • type definitions • structs, arrays • SHIFT file • not just a bit • add type information • Synthesis path • translate to synthesized types • VHDL records File.aux typedef struct { int re; int im; } cplx; typedef array arr_name int 20;
Proposed Solution • Aux file • type definitions • structs, arrays • SHIFT file • not just a bit • add type information • Synthesis path • translate to synthesized types • VHDL records File.shift .net net_sender .inputs *i1 .outputs *o1(o1) .nb o1 0 … .end
Proposed Solution • Aux file • type definitions • structs, arrays • SHIFT file • not just a bit • add type information • Synthesis path • translate to synthesized types • VHDL records File.shift .net net_sender .type int 16 .type struct cplx re im .dt re int .dt im int .inputs *i1 .outputs *o1(o1) .dt o1 cplx … .end
Current/Future Work • Current changes in tool • implementation in SHIFT • code for automatic generation • SHIFT from user input • manual definition of translation • synthesis from SHIFT • Future work • generate type declaration for synthesis • currently done by hand • functions to access the data types