JUCS - Journal of Universal Computer Science 13(13): 1972-2001, doi: 10.3217/jucs-013-13-1972
Hardware/Software Co-design and Verification Methodology from System Level Based on System Dependence Graph
expand article infoShunsuke Sasaki, Tasuku Nishihara, Daisuke Ando, Masahiro Fujita
‡ University of Tokyo, Tokyo, Japan
Open Access
Abstract
System Dependence Graph (SDG) is a graph representation which shows dependencies among statements / expressions in a design. In this paper, we propose a new HW/SW co-design methodology based on SDG. In our method, any combination of C / C++ / SpecC descriptions is acceptable as input designs so that design functions can be specified flexibly. First, the input descriptions are analyzed and verified with static but partially dynamic program checking methods by traversing SDG. With those methods, large descriptions can be processed. Next, those designs are divided into HW and SW parts. In this step, SDGs are fully utilized to insert parallelism into the designs, and it enables flexible HW/SW partitioning. The HW parts are further optimized and then converted into RTL descriptions by existing behavioral synthesis tools. Finally, the generated RTL descriptions together with the SW parts are compared to the original descriptions in order to make sure that they are logically equivalent. Also, designerspecified properties may be model checked with these final design descriptions. Such formal verifications can be realized by translating those descriptions into Finite State Machine (FSM) type representations and existing formal verifiers. We show two case studies with practical examples to demonstrate the usefulness of our approach.
Keywords
program slicing, hardware software co-design, hardware software coverification