Hardware description language-embedded regular expression...

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

06684381

ABSTRACT:

COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
This invention relates generally to the field of hardware description languages. More particularly, this invention relates to a method of providing regular expression support for module iteration (instantiation) and interconnection in hardware description languages.
BACKGROUND OF THE INVENTION
A hardware description language (HDL) is a computer language used to describe electronic circuits. The description can describe the circuit at a number of different levels. For example, a hardware description language can be used to describe the interconnection of modules, sub-modules, transistors, resisters, capacitors, etc. Hardware description languages can also be utilized to describe the logical operation of logic gates, flip-flops and the like in digital systems and to describe the transfer of vectors of information between registers.
One of the most popular hardware description languages is the IEEE standard Verilog™. In this, and other HDLs, when multiple iterations of the same type of component (module) are used in a particular arrangement and interconnected with one another and/or other types of modules, an individual description of each module “instance” of each module type is generated to represent the particular module instance and it's interconnection. Manually generating each iteration of a particular module type can be quite tedious. So, the IEEE, in its current working draft of IEEE 1364 (draft 5) Verilog™ proposal (See IEEE Proposed Standard 1364-2000 (Draft 5) “IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language”, IEEE, Inc., New York, N.Y., USA, March, 2000, and “IEEE Standard 1076-1993 IEEE VHDL Language Reference Manual”, IEEE, Inc., New York, N.Y., USA, Jun. 6, 1994) proposes a standard technique using preprocessing at the interconnect level in a “for loop” to achieve iteration and interconnection. The example provided in this proposal is repeated below as EXAMPLE 1 for convenience:
genvar i;
generate
for (i=0; i<4; i=i+1)
begin:word
sms_16b216t0 p
(.clk
(clk),
.csb
(csx),
.ba
(ba[0]),
.addr
(adr[10:0]),
.rasb
(rasx),
.casb
(casx),
.web
(wex),
.Udqm
(dqm[2*i+1]),
.ldqm
(dqm[2*i]),
.dqi
(data[15+16*i;16*1]),
.dev_id
(dev_id3[4:0])
);
EXAMPLE 1
In this example, a module named sms

16b216t0 is to be instantiated and interconnected four times as the variable “i” is iterated from values 0 through 4. Each of the lines following the first line represents a port on the module with signal names, as will be appreciated by those familiar with Verilog™.
Unfortunately, “for loops” and “generate loops” suffer from several disadvantages. The use of “for loops” in preprocessing was added as an extension to the Verilog language in response to the user community's desire to provide a capability similar to that of the VHDL “generate loop”. However, “for loops” and “generate loops” can be burdensome and inefficient to code. In addition, when “for loops” and “generate loops” are used in preprocessing to generate the instances and connections, but the connection specification still has to be checked against the modules being connected to assure that the preprocessing was specified successfully. This is because the interconnect module signals are not developed from the modules being interconnected. Instead, the interconnection module signal specification is checked against the modules being interconnected. This leads to potential errors that can reduce the efficiency of the coding of the interconnection.
It is generally recognized as good hardware design practice to use the same signal name in a receiving module as in a transmitting module (see for example, M. Keating and P. Bricaud, “Reuse Methodology Manual”, Kluwar Academic Publishers, 1999. ). For example, if the clock signal name in the design for a clock-generating module is “CK”, use of “CK” as the signal name for the corresponding nets on modules that receive that clock signal makes the net function clear to anyone reading the design description. This accepted practice has prompted many designers to develop a program that automatically generates a module that interconnects sub-modules. Designers in many development labs have turned to preprocessors, outside of the standard HDLs (Verilog or VHDL) language definition, to automatically generate interconnect HDL modules. These preprocessors are generally written in the PERL language, and may invoke PERL's support of regular expression matching. They often combine input-output port naming of the interconnected sub-modules with rules supplied from another file.
BRIEF SUMMARY OF THE INVENTION
The present invention relates generally to a regular expression support for hardware description languages and methods therefor. Objects, advantages and features of the invention will become apparent to those skilled in the art upon consideration of the following detailed description of the invention.
In accordance with an exemplary embodiment, a method consistent with the invention of iterating instances and connections in a Hardware Description Language include: receiving hardware description language (HDL) code with embedded regular expressions to define instances and interconnections of a module; identifying the regular expressions within the code; and elaborating the instances and interconnections of the module based upon the regular expressions.
Another method of iterating instances and interconnections in a hardware description language consistent with an embodiment of the invention includes: providing Hardware Description Language (HDL) code using regular expressions to define instances and interconnections of a module; and instantiation and interconnection processing the HDL code by: analyzing the code to identify the regular expressions; applying HDL grammar rules to the code; generating a data structure corresponding to the module defined by the code; elaborating the data structure into instances and interconnections of the module defined by the regular expressions in the code; and generating HDL compliant text by traversing the instances and interconnections of the elaborated data structure and translating each instance and interconnection into HDL compliant text.
A computer system for processing Hardware Description Language (HDL) code consistent with embodiments of the invention includes a processor. An input circuit coupled to the processor receives HDL code having embedded regular expression descriptions of instances and interconnections. A storage arrangement is coupled to the processor for storing computer programs and data. A program receives the HDL code and elaborates the HDL code into explicit instances and interconnections describing a selected element of hardware.
In another embodiment consistent with the invention, an electronic storage medium stores instructions which, when executed on a programmed processor, carry out a process of iterating instances and interconnections in a Hardware Description Language (HDL) including: receiving Hardware Description Language code with embedded regular expressions to define instances and interconnections of a module; identifying the regular expressions within the code; and elaborating the instances and interconnections of the module based upon the regular expressions.
A method of describing a module in a Hardware Description Language (HDL) includes: providing a module name using HDL code; creating port descriptions for a port on the module using the HDL code; describing instantiation and interconnection of the module using regular expressions within the HDL code; and elaborating the module accordin

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

Hardware description language-embedded regular expression... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Hardware description language-embedded regular expression..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Hardware description language-embedded regular expression... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3261683

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