throbber
United States Patent [19]
`Grant et al.
`
`US005971595A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,971,595
`Oct. 26, 1999
`
`[54] METHOD FOR LINKING A HARDWARE
`DESCRIPTION TO AN IC LAYOUT
`
`Synopsys, Inc., DesignWare Technical Bulletin, Jan. 1996.
`no pg #s.
`
`[75] Inventors: Douglas M. Grant, Edinburgh; John P.
`Gray, East Lothian, both of United
`Kingdom
`
`[73] Assignee: XilinX, Inc., San Jose, Calif.
`
`[21] Appl. No.1 08/840,341
`[22] Filed:
`Apr. 28, 1997
`
`Int. Cl.6 .................................................... .. G06F 17/50
`[51]
`[52] US. Cl. ................ ..
`364/488; 364/489
`[58] Field of Search ................................... .. 364/488, 489,
`364/490, 491, 578
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,469,003 11/1995 Kean ....................................... .. 326/39
`5,724,250
`3/1998 KerZman et al.
`364/488
`5,726,903
`3/1998 KerZman et al.
`364/489
`5,805,861
`9/1998 Gilbert et a1.
`.. 395/500
`5,850,348 12/1998 Berman ..............................
`364/488
`
`OTHER PUBLICATIONS
`
`Xilinx, Inc., “The Programmable Logic Data Book,” 1996,
`available Xilinx, Inc., 2100 Logic Drive, San Jose, Califor
`nia 95124. no pg #s.
`
`Synopsys, Inc., DesignWare Technical Bulletin, Apr. 1996.
`no pg #s.
`
`Synopsys, Inc., DesignWare Technical Bulletin, Jul. 1996.
`no pg #s.
`
`Synopsys, Inc., DesignWare Technical Bulletin, Oct. 1996.
`no pg #s.
`
`Synopsys, Inc., DesignWare Technical Bulletin, Jan. 1997.
`no pg #s.
`
`Primary Examiner—Kevin J. Teska
`Assistant Examiner—Leigh Marie Garbowski
`Attorney, Agent, or Firm—Edel M. Young
`
`[57]
`
`ABSTRACT
`
`A method and system for converting a hardware description
`language ?le which includes parameteriZed attributes into a
`product speci?cation with hardware properties generated
`based on the parameters used to create/instantiate cells
`de?ned by the hardware description language ?le. The
`hardware properties are used by design tools to perform such
`functions as pre-place cells, route cells, and control the
`con?guration of cells.
`
`19 Claims, 11 Drawing Sheets
`
`405
`Hardware
`Description
`with
`Parameter-
`.
`Zedb
`
`ttri utes
`
`Parameters
`
`400
`
`415
`
`410
`
`425
`
`\ Hardware \ WEigIOit
`’ Compiler ’
`.
`Propertles
`\
`
`I
`
`EDIF
`\ with
`Post-
`Processor ’ Evaluated
`-
`Properties
`
`420
`
`Place
`Rand
`(Jute
`Tool
`
`430
`
`Other
`Tools
`
`405
`Hardware
`Description
`with
`Parameter-
`ized
`Attributes
`
`Parameters
`
`400'
`Hardware
`Compiler
`that uses
`Parameter-
`ized
`Attributes
`
`425
`
`EDIE
`with
`Evaluated
`Properties
`
`XILINX, EX. 1016
`Page 1 of 17
`
`

`
`U.S. Patent
`
`011.26, 1999
`
`Sheet 1 0f 11
`
`5,971,595
`
`o2
`
`XILINX, EX. 1016
`Page 2 of 17
`
`

`
`XILINX, EX. 1016
`Page 3 of 17
`
`

`
`XILINX, EX. 1016
`Page 4 of 17
`
`

`
`XILINX, EX. 1016
`Page 5 of 17
`
`

`
`XILINX, EX. 1016
`Page 6 of 17
`
`

`
`U.S. Patent
`
`Oct.26, 1999
`
`Sheet 6 0f 11
`
`5,971,595
`
`— — Amibutes for place and route control
`
`—— Ona6216,with64by64oe11s. ..
`—— Therecanbe3rowsof10tapsand0ne0f9ifn_bits<11
`——
`1 r0w0f10taps andoneof9ifn_bits<27
`——
`lrowof 9tapsifn_bits<58
`- —
`lstmw
`2ndr0w
`— —
`lstrow
`2ndr0w
`- —
`3rdrow
`4throw
`
`4thr0w
`3rd10w
`Watchoutforoontmller!
`J 1C!
`
`justincase!
`
`BEGIN
`snnl : snnll GENERIC MAP (n -> n, n_taps => n_taps, c0eff=> coe?)
`PORT MAP(din =>din,clk=> clk,
`clra => cha, chb => clxb, bufselbar => bufselbar,
`dout => dout, addin => addin, sumout -> sumout,
`bufse1bardel=> bufselbardel);
`
`END stluctural;
`
`CONFIGURATION cfg_s1ml 1p_s1I OF 31ml 1p I3
`FOR structural
`END FOR;
`END cfg_srmllp_str,
`
`1315
`
`FIG. 3D
`
`XILINX, EX. 1016
`Page 7 of 17
`
`

`
`XILINX, EX. 1016
`Page 8 of 17
`
`

`
`U.S. Patent
`
`Oct. 26, 1999
`
`Sheet 8 0f 11
`
`5,971,595
`
`— — — Common text in normal typeface.
`— — — Text speci?c to post-conversion in bold
`
`(cell snnll_n8_n_taps5_coe?33 (cellType GENERIC)
`(property RTMAX (string "X1Yl") (owner “XACT6000"))
`(property BBOX (string "W1DE") (owner "XACT6000"))
`(view Netlist_representation (viewType NETLIST)
`(interface (port din (direction INPUT)) (port clk (direction INPUT))
`(port clra (direction INPUT)) (port clrb (direction INPUT))
`(port bufselbar (direction INPUT)) (port dout (direction OUTPUT))
`(port addin (direction INPUT)) (port sumout (direction OUTPUT))
`(port bufselbardel (direction OUTPUT))
`
`(contents
`( instance add
`(viewRef Net1ist_representation (cellRef seradd))
`(property RLOC (string "X4Y9")
`(owner "XACT6000"))
`
`)
`
`( instance bdel
`(viewRef Netlist_representation (cellRef FDC (libraryRef xc6000)))
`(property RLOC (string "X5Y9") (owner "XACT6000"))
`
`( instance ff
`(viewRef Netlist_representation (cellRef fdcp_place0_n_bits0))
`(property FLATTEN (string "") (owner "XACT60()()"))
`
`— — — instances ff_1 through ff_l0
`( instance ff_11
`(viewRef Netlist__representation (cellRef fdcp_place11_n_bits8))
`(property FLATTEN (string "") (owner "XACT6000"))
`
`( instance mul
`(viewRef Net1ist_representation (cellRef mult_n_bits8_coeff33))
`(property RLOC (string "X1Y1") (owner "XACT6000"))
`
`— — - net connections for signals "addin", "clk", "sumout", "z_1_"
`- - — through "z_1 1_", "bufselbardel", "bufselbar", "feedbackl ",
`____ "bout", "Cl-ta", "din",
`"ell-b",
`
`{500
`
`FIG. 5A
`
`XILINX, EX. 1016
`Page 9 of 17
`
`

`
`U.S. Patent
`
`Oct. 26, 1999
`
`Sheet 9 0f 11
`
`5,971,595
`
`— — — Placement (p=3) for an instance of the generic S-tap, 33 coef?cient snnl,
`— — — disclosed above, now that attributes have been added
`
`(cell sm1ll_n8_n_taps5__coeff33_p3 (cellType GENERIC)
`(view Netlist_representation (viewType NETLIST)
`(interface (port din (direction INPUT)) (port clk (direction INPUT))
`(port clra (direction H\TPUT)) (port clrb (direction INPUT))
`(port bufselbar (direction INPUT)) (port dout (direction OUTPUT))
`(port addin (direction INPUT)) (port sumout (direction OUTPUT))
`(port bufselbardel (direction OUTPUT))
`
`)
`(contents
`( instance srml
`(vieWRef Netlist_representation (cellRef
`srml 1_n8_n_taps5_coeff33))
`(property RLOC (string "X12YO") (owner "XACT6000"))
`
`— — — net connections for signals "din", "clk", "bufselbardel"
`— — — "bufselbar", "feedbackl ", "sumout", "clra", "dout",
`— — — "addin" and "clrb"
`
`)
`
`)
`
`)
`
`‘505
`
`FIG. 5B
`
`XILINX, EX. 1016
`Page 10 of 17
`
`

`
`U.S. Patent
`
`Oct. 26, 1999
`
`Sheet 10 0f 11
`
`5,971,595
`
`— — — SRML - 5 taps, 44 coefficients, no tap placement infonnation
`(Cell snnll_n8_n_taps5_coeff44 (cellType GENERIC)
`(property RTMAX (string "X1Y1") (owner "XACT6000"))
`(property BBOX (string "WIDE") (owner "XACT6000"))
`(view Net1ist_representation (viewType NETLIST)
`(interface (port din (direction INPUT)) (port clk (direction INPUT))
`(port clra (direction INPU'D) (port clrb (direction INPUT))
`(port bufselbar (direction INPUT)) (port dout (direction OUTPUT»
`(port addin (direction INPUT)) (port sumout (direction OUTPUT))
`(port bufselbardel (direction OUTPU'D)
`
`)
`(contents
`( instance add
`(viewRef Netlist_representation (cellRef seradd))
`(property RLOC (string "X4Y9") (owner "XACT6000"))
`
`( instance bdel
`(viewRef Net1ist_representation (cellRef FDC (libraryRef xc6000)))
`(property RLOC (string "X5Y9") (owner "XACT6000"))
`
`( instance ff
`(viewRef Netlist_representation (cellRef fdcp_p1ace0_n_bits8))
`(property FLATI‘EN (string "") (owner "XACT6000"))
`
`— — - instances ff_1 through ff_10
`( instance ff_11
`(viewRef Netlist_representation (cellRef fdcp_p1acel1_n_bits8))
`(property FLATTEN (string "") (owner "XACT6000"))
`
`( instance mul
`(viewRef Netlist_representation (cellRef mult_n_bits8_coeff44))
`(property RLOC (string "X1Y1") (owner "XACT6000"))
`
`— — - net connections for signals "addin", "clk", "sumout", "z_l_"
`— — — through "z_1 1_", "bufselbardel", "bufselbar", "feedbackl ",
`__ _ "bout", HClra", "din",
`HclrbH,
`
`{51°
`
`FIG. 5c
`
`XILINX, EX. 1016
`Page 11 of 17
`
`

`
`U.S. Patent
`
`Oct. 26, 1999
`
`Sheet 11 0f 11
`
`5,971,595
`
`— - — SRML with a tap at position (p=4) for a generic S-tap,
`- - — 44 coef?cient snnl de?ned above
`
`(Cell snnllp_n8_n_taps5_coeff44_p4 (cellType GENERIC)
`(View Netlist_representation (viewType NETLIST)
`(interface (port din (direction INPUT)) (port clk (direction INPUT))
`(port clra (direction INPUT)) (port clrb (direction INPUT))
`(port bufselbar (direction INPUT)) (port dout (direction OUTPUT))
`(port addin (direction INPUT)) (port sumout (direction OUTPUT))
`(port bufselbardel (direction OUTPUT))
`
`)
`(contents
`( instance srml
`(viewRef Netlist_representation (cellRef srml 1_n8_n_taps5_coeff44))
`(property RLOC (string "X18Y0") (owner "XACT6000"))
`
`— — — net connections for signals: "din", "clk", "bufselbar"
`—— —"sunout", "bufselbardel", "clra", "dout", "addin" and
`
`_ _ _ llclrbll
`
`)
`
`)
`
`)
`
`‘515
`
`FIG. 5D
`
`XILINX, EX. 1016
`Page 12 of 17
`
`

`
`1
`METHOD FOR LINKING A HARDWARE
`DESCRIPTION TO AN IC LAYOUT
`
`TECHNICAL FIELD
`
`The present invention relates to the ?eld of hardware
`description programming languages and the conversion of
`designs from a hardWare description to an integrated circuit
`layout.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`Xilinx, Inc. the assignee of the present application, manu
`factures logic devices. Although some devices are mask
`programmable, many devices manufactured by Xilinx are
`?eld programmable logic devices. A programmable logic
`device is an integrated circuit chip Which includes a plurality
`of programmable input/output pads, a plurality of con?g
`urable logic elements, and a programmable interconnect for
`interconnecting the plurality of logic elements. Further, each
`logic element includes a logic block Which implements a
`logic function of the n inputs to the logic block according to
`hoW the logic element has been con?gured. Logic functions
`may use all n inputs to the logic block or may use only a
`subset thereof. A feW of the possible logic functions that a
`logic element can be con?gured to implement are: AND,
`OR, XOR, NAND, NOR, NXOR and mixed combinations
`of these functions. The implementation and operation of
`logic devices made by Xilinx are described in “The Pro
`grammable Logic Data Book,” pages 4-1 to 4-372, copyright
`1996 by Xilinx, available from Xilinx, Inc., 2100 Logic
`Drive, San Jose, Calif. 95124. The contents of “The Pro
`grammable Logic Data Book” are incorporated herein by
`reference.
`As the density of logic devices increases, the complexity
`of possible designs that can be incorporated into a single
`device increases. By reusing existing designs from previous
`projects, designers are freed from having to “recreate the
`Wheel”, and are better able to concentrate on the neW aspects
`of their designs. Designers have created libraries of designs
`Which represent previously tested designs, but these knoWn
`libraries Were not automatically extendable to designs using
`a larger number of bits or designs With slightly different
`parameters. For example, knoWn libraries included designs
`for each bit siZe of a particular type of component, e.g.,
`adders from a single-bit adder to a thirty-tWo-bit adder. By
`including each of these designs separately, library siZes greW
`quickly. In static library con?gurations, despite the large
`library siZes, extending a library is aWkWard and involves
`using a library component along With design speci?c logic
`to create a custom piece, e.g., combining a single-bit adder
`With a thirty-tWo-bit adder to create a thirty-three-bit adder.
`This restrictive design methodology Which creates large
`libraries and semi-rigid designs is not easily adaptable to an
`increasingly dynamic design schedule Which requires faster
`turn-around times for designs. LikeWise, libraries Which
`include statically pre-routed components are not adaptable
`to changes in architecture or to a variation in shape of the
`unused components of an architecture.
`To help decrease design time, designers have turned to
`tWo important technologies: 1) programmable gate arrays
`and 2) hardWare description languages. Gone are the days of
`hardWired discrete components being used to implement
`circuits for printed circuit board-level designs. Designers
`noW use compact, highly integrated, VLSI chips to conserve
`board space and system poWer. HoWever, fabricating an
`ASIC also requires an increase in lead time to fabricate and
`test the ASIC to be used in a design. Xilinx sells a family of
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,971,595
`
`2
`?eld programmable gate arrays (FPGAs) that can be quickly
`programmed and reprogrammed by a designer to implement
`a particular logic function. Using FPGA-based boards,
`changes can be made to a design by simply reprogramming
`the appropriate FPGA, Without even removing the FPGA
`from its socket. This technique reduces design time.
`The use of hardWare description languages also reduces
`design time. Although schematic capture Was previously
`used to develop designs, hardWare description languages
`such as VHDL are noW capable of generating designs from
`logical descriptions of the functions Which are to be per
`formed by the circuit being built. It is believed that this more
`generaliZed and higher level approach alloWs designs to be
`created more compactly and to be analyZed more quickly. A
`hardWare description language is then compiled like a
`high-level programming language to produce a design ?le
`Which implements the speci?cs of the design. This design
`?le is either an intermediate design ?le Which is architecture
`independent, or it is a product speci?c design ?le, e.g., a
`design ?le speci?c to a gate array architecture or a FPGA
`architecture. When generating a product speci?c design ?le,
`the design compiler determines routes betWeen independent
`units in the design, and as the number of independently
`routed units increases, so does the time required to generate
`a neW or modi?ed design. Synopsys, Inc. of 700 East
`Middle?eld Rd. in Mountain VieW, Calif., provides a suite of
`tools Which support hardWare description languages. Tools
`produced by Synopsys, Inc. include DesignWare and FPGA
`Express. Details on DesignWare can be found in the January
`1996, April 1996, July 1996 and October 1996 editions of
`the DesignWare Technical Bulletin. The contents of each of
`these Technical bulletins is incorporated herein by reference.
`However, a signi?cant limitation of DesignWare is that it
`does not support user-speci?c, parameteriZed attributes
`Which can be converted to properties of instances of com
`ponents.
`
`SUMMARY OF THE INVENTION
`
`Accordingly, the present invention bene?cially over
`comes at least one of the above-identi?ed de?ciencies in
`knoWn systems. The present invention provides an improved
`method and system for linking a hardWare description to an
`integrated circuit layout.
`Brie?y, the preferred embodiment of the present invention
`is a method for operating a microprocessor, Where the
`method ultimately is embodied in code for controlling the
`microprocessor When the code is executed by the micropro
`cessor. The inventive method utiliZes parameteriZed
`attributes in a hardWare description language, a language
`compiler, and a post-processor for processing the output of
`the language compiler.
`According to the present invention, a hardWare design
`system is made more ef?cient and feature-rich by utiliZing
`parameteriZed attributes to augment high-level descriptions
`of logic functions. The parameteriZed attributes control
`pre-placement of inter-related logic components, an order of
`routing, aligning and grouping constraints, and the relative
`positions of components to each other. The attributes also
`include interconnection constraints such as a maximum
`length for Wires/buses Which interconnect components and
`Whether or not designs are to be compacted. When a
`component is generated from the library, parameters are
`speci?ed Which create a ?le representing an instance of the
`component, but the parameteriZed attributes are not added to
`the ?le. The ?le representing the instance is then post
`processed to add properties to the ?le based on the attributes
`
`XILINX, EX. 1016
`Page 13 of 17
`
`

`
`3
`stored in the original hardware description of the library. The
`post-processed ?le can then be used by back-end tools to
`pre-place or route the components based on their respective
`properties.
`Further, by implementing libraries of designs using the
`high-level, attribute-based descriptions used by the present
`invention, extendable libraries can be built Which accom
`modate variable parameters, e.g., Widths of adders.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`10
`
`The above and further aspects of the present invention
`Will become more clear to those skilled in the art in vieW of
`the best presently knoWn mode of carrying out the invention
`and the industrial applicability of the preferred embodiment
`as described herein and as illustrated in the several ?gures,
`Wherein:
`FIG. 1 is a schematic illustration of a computer system for
`performing the method of the present invention;
`FIG. 2 is a schematic illustration of an exemplary inte
`grated circuit architecture onto Which a hardWare description
`is mapped;
`FIGS. 3A to 3D are hardWare description listings of
`components Which are to be mapped onto the integrated
`circuit architecture of FIG. 2;
`FIGS. 4A and 4B are block diagrams of the interrelation
`ship betWeen tools used by the method of the invention;
`FIGS. 5A to 5D are portions of an EDIF generated from
`the hardWare description listings of FIGS. 3A to 3D after the
`listings have been processed according to the method of the
`present invention; and
`FIG. 6 is a schematic illustration of a mapping of high
`level components onto logic elements, Wherein the logic
`elements are assigned in a serpentine order.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`Referring noW to the draWings, Wherein like reference
`numerals designate identical or corresponding parts
`throughout the several vieWs, FIG. 1 is a schematic illus
`tration of a computer system for linking a hardWare descrip
`tion to an integrated circuit layout. A computer 100 imple
`ments the method of the present invention, Wherein the
`computer housing 102 houses a motherboard 104 Which
`contains a CPU 106, memory 108 (e.g., DRAM, ROM,
`EPROM, EEPROM, SRAM and Flash RAM), and other
`optional special purpose logic devices (e.g., ASICs) or
`con?gurable logic devices (e.g., GAL and reprogrammable
`FPGA). The computer 100 also includes plural input
`devices, (e.g., a keyboard 122 and mouse 124), and a display
`card 110 for controlling monitor 120. In addition, the
`computer system 100 further includes a ?oppy disk drive
`114; other removable media devices (e. g., compact disc 119,
`tape, and removable magneto-optical media (not shoWn));
`and a hard disk 112, or other ?xed, high density media
`drives, connected using an appropriate device bus (e.g., a
`SCSI bus or an Enhanced IDE bus). Also connected to the
`same device bus or another device bus, the computer 100
`may additionally include a compact disc reader 118, a
`compact disc reader/Writer unit (not shoWn) or a compact
`disc jukebox (not shoWn). Although compact disc 119 is
`shoWn in a CD caddy, the compact disc 119 can be inserted
`directly into CD-ROM drives Which do not require caddies.
`In addition, a printer (not shoWn) also provides printed
`listings of processed design ?les. The computer 100 may
`also control a programmer to program an external device
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,971,595
`
`4
`such as a programmable gate array. In some programmable
`gate array architectures, simply Writing to a con?guration
`memory in the programmable gate array is suf?cient to
`program it.
`As stated above, the system includes at least one computer
`readable medium. Examples of computer readable media are
`compact discs 119, hard disks 112, ?oppy disks, tape,
`magneto-optical disks, PROMs (EPROM, EEPROM, Flash
`EPROM), DRAM, SRAM, etc. Stored on any one or on a
`combination of the computer readable media, the present
`invention includes softWare for controlling both the hard
`Ware of the computer 100 and for enabling the computer 100
`to interact With a human user. Such softWare may include,
`but is not limited to, device drivers, operating systems and
`user applications, such as development tools. Such computer
`readable media further includes the computer program prod
`uct of the present invention for linking a hardWare descrip
`tion to an integrated circuit layout.
`FIG. 2 shoWs an exemplary integrated circuit architecture
`200 onto Which a hardWare description is to be mapped. For
`convenience and for illustrative purposes only, the descrip
`tion Will be given in terms of the XC6200 Family architec
`ture of FPGAs made by assignee, Xilinx, Inc. HoWever, the
`same design process is applicable to ASICs using standard
`iZed cells, to PALs, to GALs, etc. In the Xilinx XC6216
`device, there is a 64x64 hierarchical array of logic elements
`205. The loWest-level of the hierarchical array includes
`individual logic elements 205 With bidirectional connections
`210 to each neighboring logic unit. The bidirectional con
`nection 210 in the XC6216 is a pair of uni-direction Wires,
`but in an alternative embodiment, a single Wire With bidi
`rectional control is used. Groups of 4x4 logic element
`groups are arranged to form a second-level of the hierarchy,
`and 4 roWs and 4 columns of the 4x4 logic element groups
`de?ne the highest level of the hierarchy. The logic elements
`205 are coupled to external pins 215 through con?gurable
`I/O controllers 220. Such a structure is further discussed by
`Kean in US. Pat. No. 5,469,003, incorporated herein by
`reference.
`As an example of hoW a design can be mapped onto an
`architecture such as the architecture of FIG. 2, FIGS. 3A to
`3D shoW a series of VHDL statements 300, 305, 310 and
`315, respectively, from a library that describe part of an
`implementation of a ?nite impulse response (FIR) ?lter.
`Unlike knoWn libraries, the embodiment shoWn in FIG. 3A
`is not speci?c to a particular data siZe, number of taps or
`coef?cients. Rather, the implementation is described gener
`ally using variables to specify the data siZe, number of taps
`and coef?cients. To support this general parameteriZed
`approach, the de?nition includes a library entitled “XACT”
`and uses attributes.
`The de?nition of the “srmll” block of the FIR ?lter
`speci?es tWo constant attributes to be used by the present
`invention When creating each “srmll” block. These attributes
`are “bbox” and “rtmax” Which, respectively, control the
`aspect ratio (bounding box) and the maximum routing length
`used in the X and Y directions Within that block. Valid values
`for “bbox” are: WIDE, TALL, SQUARE or #Y#, e.g.,
`X12Y14. In FIG. 3A, the bounding box surrounding each
`instance of a “srmll” block is constrained to be “WIDE”. The
`general attribute “rtmax” is of the form X#Y#. HoWever, in
`FIG. 3A, the “srmll” blocks are constrained to use intercon
`nects Within the block Which are at most one unit long.
`Additional parameters used by the example are shoWn in
`FIG. 3B as part of the architectural de?nition of the “srmll”
`block de?ned in FIG. 3A. The ?rst attribute of FIG. 3B
`
`XILINX, EX. 1016
`Page 14 of 17
`
`

`
`5,971,595
`
`5
`indicates that the multiplier slice named “mul” is placed at
`a relative location compared to other elements in the block.
`The multiplier slice is placed at “X1Y1”, i.e., offset one unit
`in both the horiZontal and vertical directions from the origin
`of the block. The placement of the multiplier slice is
`independent of the parameters used to create the instance of
`the “srmll” block. On the contrary, although the adder is
`placed relatively to the other components (including the
`multiplier slice), the relative location of the adder in the
`vertical direction is dependent on the data siZe of the FIR
`?lter, i.e., based on the number of bits of data ?ltered by the
`FIR ?lter. Similarly, the “bdel” unit is offset by one unit
`horiZontally from the adder. It is also valid to specify a
`relative position based on a particular PORT by using the
`syntax “PORTJBTLRT’, Where one of B, T, L, and R is
`chosen to folloW “PORTi” depending on Whether the
`de?nition is based on the bottom, top, left or right,
`respectively, of the port. The last attribute of FIG. 3B is the
`“?atten” attribute associated With the ?ip-?ops generated in
`the gizGENERATE statement. This speci?es that the ?ip
`?ops are to be ?attened, i.e., grouped together by superim
`posing their layouts; to remove unused logic elements in a
`“srmll” block.
`FIGS. 3C and 3D shoW hoW the general de?nition of
`FIGS. 3A and 3B can be extended With further parameter
`iZed information using a tap placement parameter, p. Rather
`than having to build into the library the location of each
`possible tap for each FIR ?lter, the position of the taps can
`be expressed as a function of the desired tap position. It Was
`determined empirically that in the present design a “srmll”
`block is six logic elements Wide on a XC6216. Given that the
`XC6216 is 64 logic elements Wide, there can be at most 10
`“srmll” blocks across a band of the logic array. Depending
`on the number of data bits to be ?ltered by the FIR ?lter, a
`varying number of bands of “srmll” blocks can be placed in
`the array. According to the example of FIG. 3D, a designer
`has decided for his/her design that the FIR ?lter is not the
`only circuit to be placed in the XC6216, so the designer has
`chosen the “rloc” equation to avoid the corner corresponding
`to the highest numbered roW and the loWest numbered
`column. Also, in light of additional routing concerns, the
`“rloc” attribute of the tap of the FIR ?lter constrains the tap
`to be positioned only at roWs 0, 16, 32 and 48.
`FIG. 4A shoWs the relationship betWeen tools used at
`various stages in the design method of the present invention.
`A hardWare description ?le 405 that includes parameteriZed
`attributes, such as a VHDL ?le corresponding to FIG. 3A, is
`read by a hardWare compiler 400, such as DesignWare by
`Synopsys. The hardWare compiler 400 generates an EDIF
`415 from the hardWare description ?le 405, but the EDIF
`415 does not contain any properties corresponding to param
`eteriZed attributes. The EDIF 415 does, hoWever, include
`cell de?nitions for each of the cells generated by the
`hardWare compiler 400.
`The present invention then post-processes the cell
`instances generated by the hardWare compiler 400 Which are
`stored in the EDIF 415. The post-processor can be either a
`compiled or an interpreted program, but in the preferred
`embodiment the post-processor is implemented as a Perl
`script executed by a Perl interpreter. Perl is advantageous
`because of its compact but poWerful pattern matching func
`tions. To post-process the EDIF 415, the post-processor 410
`must also read the attributes from the original hardWare
`description ?le 405. The post-processor 410 parses and
`identi?es the attributes in the hardWare description ?le 405
`and maintains scope information on Which attributes affect
`Which types of cell instances. The post-processor 410 then
`
`5
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`reads the EDIF 415 and searches for cell instances Which
`have attributes to be converted into properties. To determine
`Which cell instances require attributes to be converted, the
`post-processor parses the grammar of the declarations in the
`hardWare description ?le 405 in the same Way that a C++
`compiler Would parse a C++ computer programming lan
`guage program. For ease of understanding, each ENTITY
`can be thought of as an object (e.g., a C++ object) With a set
`of interfaces. The simplest objects are de?ned ?rst and act as
`a basis for more complex objects. In FIG. 3A, the interface
`de?nition of a “srmll” block is given, including the attributes
`“bbox” and “rtmax”. Based on the interface, the implemen
`tation (i.e., architecture) of a “srmll” block is given. This
`implementation includes de?nitions for additional building
`blocks including “mult”, “seradd”, “fdc”, and “fdcp”, and
`further includes signals/connections betWeen the building
`blocks. The signals, shoWn in FIG. 3B, include “bout”, “Z”,
`“feedback1”, and “feedback2”. The post-processor reads in
`the “rloc” attributes for cells “mul”, “add”, and “bdel” and
`for cells generated using generator variable “gi”. As a
`C++compiler Would track class de?nitions and
`implementations, the post-processor 410 tracks the interface
`and implementation of each cell. Part of the information
`tracked is the scope of each variable so that the post
`processor 415 may determine the scope of an attribute When
`it is applied. From the de?nition of a “srmll” block, FIG. 3C
`de?nes an interface and an implementation of a “srmllp”
`block Which includes a “srmll” block de?ned in FIG. 3A, but
`also includes the “rloc” placement information de?ned in
`FIG. 3D.
`After the interface and implementation information has
`been analyZed by the post-processor 410, the post-processor
`then analyZes the EDIF 415 to determine Which cell
`instances need to have properties added based on the param
`eteriZed attributes of the hardWare description ?le 405. The
`post-processor 410 does this by looking for root names of
`cell instances for Which it has found attributes. The suf?x to
`the name indicates the parameters used When instantiating
`the cell instance. For example, in code 500 of FIG. 5A, the
`cell named “srmllin8initaps5icoeff33” is an instance of
`a “srmll” block that Was instantiated With n=8, nitaps=5
`and coeff=33. Generally this syntax can be described as:
`rooti?rstvar#isecondvar#, Where the number of variables
`is equal to the number of variables used to instantiate the
`instance. It should be noted that When using this syntax, to
`prevent interpreting part of the variable name as its invoca
`tion parameter, variable names cannot include numbers.
`Likewise, a hardWare compiler 400 may shorten a name to
`remove instantiation parameters When the ?rst instance of a
`cell is created. In cases such as these Where a cell is
`generated/instantiated inside a series of generate loops, the
`?rst instance Will be labeled “root”, and the subsequent
`instances have a label of the form “rooti#i#i#” Where
`there are as many numbers as there are loops in the series.
`In the example, if the post-processor 410 determines that
`attributes exist for “srmll” blocks—Which they do—then the
`properties are added, based on the scope of the attributes, as
`the cell instance is parsed. During the addition, the param
`eters used to instantiate the cell instance are also substituted
`into the parameteriZed attribute before Writing the attribute
`to an augmented EDIF. For example, in the case above of
`“srmllin8initaps5icoeff33”, variable “n” Would be
`replaced by 8, variable nitaps Would be replaced by 5, and
`variable coeff Would be replaced by 33. The entire resulting
`expression Would then be reduced to its simplest form. The
`result is an augmented EDIF or an EDIF With evaluated
`parameters 425. This EDIF With evaluated parameters 425
`
`XILINX, EX. 1016
`Page 15 of 17
`
`

`
`5,971,595
`
`15
`
`25
`
`7
`can then be used as an input to a place and route tool 420 or
`other tools 430. When the EDIF With evaluated parameters
`425 is applied to a place and route tool 420 before joining
`With other components of a design, routing time is reduced
`by limiting the initial routing to inter-related components.
`Although the above has been described in terms of a
`post-processing tool Which utiliZes an EDIF output 415 from
`a hardWare compiler 400 to generate an augmented EDIF
`425, the present invention also encompasses an integrated
`hardWare compiler tool 400‘ that converts a hardWare
`description ?le 405 directly into an augmented EDIF ?le
`With parameteriZed properties 425 as shoWn in FIG. 4B.
`As an eXample of the method of the present invention, it
`Will be described With reference to FIGS. 5A through 5D
`hoW tWo serial multiplier slices described by FIGS. 3A
`through 3D are created. A user chooses to have tWo serial
`multiplier slices created or instantiated. The ?rst serial
`multiplier slice is created using n=8, nitaps=5 and coeff=
`33, and the second serial multiplier slice is created using
`n=8, nitaps=5 and coeff=44. For the ?rst serial multiplier
`slice, a slice is also speci?ed at p=3, and for the second serial
`multiplier slice a slice is speci?ed at p=4. Together the
`parameters and the library With parameteriZed attributes are
`applied to the hardWare compiler 400. If the bold section of
`FIGS. 5A through 5D Were absent, then FIGS. 5A through
`5D Would shoW the EDIF 415. HoWever, Without the bold
`sections, FIGS. 5A through 5D Would not include any
`properties, only cell instances and netWork routing informa
`tion. (For clarity, the netWork information has been removed
`and

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket