PLDs & Tools FPGA Design Software Evolution
FPGAs are being used increasingly in more cost sensitive, power sensitive, high volume applications. To meet the challenges inherent in those applications, designers need an easy to use, flexible design environment for exploring different design implementations to achieve their cost, power and performance targets, particularly as designs become larger.
Anbieter zum Thema
They need, in effect, design software that has evolved to meet their requirements. One example of this new breed of design software is the new Lattice Diamond design software environment. This new software environment has evolved from an existing foundation of implementation engines, I/O placement technology, IP reuse technology, accurate power calculation and SSO analysis, and hardware/software system design found in previous generations of design software.
However, Diamond software expands the previously available functionality from Lattice design tools in three key areas: design exploration, ease of use, and improved design flow: all necessary for meeting the challenges of cost sensitive, power sensitive designs. A key feature for design exploration is the addition of expanded project capabilities, including the addition of “implementations” and “strategies.”
· Implementations allow multiple versions of a design within a single project for easy design exploration. Implementations are primarily used for defining the structure of the design.
· Strategies allow implementation “recipes” to be applied to any implementation within a project, or shared between projects. Strategies tell the software tools how a design should be run or implemented.
· Design projects allow the mixing of Verilog, VHDL, EDIF and schematic sources within any implementation.
· Multiple files are supported for constraints, timing analysis, power calculation and hardware debug tools. Files can be selected and set to be active or inactive as desired, which can affect both how individual tools behave when opened and how the design is implemented.
· The Run Manager view allows parallel processing of multiple implementations in order to explore design alternatives for the best results. Run Manager allows the designer to selectively choose implementations in a project and compare the results.
About Implementations
Implementations define the design structural elements for a project, including source code, constraint files, and any debug insertion. An implementation can be thought of as the raw material necessary to create the design. A typical use for multiple implementations within a project would be to try different architectures to determine which produced the best results.
For a simple example, one implementation of a design may use inferred memory and another implementation may use instantiated memory. The designer can effectively copy an existing implementation by creating a new one and then use the source of an existing implementation as the source of the new implementation. The Diamond file list view (Figure 1), shows the representation of the active implementation “mixedcounter.”
About Strategies
Strategies are all the implementation-related tool settings collected in one convenient location. A strategy is the set of instructions that describes how to use the raw materials available in the implementation to build the design. The strategies within a project are automatically shared among all the implementations, and they can be saved and used in multiple projects.
(ID:25016850)