US7784005B1 - Electronic circuit design viewer - Google Patents

Electronic circuit design viewer Download PDF

Info

Publication number
US7784005B1
US7784005B1 US11/151,984 US15198405A US7784005B1 US 7784005 B1 US7784005 B1 US 7784005B1 US 15198405 A US15198405 A US 15198405A US 7784005 B1 US7784005 B1 US 7784005B1
Authority
US
United States
Prior art keywords
lut
format
luts
modes
design
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/151,984
Inventor
Roger Ng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to US11/151,984 priority Critical patent/US7784005B1/en
Assigned to XILINX, INC. reassignment XILINX, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NG, ROGER
Application granted granted Critical
Publication of US7784005B1 publication Critical patent/US7784005B1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics

Definitions

  • the present invention generally relates to electronic design tools.
  • a design entry tool allows a user to specify the functional characteristics of an electronic circuit.
  • Example design entry tools include high-level modeling systems, hardware description languages, and schematic capture. Once the design is specified, a synthesis tool may be applied to the high-level design to generate a netlist. And from the netlist, the design may be simulated or mapped to a particular device or chip technology.
  • FPGAs field programmable gate arrays
  • FPGAs include lookup tables that are programmable to implement various logic functions. After device mapping, the design data includes initialization values for the LUTs used to implement the design.
  • the initialization values of LUTs may be useful for debugging designs. For example, when analyzing and adjusting a design for conformance to maximum delay parameters, it may be useful to combine, if feasible, the logic implemented on two LUTs into a single LUT since each LUT has a constant delay.
  • the initialization value of the LUT may indicate whether the capabilities of the LUT are being fully used. If a LUT's capabilities are only partially used, the functions of two or more LUTs may be combined into a single LUT to reduce the maximum delay.
  • the initialization value of the LUT may be examined to determine the extent to which the capabilities of the LUT are utilized.
  • a user may view the initialization value for LUT with certain design tools. However, these tools often output this configuration value in hexadecimal form. The user may thereby be forced to decode the hexadecimal value to determine whether the LUT may be combined with another LUT.
  • the present invention may address one or more of the above issues.
  • the invention provides various embodiments for displaying design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device are disclosed.
  • a user is presented for selection at least two selectable modes for displaying a function performed by a LUT that is configurable with the design data to implement a function of the electronic design.
  • the modes have associated, different formats for display of a function.
  • the function performed by the first LUT is displayed in the format associated with the selected mode.
  • a graphical user interface for displaying design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device.
  • the GUI includes a plurality of icons representing look-up tables (LUTs) and connections between the LUTs.
  • the LUTs are configurable with respective initialization values to implement functions of the electronic design, and the icons are responsive to user selection.
  • At least two graphical objects are responsive to user selection, with the graphical objects being associated with different formats for displaying a function performed by a configured LUT.
  • an object is displayed that shows the function performed by the LUT represented by the selected icon as defined by the initialization value and in the format associated with the selected object.
  • an article of manufacture includes a processor-readable medium configured with instructions executable by a processor to display design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device.
  • the processor performs the steps including, presenting for user selection at least two selectable modes for displaying a function performed by a LUT that is configurable with the design data to implement a function of the electronic design.
  • the modes have associated, different formats for display of a function.
  • the steps also include displaying, in response to selection of an object that represents a first LUT having an assigned initialization value and in response to selection of one of the modes, the function performed by the first LUT as defined by the initialization value and in the format associated with the selected mode.
  • FIG. 1 is a functional block diagram that shows a computing arrangement for preparing and viewing an electronic circuit design in accordance with various embodiments of the invention
  • FIG. 2 is a flowchart of an example process for viewing information that describes an electronic circuit design in accordance with various embodiments of the invention
  • FIG. 3 shows an example window in which mapped design information of an example circuit is displayed by way of a graphical user interface
  • FIG. 4 shows an example dialog box in which a schematic view of a an example function implemented on a lookup table is displayed
  • FIG. 5 shows an example dialog box in which a truth table of the example function is displayed
  • FIG. 6 shows an example dialog box in which a Karnaugh map of the example function is displayed.
  • the various embodiments of the invention may be used to view design data that is mapped to resources of a target hardware device.
  • the user is provided with a graphical user interface (GUI) for viewing the functions of lookup tables (LUTs) of a programmable logic device.
  • GUI graphical user interface
  • the GUI presents to the user a number of options for viewing the function of a LUT in different formats.
  • the function is displayed in the selected format.
  • the GUI-provided capability to view the LUT functions in different formats alleviates the user having to convert a coded initialization value for a LUT into forms suitable for analysis.
  • FIG. 1 is a functional block diagram that shows a computing arrangement 100 for preparing and viewing an electronic circuit design in accordance with various embodiments of the invention.
  • the tools hosted by the computing arrangement generally include tools for design entry, logic synthesis, simulation, device mapping, and viewing mapped design information. Those skilled in the art will recognize various suitable specific instances of these tools.
  • Design entry tool 102 may be used to prepare a design of an electronic circuit.
  • Example design entry tools include tools for processing hardware description languages (HDLs), schematic capture tools, and high-level modeling systems.
  • the design information from the design entry tool is input to synthesis tool 104 , which generates a netlist.
  • the netlist may be used for functional simulation 106 of the design. If errors are discovered from functional simulation, the design may be modified with the design entry tool and netlisted once again.
  • the netlisted design may be mapped to a particular hardware device with device mapping tool 108 .
  • Device mapping tool 108 is generally specific to the particular targeted hardware technology.
  • the device mapping tool generates initialization data for the configurable resources of a programmable logic device such as an FPGA.
  • the initialization data for an FPGA includes values for lookup tables (LUTs) used to implement the design, along with data that specify configuration of input/output resources and routing between the LUTs.
  • the mapped design information 110 models the initialization data in a manner that allows a user to perform timing simulation as shown by block 112 . Based on the results of the timing simulation, the synthesized design may be adjusted to satisfy the desired timing constraints.
  • design viewer 114 allows the user to view the mapped design information 110 as objects of the target hardware device used to implement the design.
  • the LUTs of an FPGA that are used to implement the design are displayed as interconnected blocks along with the initialization values of the LUTs. This information may be useful to satisfy timing constraints by combining functions implemented on multiple LUTs into a function implemented on a single LUT.
  • GUI Graphical user interface
  • GUI Graphical user interface
  • the collection of hardware and software comprising the GUI depend on the specific tools and architecture of the computing arrangement that hosts the tools.
  • the computing arrangement may be a stand-alone workstation or a collection of networked workstations coupled to a server.
  • the GUI may include software executing on one or multiple workstations along with one or more display monitors, keyboards, and point-and-click devices.
  • the design viewer 114 in combination with the GUI 116 , allows the user to select graphical objects that represent the LUTs used to implement the design for purposes of viewing the functions implemented on the LUTs.
  • the format in which the implemented function is displayed is also selectable by the user.
  • the design viewer by way of the GUI, allows the user to select and view a LUT's function as a schematic view, a truth table, or a Karnaugh map. This alleviates the user having to convert a hexadecimal initialization value for the LUT into a form more easily understood for analysis.
  • FIG. 2 is a flowchart of an example process for viewing information that describes an electronic circuit design in accordance with various embodiments of the invention.
  • the process may be implemented by a design viewer 114 , for example.
  • the input to the design viewer is the mapped design information 110 for a particular type of hardware device, for example, an FPGA.
  • the mapped design information is displayed by the design viewer 114 in response to user selection of the design.
  • FIG. 3 shows an example window 302 in which mapped design information of an example circuit is displayed by way of GUI 116 .
  • the window 302 includes a number of panels from which the user may select various design objects for display.
  • the example panels include design selection panel 310 , design object list panel 312 , pin list panel 314 , and net list panel 316 .
  • the design selection panel lists by name electronic circuit designs that are available for viewing.
  • the design object list panel allows the user to select instances of objects in the design for viewing.
  • the design object list panel lists all instances in graphical view panel 318 . A user can select a object in design object list panel and the selected object is highlighted in the graphical view panel.
  • the pin list panel 314 lists the names of input and output pins of the design that are shown in graphical view panel 318 . A user can select a pin in pin list panel and the selected pin is highlighted in the graphical view panel.
  • the net list panel 316 lists by name the nets in the design that are shown in graphical view panel 318 . A user can select a net in net list panel and the selected net is highlighted in the graphical view panel.
  • Window 302 also includes a graphical view panel 318 in which graphical objects are displayed in response to/user selection of an object from the design object panel 312 .
  • a portion of an example design is shown in panel 318 .
  • the displayed portion of the design is shown as being implemented with LUTs displayed as blocks 320 , 322 , 324 , and 326 .
  • Connection lines connect LUTs used to implement the design, and scroll bars 328 and 330 may be used to view other parts of the implemented design.
  • the blocks that represent LUTs will be referred to as LUTs.
  • the user can see in the graphical view panel how the design has been mapped to an FPGA.
  • the user may select a LUT, for example, by double clicking on the graphical object, to open a LUT dialog box which shows the function implemented by the LUT.
  • the user in response to user selection of a LUT in the graphical view panel, the user is presented with options for viewing the function implemented by the selected LUT (step 204 ).
  • the options include, for example, a schematic view, a truth table, and a Karnaugh map.
  • FIGS. 4 , 5 , and 6 show these different formats for viewing the function of LUT 324 .
  • the selection of a LUT opens a dialog box in which the function is displayed in one of the formats as a default format.
  • the design viewer displays the function performed by the selected LUT in schematic format (step 206 ).
  • FIG. 4 shows an example dialog box 402 in which a schematic view of a function is displayed.
  • the example LUT is a three-input LUT with the initialization value equal to hexadecimal 54 (the “INIT” value).
  • the different formats for displaying the function may be selected by point-and-clicking on tabs 404 , 406 , and 408 .
  • GUI mechanisms such as icons, buttons, or menus, may be used for selecting the different formats.
  • the graphical symbols labeled, i 0 , i 1 , and i 2 correspond to the three input ports of the selected LUT 324 in FIG. 3 .
  • the symbol labeled, o corresponds to the output port of LUT.
  • the schematic may be generated by forming a Boolean expression of the output as a function of the inputs and reducing the Boolean expression it to a minimal term using standard reduction methods.
  • the Boolean expression may be determined from the initialization value (hex 54) of the LUT, where the initialization value indicates the logic output values of the LUT in response to combinations of logic values at the input ports of the LUT.
  • the truth table shown in FIG. 5 illustrates the relationship of the initialization value to the inputs of the LUT.
  • the minimal term equation derived from the Boolean expression may then be used to select and connect the logic symbols for display.
  • FIG. 5 shows an example dialog box 502 in which a truth table of an example function implemented on a LUT is displayed.
  • the truth table of FIG. 5 corresponds to the same function and LUT as displayed in the schematic view of FIG. 4 .
  • the columns labeled, i 2 , i 1 , and i 0 correspond to the input ports of the LUT, and the column labeled, o, corresponds to the output port.
  • the different possible combinations of input logic values and the resulting output values form the rows of the table.
  • each of the hex digits becomes 4 of the logic values in the output column.
  • the top output logic value in the table is the least significant bit of the initialization value
  • the bottom output logic value in the table is the most significant bit of the initialization value (hexadecimal value 54 equals binary value 01010100 and least significant to most significant digits reading from right to left).
  • FIG. 6 shows an example dialog box 602 in which a Karnaugh map of the example function is displayed.
  • the Karnaugh map is a simplified version of the truth table as recognized by those skilled in the art.
  • the possible combinations of logic values of the 11 and 12 inputs are the column headings, and the possible logic values of the i 0 input are the row headings.
  • the logic bits of the initialization value are the entries in the map.
  • the function may be minimized by noting that when the output is logic 1 the input i 0 is always logic 1 (set of bits 604 ).
  • the present invention is thought to be applicable to a variety of systems for creating and debugging electronic circuit designs.
  • Various embodiments of the present invention are described in terms of configuration data for lookup tables of a field programmable gate array (FPGA).
  • FPGA field programmable gate array
  • Those skilled in the art will appreciate, however, that the invention may be applied to other devices having comparable design data.
  • Other aspects and embodiments of the present invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and illustrated embodiments be considered as examples only, with a true scope and spirit of the invention being indicated by the following claims.

Abstract

Various approaches for displaying design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device are disclosed. In one approach, a user is presented for selection at least two selectable modes for displaying a function performed by a LUT that is configurable with the design data to implement a function of the electronic design. The modes have associated, different formats for display of a function. In response to selection of an object that represents a first LUT having an assigned initialization value and in response to selection of one of the modes, the function performed by the first LUT, as defined by the initialization value, is displayed in the format associated with the selected mode.

Description

FIELD OF THE INVENTION
The present invention generally relates to electronic design tools.
BACKGROUND
Various software tools are used to support developing and implementing an electronic circuit design. A design entry tool allows a user to specify the functional characteristics of an electronic circuit. Example design entry tools include high-level modeling systems, hardware description languages, and schematic capture. Once the design is specified, a synthesis tool may be applied to the high-level design to generate a netlist. And from the netlist, the design may be simulated or mapped to a particular device or chip technology.
Some designs are targeted for implementation on field programmable gate arrays (FPGAs). FPGAs include lookup tables that are programmable to implement various logic functions. After device mapping, the design data includes initialization values for the LUTs used to implement the design.
The initialization values of LUTs may be useful for debugging designs. For example, when analyzing and adjusting a design for conformance to maximum delay parameters, it may be useful to combine, if feasible, the logic implemented on two LUTs into a single LUT since each LUT has a constant delay. The initialization value of the LUT may indicate whether the capabilities of the LUT are being fully used. If a LUT's capabilities are only partially used, the functions of two or more LUTs may be combined into a single LUT to reduce the maximum delay.
In order to determine whether a LUT is candidate for combining logic functions, the initialization value of the LUT may be examined to determine the extent to which the capabilities of the LUT are utilized. A user may view the initialization value for LUT with certain design tools. However, these tools often output this configuration value in hexadecimal form. The user may thereby be forced to decode the hexadecimal value to determine whether the LUT may be combined with another LUT.
The present invention may address one or more of the above issues.
SUMMARY OF THE INVENTION
The invention provides various embodiments for displaying design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device are disclosed. In one embodiment, a user is presented for selection at least two selectable modes for displaying a function performed by a LUT that is configurable with the design data to implement a function of the electronic design. The modes have associated, different formats for display of a function. In response to selection of an object that represents a first LUT having an assigned initialization value and in response to selection of one of the modes, the function performed by the first LUT, as defined by the initialization value, is displayed in the format associated with the selected mode.
In another embodiment a graphical user interface (GUI) is provided for displaying design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device. The GUI includes a plurality of icons representing look-up tables (LUTs) and connections between the LUTs. The LUTs are configurable with respective initialization values to implement functions of the electronic design, and the icons are responsive to user selection. At least two graphical objects are responsive to user selection, with the graphical objects being associated with different formats for displaying a function performed by a configured LUT. In response to selection of one of the plurality of icons and selection of one of the graphical objects, an object is displayed that shows the function performed by the LUT represented by the selected icon as defined by the initialization value and in the format associated with the selected object.
In yet another embodiment, an article of manufacture is provided. The article of manufacture includes a processor-readable medium configured with instructions executable by a processor to display design data that implements an electronic design in lookup tables (LUTs) of a programmable logic device. In response to execution of the instructions, the processor performs the steps including, presenting for user selection at least two selectable modes for displaying a function performed by a LUT that is configurable with the design data to implement a function of the electronic design. The modes have associated, different formats for display of a function. The steps also include displaying, in response to selection of an object that represents a first LUT having an assigned initialization value and in response to selection of one of the modes, the function performed by the first LUT as defined by the initialization value and in the format associated with the selected mode.
It will be appreciated that various other embodiments are set forth in the Detailed Description and Claims which follow.
BRIEF DESCRIPTION OF THE DRAWINGS
Various aspects and advantages of the invention will become apparent upon review of the following detailed description and upon reference to the drawings in which:
FIG. 1 is a functional block diagram that shows a computing arrangement for preparing and viewing an electronic circuit design in accordance with various embodiments of the invention;
FIG. 2 is a flowchart of an example process for viewing information that describes an electronic circuit design in accordance with various embodiments of the invention;
FIG. 3 shows an example window in which mapped design information of an example circuit is displayed by way of a graphical user interface;
FIG. 4 shows an example dialog box in which a schematic view of a an example function implemented on a lookup table is displayed;
FIG. 5 shows an example dialog box in which a truth table of the example function is displayed; and
FIG. 6 shows an example dialog box in which a Karnaugh map of the example function is displayed.
DETAILED DESCRIPTION
The various embodiments of the invention may be used to view design data that is mapped to resources of a target hardware device. For example, in one approach the user is provided with a graphical user interface (GUI) for viewing the functions of lookup tables (LUTs) of a programmable logic device. The GUI presents to the user a number of options for viewing the function of a LUT in different formats. In response to a selection of a particular LUT and a selection of a format for viewing the function of the LUT, the function is displayed in the selected format. The GUI-provided capability to view the LUT functions in different formats alleviates the user having to convert a coded initialization value for a LUT into forms suitable for analysis.
FIG. 1 is a functional block diagram that shows a computing arrangement 100 for preparing and viewing an electronic circuit design in accordance with various embodiments of the invention. The tools hosted by the computing arrangement generally include tools for design entry, logic synthesis, simulation, device mapping, and viewing mapped design information. Those skilled in the art will recognize various suitable specific instances of these tools.
Design entry tool 102 may be used to prepare a design of an electronic circuit. Example design entry tools include tools for processing hardware description languages (HDLs), schematic capture tools, and high-level modeling systems. The design information from the design entry tool is input to synthesis tool 104, which generates a netlist. The netlist may be used for functional simulation 106 of the design. If errors are discovered from functional simulation, the design may be modified with the design entry tool and netlisted once again.
Once a satisfactory functional simulation is achieved, the netlisted design may be mapped to a particular hardware device with device mapping tool 108. Device mapping tool 108 is generally specific to the particular targeted hardware technology. For example, in one embodiment, the device mapping tool generates initialization data for the configurable resources of a programmable logic device such as an FPGA. The initialization data for an FPGA includes values for lookup tables (LUTs) used to implement the design, along with data that specify configuration of input/output resources and routing between the LUTs. The mapped design information 110 models the initialization data in a manner that allows a user to perform timing simulation as shown by block 112. Based on the results of the timing simulation, the synthesized design may be adjusted to satisfy the desired timing constraints.
In one embodiment, design viewer 114 allows the user to view the mapped design information 110 as objects of the target hardware device used to implement the design. For example, the LUTs of an FPGA that are used to implement the design are displayed as interconnected blocks along with the initialization values of the LUTs. This information may be useful to satisfy timing constraints by combining functions implemented on multiple LUTs into a function implemented on a single LUT.
Graphical user interface (GUI) 116 provides a user with capabilities for data input and output to the various design tools. It will be appreciated that the collection of hardware and software comprising the GUI depend on the specific tools and architecture of the computing arrangement that hosts the tools. For example, the computing arrangement may be a stand-alone workstation or a collection of networked workstations coupled to a server. The GUI may include software executing on one or multiple workstations along with one or more display monitors, keyboards, and point-and-click devices.
In one embodiment, the design viewer 114, in combination with the GUI 116, allows the user to select graphical objects that represent the LUTs used to implement the design for purposes of viewing the functions implemented on the LUTs. The format in which the implemented function is displayed is also selectable by the user. For example, the design viewer, by way of the GUI, allows the user to select and view a LUT's function as a schematic view, a truth table, or a Karnaugh map. This alleviates the user having to convert a hexadecimal initialization value for the LUT into a form more easily understood for analysis.
FIG. 2 is a flowchart of an example process for viewing information that describes an electronic circuit design in accordance with various embodiments of the invention. The process may be implemented by a design viewer 114, for example. As described in FIG. 1, the input to the design viewer is the mapped design information 110 for a particular type of hardware device, for example, an FPGA.
The mapped design information is displayed by the design viewer 114 in response to user selection of the design. FIG. 3 shows an example window 302 in which mapped design information of an example circuit is displayed by way of GUI 116.
Along with the conventional window buttons 304, menu bar 306, and tool bar 308, the window 302 includes a number of panels from which the user may select various design objects for display. The example panels include design selection panel 310, design object list panel 312, pin list panel 314, and net list panel 316. The design selection panel lists by name electronic circuit designs that are available for viewing.
The design object list panel allows the user to select instances of objects in the design for viewing. The design object list panel lists all instances in graphical view panel 318. A user can select a object in design object list panel and the selected object is highlighted in the graphical view panel.
The pin list panel 314 lists the names of input and output pins of the design that are shown in graphical view panel 318. A user can select a pin in pin list panel and the selected pin is highlighted in the graphical view panel.
The net list panel 316 lists by name the nets in the design that are shown in graphical view panel 318. A user can select a net in net list panel and the selected net is highlighted in the graphical view panel.
Window 302 also includes a graphical view panel 318 in which graphical objects are displayed in response to/user selection of an object from the design object panel 312. A portion of an example design is shown in panel 318. The displayed portion of the design is shown as being implemented with LUTs displayed as blocks 320, 322, 324, and 326. Connection lines connect LUTs used to implement the design, and scroll bars 328 and 330 may be used to view other parts of the implemented design. For ease of explanation, the blocks that represent LUTs will be referred to as LUTs.
In an example embodiment, the user can see in the graphical view panel how the design has been mapped to an FPGA. The user may select a LUT, for example, by double clicking on the graphical object, to open a LUT dialog box which shows the function implemented by the LUT.
Returning now to FIG. 2, in response to user selection of a LUT in the graphical view panel, the user is presented with options for viewing the function implemented by the selected LUT (step 204). The options include, for example, a schematic view, a truth table, and a Karnaugh map. FIGS. 4, 5, and 6 show these different formats for viewing the function of LUT 324. In one embodiment, the selection of a LUT opens a dialog box in which the function is displayed in one of the formats as a default format. In response to user selection of the option for displaying a schematic view, the design viewer displays the function performed by the selected LUT in schematic format (step 206).
FIG. 4 shows an example dialog box 402 in which a schematic view of a function is displayed. The example LUT is a three-input LUT with the initialization value equal to hexadecimal 54 (the “INIT” value). The different formats for displaying the function may be selected by point-and-clicking on tabs 404, 406, and 408. Those skilled in the art will recognize that other GUI mechanisms, such as icons, buttons, or menus, may be used for selecting the different formats.
The graphical symbols labeled, i0, i1, and i2, correspond to the three input ports of the selected LUT 324 in FIG. 3. The symbol labeled, o, corresponds to the output port of LUT.
The schematic may be generated by forming a Boolean expression of the output as a function of the inputs and reducing the Boolean expression it to a minimal term using standard reduction methods. The Boolean expression may be determined from the initialization value (hex 54) of the LUT, where the initialization value indicates the logic output values of the LUT in response to combinations of logic values at the input ports of the LUT. The truth table shown in FIG. 5 illustrates the relationship of the initialization value to the inputs of the LUT. The minimal term equation derived from the Boolean expression may then be used to select and connect the logic symbols for display.
Returning now to FIG. 2, in response to user selection of the option for displaying a truth table, the design viewer displays the function of the LUT in truth table format (step 208). FIG. 5 shows an example dialog box 502 in which a truth table of an example function implemented on a LUT is displayed. The truth table of FIG. 5 corresponds to the same function and LUT as displayed in the schematic view of FIG. 4.
The columns labeled, i2, i1, and i0 correspond to the input ports of the LUT, and the column labeled, o, corresponds to the output port. The different possible combinations of input logic values and the resulting output values form the rows of the table.
In constructing the truth table, each of the hex digits becomes 4 of the logic values in the output column. The top output logic value in the table is the least significant bit of the initialization value, and the bottom output logic value in the table is the most significant bit of the initialization value (hexadecimal value 54 equals binary value 01010100 and least significant to most significant digits reading from right to left).
Returning now to FIG. 2, at step 210 the design viewer displays the function of the selected LUT in Karnaugh map format in response to user selection of that format option. FIG. 6 shows an example dialog box 602 in which a Karnaugh map of the example function is displayed. The Karnaugh map is a simplified version of the truth table as recognized by those skilled in the art. The possible combinations of logic values of the 11 and 12 inputs are the column headings, and the possible logic values of the i0 input are the row headings. The logic bits of the initialization value are the entries in the map. The function may be minimized by noting that when the output is logic 1 the input i0 is always logic 1 (set of bits 604).
Those skilled in the art will recognize that the functions implemented by LUTs of sizes other than 3 may be displayed with larger truth tables and Karnaugh maps.
Various alternative computing arrangements, including one or more processors and a memory arrangement configured with program code, would be suitable for hosting the tools and processes of the different embodiments of the present invention as recognized by those skilled in the art. In addition, the processes may be provided via a variety of computer-readable media or delivery channels such as magnetic or optical disks or tapes, electronic storage devices, or as application services over a network.
The present invention is thought to be applicable to a variety of systems for creating and debugging electronic circuit designs. Various embodiments of the present invention are described in terms of configuration data for lookup tables of a field programmable gate array (FPGA). Those skilled in the art will appreciate, however, that the invention may be applied to other devices having comparable design data. Other aspects and embodiments of the present invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and illustrated embodiments be considered as examples only, with a true scope and spirit of the invention being indicated by the following claims.

Claims (16)

1. A computer-implemented method for displaying design data that implements an electronic design in lookup tables (LUTs) of programmable logic, comprising:
providing mapped design data that implements the electronic design with respectively assigned initialization values that define respective functions for the LUTs;
presenting for user selection at least two selectable modes for displaying the function performed by a LUT, wherein the modes have associated, different formats for display of the function; and
displaying, in response to selection of an object that represents a first LUT having one of the respectively assigned initialization values and in response to selection of one of the modes, the function performed by the first LUT as defined by the one initialization value and in the format associated with the selected mode;
wherein a first format associated with a first mode is a Karnaugh map format, and each column heading and each row heading of the Karnaugh map format is labeled with a combination of one or more input values to the LUT; and
wherein the providing, presenting, and displaying are performed on a computer programmed to perform the providing, presenting, and displaying.
2. The method of claim 1, wherein the modes include second and third modes having associated schematic view and truth table formats, respectively; and
wherein a column in the truth table format lists respective output values associated with all possible combinations of input values to the LUT.
3. The method of claim 1, wherein a second format associated with a second mode is a schematic view format.
4. The method of claim 1, wherein a second format associated with a second mode is a truth-table format; and
wherein a column in the truth table format lists respective output values associated with all possible combinations of input values to the LUT.
5. The method of claim 1, further comprising displaying a plurality of objects that represent LUTs and connections between the LUTS, the LUTs being configurable with the design data to implement functions of the electronic design.
6. The method of claim 5, wherein the modes include second and third modes having associated schematic view and truth table formats, respectively; and
wherein a column in the truth table format lists respective output values associated with all possible combinations of input values to the LUT.
7. The method of claim 5, wherein a second format associated with a second mode is a schematic view format.
8. The method of claim 5, wherein a second format associated with a second mode is a truth-table format.
9. A graphical user interface for displaying design data that implements an electronic design in lookup tables (LUTs) of programmable logic, comprising:
a computer including a processor coupled to a display;
a plurality of icons representing look-up tables (LUTs) and connections between the LUTs presented on the display, the icons being responsive to user selection;
wherein the plurality of icons and connections represent mapped design data that implements the electronic design with respectively assigned initialization values that define respective functions for the LUTs;
at least two graphical objects presented on the display and responsive to user selection, the graphical objects associated with different formats for displaying the function performed by a LUT with one of the respectively assigned initialization values; and
an object presented on the display in response to selection of one of the plurality of icons and selection of one of the graphical objects, wherein the object shows the function performed by the LUT represented by the selected icon as defined by the respectively assigned initialization value and in the format associated with the selected object;
wherein the formats include a Karnaugh map format, and each column heading and each row heading of the Karnaugh map format is labeled with a combination of one or more input values to the LUT; and
wherein the processor presents the icons, graphical objects, and object on the display.
10. The graphical user interface of claim 9, wherein the formats include a schematic view and truth table.
11. The graphical user interface of claim 9, wherein the formats include a schematic view.
12. The graphical user interface of claim 9, wherein the formats include a truth-table.
13. An article of manufacture, comprising:
a processor-readable storage medium configured with instructions executable by a processor to display design data that implements an electronic design in lookup tables (LUTs) of programmable logic by performing the steps including,
providing mapped design data that implements the electronic design with respectively assigned initialization values that define respective functions for the LUTs;
presenting for user selection at least two selectable modes for displaying the function performed by a LUT, wherein the modes have associated, different formats for display of the function; and
displaying, in response to selection of an object that represents a first LUT having one of the respectively assigned initialization values and in response to selection of one of the modes, the function performed by the first LUT as defined by the one initialization value and in the format associated with the selected mode;
wherein a first format associated with a first mode is a Karnaugh map format, and each column heading and each row heading of the Karnaugh map format is labeled with a combination of one or more input values to the LUT.
14. The article of manufacture of claim 13, wherein the modes include second and third modes having associated schematic view and truth table formats, respectively.
15. The article of manufacture of claim 13, wherein the processor-readable medium is further configured with instructions executable by the processor to perform the step of displaying a plurality of objects that represent LUTs and connections between the LUTS, the LUTs being configurable with the design data to implement functions of the electronic design.
16. The article of manufacture of claim 15, wherein the modes include second and third modes having associated schematic view and truth table formats, respectively.
US11/151,984 2005-06-14 2005-06-14 Electronic circuit design viewer Active 2026-04-10 US7784005B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/151,984 US7784005B1 (en) 2005-06-14 2005-06-14 Electronic circuit design viewer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/151,984 US7784005B1 (en) 2005-06-14 2005-06-14 Electronic circuit design viewer

Publications (1)

Publication Number Publication Date
US7784005B1 true US7784005B1 (en) 2010-08-24

Family

ID=42583468

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/151,984 Active 2026-04-10 US7784005B1 (en) 2005-06-14 2005-06-14 Electronic circuit design viewer

Country Status (1)

Country Link
US (1) US7784005B1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073413A1 (en) * 2002-10-10 2004-04-15 Aberg Robert Olson Truth tables
US20090267965A1 (en) * 2008-04-28 2009-10-29 Kai-Shu Han Data Driving Circuits for Low Color Washout Liquid Crystal Devices
US20140095120A1 (en) * 2009-05-07 2014-04-03 Cypress Semiconductor Corporation Development, programming, and debugging environment
US20150095860A1 (en) * 2012-04-09 2015-04-02 Taiyo Yuden Co., Ltd. Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
US9396298B1 (en) * 2015-06-01 2016-07-19 Assurant Design Automation LLC Linear array display
US9535665B2 (en) 2015-06-01 2017-01-03 Assurant Design Automation LLC Hardware/software agnostic design generation
US9536029B2 (en) 2015-06-01 2017-01-03 Assurant Design Automation LLC Linear array hierarchy navigation
US9575748B2 (en) 2009-05-07 2017-02-21 Cypress Semiconductor Corporation Development, programming, and debugging environment
US9590858B2 (en) 2015-06-01 2017-03-07 Assurant Design Automation LLC Identifying a nearest connection
US10402175B2 (en) 2015-06-01 2019-09-03 Assurant Design Automation LLC Parsing source code into a linear array
US10678980B2 (en) 2015-06-01 2020-06-09 Assurant Design Automation LLC Combination map based composite design
US10747919B2 (en) 2015-06-01 2020-08-18 Assurant Design Automation LLC Generating path execution times
US10997334B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Implementing a logic design
US10997335B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Exceptional logic element management
US11010519B2 (en) * 2019-06-10 2021-05-18 Battelle Memorial Institute Behavioral design recovery from flattened netlist
US11610038B2 (en) 2015-06-01 2023-03-21 Assurant Design Automation LLC Risk evaluation

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946219A (en) * 1996-10-30 1999-08-31 Atmel Corporation Method and system for configuring an array of logic devices
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6215327B1 (en) * 1999-09-01 2001-04-10 The United States Of America As Represented By The Secretary Of The Air Force Molecular field programmable gate array
US6272671B1 (en) * 1998-09-11 2001-08-07 Lsi Logic Corporation Extractor and schematic viewer for a design representation, and associated method
US6289489B1 (en) * 1999-02-23 2001-09-11 Stephen L. Bold Method and apparatus for automatically cross-referencing graphical objects and HDL statements
US6366874B1 (en) * 1999-05-24 2002-04-02 Novas Software, Inc. System and method for browsing graphically an electronic design based on a hardware description language specification
US6470482B1 (en) * 1990-04-06 2002-10-22 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US6643836B2 (en) * 2001-08-29 2003-11-04 Intel Corporation Displaying information relating to a logic design
US20040133869A1 (en) * 2002-09-27 2004-07-08 Sharma Sunil Kumar Mapping of programmable logic devices
US6763506B1 (en) * 2000-07-11 2004-07-13 Altera Corporation Method of optimizing the design of electronic systems having multiple timing constraints
US6879184B1 (en) * 2002-12-03 2005-04-12 Lattice Semiconductor Corporation Programmable logic device architecture based on arrays of LUT-based Boolean terms
US20050156626A1 (en) * 2003-12-29 2005-07-21 Stmicroelectronics Pvt. Ltd. Optimal mapping of LUT based FPGA
US20050268269A1 (en) * 2004-06-01 2005-12-01 Tera Systems, Inc. Methods and systems for cross-probing in integrated circuit design
US7120883B1 (en) * 2003-05-27 2006-10-10 Altera Corporation Register retiming technique
US7131086B2 (en) * 2004-03-30 2006-10-31 Fujitsu Limited Logic verification device, logic verification method and logic verification computer program
US7418690B1 (en) * 2005-04-29 2008-08-26 Altera Corporation Local searching techniques for technology mapping

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470482B1 (en) * 1990-04-06 2002-10-22 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US5946219A (en) * 1996-10-30 1999-08-31 Atmel Corporation Method and system for configuring an array of logic devices
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6272671B1 (en) * 1998-09-11 2001-08-07 Lsi Logic Corporation Extractor and schematic viewer for a design representation, and associated method
US6289489B1 (en) * 1999-02-23 2001-09-11 Stephen L. Bold Method and apparatus for automatically cross-referencing graphical objects and HDL statements
US6366874B1 (en) * 1999-05-24 2002-04-02 Novas Software, Inc. System and method for browsing graphically an electronic design based on a hardware description language specification
US6215327B1 (en) * 1999-09-01 2001-04-10 The United States Of America As Represented By The Secretary Of The Air Force Molecular field programmable gate array
US6763506B1 (en) * 2000-07-11 2004-07-13 Altera Corporation Method of optimizing the design of electronic systems having multiple timing constraints
US6643836B2 (en) * 2001-08-29 2003-11-04 Intel Corporation Displaying information relating to a logic design
US20040133869A1 (en) * 2002-09-27 2004-07-08 Sharma Sunil Kumar Mapping of programmable logic devices
US6879184B1 (en) * 2002-12-03 2005-04-12 Lattice Semiconductor Corporation Programmable logic device architecture based on arrays of LUT-based Boolean terms
US7120883B1 (en) * 2003-05-27 2006-10-10 Altera Corporation Register retiming technique
US20050156626A1 (en) * 2003-12-29 2005-07-21 Stmicroelectronics Pvt. Ltd. Optimal mapping of LUT based FPGA
US7131086B2 (en) * 2004-03-30 2006-10-31 Fujitsu Limited Logic verification device, logic verification method and logic verification computer program
US20050268269A1 (en) * 2004-06-01 2005-12-01 Tera Systems, Inc. Methods and systems for cross-probing in integrated circuit design
US7418690B1 (en) * 2005-04-29 2008-08-26 Altera Corporation Local searching techniques for technology mapping

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8798971B2 (en) * 2002-10-10 2014-08-05 The Mathworks, Inc. System and method for using a truth table graphical function in a statechart
US20040073413A1 (en) * 2002-10-10 2004-04-15 Aberg Robert Olson Truth tables
US20090267965A1 (en) * 2008-04-28 2009-10-29 Kai-Shu Han Data Driving Circuits for Low Color Washout Liquid Crystal Devices
US9575748B2 (en) 2009-05-07 2017-02-21 Cypress Semiconductor Corporation Development, programming, and debugging environment
US20140095120A1 (en) * 2009-05-07 2014-04-03 Cypress Semiconductor Corporation Development, programming, and debugging environment
US20150095860A1 (en) * 2012-04-09 2015-04-02 Taiyo Yuden Co., Ltd. Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
US9177092B2 (en) * 2012-04-09 2015-11-03 Taiyo Yuden Co., Ltd. Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
TWI576850B (en) * 2012-04-09 2017-04-01 Taiyo Yuden Kk And a wiring method for disposing a semiconductor device that can be reconstructed, a program thereof, and a wiring device
US9590858B2 (en) 2015-06-01 2017-03-07 Assurant Design Automation LLC Identifying a nearest connection
US9536029B2 (en) 2015-06-01 2017-01-03 Assurant Design Automation LLC Linear array hierarchy navigation
US9535665B2 (en) 2015-06-01 2017-01-03 Assurant Design Automation LLC Hardware/software agnostic design generation
US9396298B1 (en) * 2015-06-01 2016-07-19 Assurant Design Automation LLC Linear array display
US10402175B2 (en) 2015-06-01 2019-09-03 Assurant Design Automation LLC Parsing source code into a linear array
US10678980B2 (en) 2015-06-01 2020-06-09 Assurant Design Automation LLC Combination map based composite design
US10747919B2 (en) 2015-06-01 2020-08-18 Assurant Design Automation LLC Generating path execution times
US10824406B2 (en) 2015-06-01 2020-11-03 Assurant Design Automation LLC Parsing source code into a linear array
US10997334B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Implementing a logic design
US10997335B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Exceptional logic element management
US11610038B2 (en) 2015-06-01 2023-03-21 Assurant Design Automation LLC Risk evaluation
US11010519B2 (en) * 2019-06-10 2021-05-18 Battelle Memorial Institute Behavioral design recovery from flattened netlist
US11651126B2 (en) 2019-06-10 2023-05-16 Battelle Memorial Institute Recovery of a hierarchical functional representation of an integrated circuit

Similar Documents

Publication Publication Date Title
US7784005B1 (en) Electronic circuit design viewer
US6292766B1 (en) Simulation tool input file generator for interface circuitry
US7137078B2 (en) Trace based method for design navigation
US8205183B1 (en) Interactive configuration of connectivity in schematic diagram of integrated circuit design
US7665030B2 (en) Tabstrip user interface element for formulating boolean statements
JP2001504958A (en) Method and system for configuring an array of logic devices
US20100138768A1 (en) Simplifying Configuration Of Multiple Display Units For Common Use
US9501462B2 (en) Form object having form representation and grid representation of form
US6400383B1 (en) Method and apparatus for exploring a multi-element design through user directed selective rendering
Shi et al. Efficient FPGA implementation of digit parallel online arithmetic operators
US7447619B2 (en) Apparatus and method for composite behavioral modeling for multiple-sourced integrated circuits
US6708321B2 (en) Generating a function within a logic design using a dialog box
US10102326B1 (en) Method and apparatus for relocating design modules while preserving timing closure
US8607175B1 (en) Identifying logic blocks in a synthesized logic design that have specified inputs
US7197724B2 (en) Modeling a logic design
US10831969B2 (en) Predicting routability of interconnects
CN115705446A (en) Post-simulation method and device of integrated circuit
US8788997B1 (en) Method for simplifying RTL schematic by grouping nodes into a cloud
US20060015311A1 (en) Circuit design support method and system
US20150120250A1 (en) Visual representation of circuit related data
US7571395B1 (en) Generation of a circuit design from a command language specification of blocks in matrix form
US20090089723A1 (en) Circuit design using a spreadsheet
EP4276599A1 (en) Multiple input serial adder
JPH1011476A (en) Characteristic analyzing device for integrated circuit
US9864739B1 (en) Automatic layout of graphical user interface screens from object data

Legal Events

Date Code Title Description
AS Assignment

Owner name: XILINX, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NG, ROGER;REEL/FRAME:016703/0183

Effective date: 20050613

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12