Modular design method and system for programmable logic devices
First Claim
1. A method for providing modular design in a programmable logic device, the method comprising:
- partitioning a top-level logic design into a plurality of modules;
implementing each module using information generated by the partitioning step; and
assembling the modules using information generated from the implementing step and the partitioning step.
1 Assignment
0 Petitions
Accused Products
Abstract
In modular design flow, logic designers are able to partition a top-level logic design for a PLD into modules and implement any module independently from other modules. Modules are mapped, placed, and routed using selected information derived at the time the top-level logic design is partitioned. Finally, the modules are integrated into the top-level logic design using a guided process. Specifically, the information generated during the partitioning of the top-level design and the implementation of each module is used to guide the implementation of the associated logic in the top-level design. In this manner, the implementation of all modules can proceed in any order or in parallel and the integration of the modules into the top-level design can be done quickly and in any order.
-
Citations
79 Claims
-
1. A method for providing modular design in a programmable logic device, the method comprising:
-
partitioning a top-level logic design into a plurality of modules;
implementing each module using information generated by the partitioning step; and
assembling the modules using information generated from the implementing step and the partitioning step. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
-
36. The method of
claim 36 wherein floorplanning the module includes placing any pseudo logic, and then placing module logic.
-
69. A method for providing modular design for a logic design including multiple modules, the method comprising:
-
generating a set of top-level files for the logic design in a top-level directory;
copying a portion of the first set of top-level files to a plurality of module directories, each module directory for implementing a single module;
generating a set of module-relative top-level files for each module using the portion of the set of top-level files;
mapping, placing, and routing each module in its respective module directory;
publishing a portion of the set of module-relative top-level files from each module directory to an implementation directory; and
implementing the logic design in the top-level directory by accessing the set of module-relative top-level files in the implementation directory.
-
-
70. A method comprising:
-
creating a top-level design including unelaborated modules;
generating at least one top-level file for the top-level design;
using the at least one top-level file to implement each unelaborated module and to generate a module-relative top-level file for each implemented module; and
assembling the implemented modules using the module-relative top-level file of each module.
-
-
71. A method of implementing a logic design in a programmable logic device, the method comprising:
-
dividing the logic design into a plurality of modules;
building each module based on information generated during the step of dividing;
mapping each module based on information generated during the step of building;
placing and routing each module;
assembling predetermined files associated with any placed and routed modules; and
mapping, placing, and routing the logic design using the assembled predetermined files.
-
-
72. A graphical tool comprising:
-
a structure for drawing rectangles;
a structure for drawing lines;
an interpreter for recognizing that a line crossing a boundary of a rectangle represents an assignment of pseudo logic; and
a structure for associating a piece of pseudo logic located at the end of the line outside the rectangle with a module represented by the rectangle.
-
-
73. A graphical tool comprising:
-
a line;
a first end of the line connected to a predetermined point in a module; and
a second end of the line connected to a port of the module, the port located outside the module. - View Dependent Claims (74, 75)
-
-
76. A programmable logic device including logic implemented by configuration data, the configuration data being generated by the following steps:
-
providing a top-level design including a plurality of unelaborated modules;
generating a top-level file for the top-level design;
using the top-level file to build each unelaborated module and to generate a module-relative top-level file for each built module;
using the module-relative top-level file of each module to assemble the built modules; and
generating an output file including the assembled, built modules, wherein the output file provides the configuration data for the programmable logic device.
-
-
77. A method for providing modular design in a programmable logic device, the method comprising:
-
partitioning a top-level logic design having a plurality of paths into a plurality of modules, each of the modules having a plurality of ports for connecting to other modules; and
implementing the modules such that all the ports are registered, whereby critical paths in the design are all inside a module.
-
-
78. In a logic design to be implemented in a programmable logic device, a method of positioning modules of the design comprising:
-
representing elements and connections of the design on a computer monitor;
drawing a boundary around a portion of the design to enclose elements of the design within the boundary, thereby forming a module;
drawing a second boundary around a second portion of the design to enclose a second group of elements of the design, thereby forming a second module; and
repeating until all elements of the design are enclosed within a module. - View Dependent Claims (79)
-
Specification