Structured algorithmic programming language approach to...

Computer-aided design and analysis of circuits and semiconductor – Nanotechnology related integrated circuit design

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C716S030000, C716S030000

Reexamination Certificate

active

06701501

ABSTRACT:

TECHNICAL FIELD
The present invention relates to a structured algorithmic programming language approach to system design. For a design unit, algorithmic programming language techniques simplify the specification of the interface and sub-design unit concurrency. A design tool interprets a structured programming language specification for the design unit and produces an equivalent lower-level specification coded, for example, in a hardware description language such as VHDL.
BACKGROUND
Computer hardware such as an electronic circuit can include thousands or even millions of tiny components. Designing computer hardware at the level of these tiny components is time-consuming and costly. Therefore, hardware designers often use design tools to simplify and speed up the process of designing computer hardware.
When using a design tool, a designer specifies a design unit in a way that abstracts away certain hardware details. For example, the designer might specify the overall behavior, timing, and structure of the design unit, while ignoring the actual low-level hardware components of the design unit. The design tool then transforms the higher-level specification into a lower-level specification that is closer to an actual hardware implementation. By shielding the designer from many of the complexities of the design unit, the design tool makes the design process shorter and more cost effective.
A design tool typically accepts a specification written in a hardware description language [“HDL”] such as VHDL or VERILOG®. A HDL is a language for specifying computer hardware. Most HDLs include specialized constructs and libraries that the designer uses to explicitly specify timing and structural details. Different design tools and HDLs work at different levels of abstraction. For example, behavioral synthesis tools and behavioral HDLs work at a relatively high level of abstraction. Even at a relatively high level of abstraction, however, the syntax of HDLs is awkward and using HDLs requires extensive training. For additional information about electronic design automation, behavioral synthesis tools, and HDLs, see John P. Elliott, Understanding Behavioral Synthesis, Kluwer Academic Publishers (1999).
Because HDLs are awkward and hard to learn, there is great interest in alternative design approaches that accept specifications as conceived by designers.
Designers are often familiar with a software programming language such as C or C++. To test the algorithmic behavior of a design unit, a designer might code a system-level specification for the design unit using a programming language. Converting the system-level specification into a HDL specification can be problematic, however. The system-level specification typically exists at a higher level of abstraction than the HDL specification and does not require or include details specifying hardware structure and concurrency. Moreover, the system-level specification can include software constructs (for example, pointers) that are difficult to translate to a hardware counterpart.
One way to overcome these difficulties is to make a programming language more HDL-like. For example, some design approaches start with a programming language such as C, and then add support libraries or impose HDL-like conventions, classes, and syntax on the programming language. Rather than simplify system design, these design approaches in effect force the designer to learn another HDL.
U.S. Pat. No. 6,226,776 [“the '776 patent”] describes another programming language design approach. The '776 patent describes specification of a design unit in a standard programming language (for example, ANSI C) without the use of specialized constructs and additional libraries. The '776 patent does not, however, describe an adequate way for a designer to include structurally meaningful organization in a programming language specification at the same time.
Thus, current programming language design approaches fail to realize the potential of a programming language approach to system design.
SUMMARY
The present invention relates to a structured, algorithmic programming language approach to system design. The design approach enables design, synthesis, and validation of structured, system-level specifications, and integrates system-level design into the rest of the design process. This makes the design process easier for system designers to learn and use, reduces the effort required to translate a system-level specification, and allows for fast, efficient simulation.
The algorithmic programming language design approach includes various techniques and tools, which can be used in combination or independently.
According to a first aspect of the design approach, the design approach operates at the algorithmic level of abstraction familiar to system-level designers, and does not require specialized syntax or constructs, training with additional libraries, or familiarity with hardware design. Thus, the design approach is intuitive to system designers. At the same time, the design approach is structured, and a programming language specification includes structurally meaningful organization. For example, the design approach includes techniques and tools for simplifying specification of a design unit interface in a programming language specification and/or simplifying specification of synchronization and sub-design unit concurrency for a design unit.
According to a second aspect of the design approach, the design approach leverages existing simulation technology for validation of a programming language specification at various stages of the design flow. For example, the design approach enables validation of the design unit at early stages in the design flow, which makes testing and debugging faster. The design approach also enables simulation of a programming language specification with pre-existing specifications and testbenches written in a HDL.
According to a third aspect of the design approach, a design tool synthesizes a programming language specification into a lower-level specification, for example, translating from the programming language to a HDL and embedding architectural details. The design tool thus simplifies the translation of an algorithmic, system-level specification to a lower-level specification. Because the programming language specification follows a structured programming language approach, the design tool interprets the programming language specification as having structural significance. For example, the design tool interprets an interface in a programming language specification as specifying a design unit interface in HDL. Or, based upon structural relationships implied in the programming language specification, the design tool generates code for handling sub-design unit concurrency and synchronization.


REFERENCES:
patent: 6053947 (2000-04-01), Parson
patent: 6226776 (2001-05-01), Panchul et al.
patent: 6457164 (2002-09-01), Hwang et al.
patent: 6484177 (2002-11-01), Van Huben et al.
patent: 6584601 (2003-06-01), Kodosky et al.
Ade, M; Lauwereins, Peperstraete, J.A.; “Hardware-Software Codesign with Grape”, Proceedings of the Sixth IEEE International Workshop on Rapid System Protyping, pp. 40-47, Jun. 1995.*
Rumbaugh, James et al.,Object-Oriented Modeling and Design, “Copyright Page,” “Table of Contents,” “Chapter 1: Introduction,” “Index,” Prentice-Hall, Inc., pp. ii, iii-viii, 1-14, and 491-500 (1991).
Shlaer, Sally et al.,Object Lifecycles: Modeling the World in States, “Copyright Page,” “Table of Contents,” “Chapter 1: Overview of Object-Oriented Analysis,” and “Index,” Prentice-Hall, Inc., pp. iv, v-viii, 1-9, and 245-251 (1992).
Elliott, J.P.,Understanding Behavioral Synthesis, “Table of Contents,” “Chapter 2: An Introduction to Behavioral Synthesis,” “Chapter 3: The Behavioral Synthesis Process,” “Chapter 4: Data Types,” “Chapter 5: Entities, Architectures, and Processes,” “Chapter 10: Functions, Procedures, and Packages,” “Chapter 12: Reusable Test Benches,” “Chapter 13: Coding for Behavioral Synthesis,” “Index,” Kluwer A

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Structured algorithmic programming language approach to... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Structured algorithmic programming language approach to..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Structured algorithmic programming language approach to... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3196418

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.