Abstract
A high-level concurrent model such as a SystemC transaction-level model can provide early feedback during the exploration of implementation alternatives for state-of-the-art signal processing applications like video codecs on a multiprocessor platform. However, the creation of such a model starting from sequential code is a time-consuming and error-prone task. It is typically done only once, if at all, for a given design. This lack of exploration of the design space often leads to a suboptimal implementation. To support our systematic C-based design flow, we have developed a tool to generate a concurrent SystemC transaction-level model for user-selected task boundaries. Using this tool, different parallelization alternatives have been evaluated during the design of an MPEG-4 simple profile encoder and an embedded zero-tree coder. Generation plus evaluation of an alternative was possible in less than six minutes. This is fast enough to allow extensive exploration of the design space.
Highlights
Advanced state-of-the-art applications such as multimedia codecs must achieve a high computational power with minimal energy consumption
All results were obtained on a Pentium 4 3.20 GHz with 1 GB RAM running RedHat Linux 2.4.21 with gcc 3.2.3, SystemC 2.1 and SPRINT 2.8.13
SPRINT has been applied during the design of a highthroughput and low-power custom chip [30] implementation of an MPEG-4 Simple Profile video encoder
Summary
Advanced state-of-the-art applications such as multimedia codecs must achieve a high computational power with minimal energy consumption. Extensive exploration of alternatives is typically not feasible, leading to an inefficient implementation To overcome this problem, we have implemented SPRINT, a tool that automatically generates an executable concurrent model in SystemC [8] starting from sequential code and user-defined directives. SPRINT is part of a systematic C-based design flow targeting the implementation of advanced streaming applications on multiprocessor platforms It benefits from preprocessing and high-level optimizations applied to the C code before partitioning and support the independent development and testing, potentially by multiple team members in parallel, of parts of the application after partitioning. With SPRINT, the validation of the concurrent behavior of the complete design was obtained in less than six minutes, including the generation of the model itself This fast verification path provides the possibility to identify conceptual design errors in an early stage of the design, avoiding expensive design iterations and resulting is a significant speed-up of the design.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.