| Pointer Aliasing - Designing Hardware with C Based Languages |
|
|
|
| Written by SVTechie | |
|
By Venkat Krishnaswamy, co-founder and engineering director at Calypto Design Systems, California. Published on 11/14/2005 in EETimes With increasing design complexity and shortening time-to-market, hardware designers have sought to use higher levels of abstraction for both verification and design. For many hardware engineers, C-based languages (C/C++ or SystemC) have become a means to specify designs for verification, in addition to offering a starting point for implementation.
As designers increasingly use C to RTL design process, their success depends on the availability of a sound methodology and a set of guidelines for coding an effective specification model.
Analysis
From resource usage point of view, Hardware is static in nature, since design is burned into silicon forever. Every parameter & resource (for example, loop count, memory size etc) has to be pre-considered and precisely defined by system architects. There is no dynamic memory allocation in hardware*. Hence, Pointers to dynamically allocated storage should not be used, as mentioned in article also. But category #1 & #2 can be and should be supported fully**. User also can be requested to provide information (by using pragma or inline commands) to aid in the analysis of #3. Analyzing Pointer Aliasing at low level (as against Source Code analysis) is more simple and accurate as false dependencies can be easily detected and eliminated. There is good algorithm to perform Practical and Accurate Low-Level Pointer Analysis, and reference paper can be downloaded from Practical and Accurate Low-Level Pointer Analysis. Reference Material is provided at the end of this analysis also. *Note 1: Link Memory Managers (LMMs) provide some dynamic memory allocation. This allocation is buffer based and can be considered more static in nature. Anyway LMMs are part of interface description which can not be described efficiently in ANSI-C because of intricate timing dependence. Author firmly believes that ANSI-C will be used for algorithmic description only in next evolution of EDA tools. Interfaces will be eventually commoditized and become part of standard IP library. **Note 2: Category 3 may be handled if user provide extra information about nature of dynamic allocation. This information is readily available to systems architects anyway. But given the technology state, it can be deferred for later implementations. Technical Reference
Have Comments, Or want to discuss this article, please click here to visit Discussion Forum. Disclaimer, the evil necessity: Posted views are of author only and this website is no way responsible for any damages caused by usage of this information. |
|
| Last Updated ( Tuesday, 23 May 2006 ) |
| < Prev |
|---|


Articles 

