Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > FPGAs/PLDs

Adapting ASIC designs for use with Spartan FPGAs

Posted: 21 Dec 1999 ?? ?Print Version ?Bookmark and Share

Keywords:spartan? fpga? field programmable gate array? adaptation? functional?


XAPP119 July 20, 1998 (Version 0.5) 1 Summary Spartan FPGAs are an exciting, new alternative for imple- menting digital designs that, previously, would have employed ASIC1 technology. Pre-existing ASIC intellectual property2 can be adapted for use with Spartan devices by following a straightforward procedure. Each step of the pro- 1. For the purposes of this application note, ASIC refers to mask gate array. 2. The term intellectual property includes preexisting design material (i.e. legacy code), cores, and vendor ASIC libraries. cedure is explained in detail. Guidelines show how an ASIC design, in the form of an RTL-level HDL3 file, can be revised to take full advantage of the Spartan series' capa- bilities, thereby achieving efficient, high-performance implementations. 3. Two kinds of Hardware Description Language (HDL) are recommended for the ASIC-to-FPGA design adaptation: VHDL and Verilog. Xilinx Family Spartan and SpartanXL Introduction The Xilinx Spartan Series, offers high density, rich function- ality, and high performance at unprecedented low cost. For many new design projects, these FPGAs are not only a via- ble alternative to mask gate arrays, but the superior choice. The Spartan series, consisting of the 5 V Spartan and 3.3V SpartanXL families, provides numerous important capabili- ties that add significant value to a design: ? Spartan devices are available in a range of densities from 5,000 to 40,000 system gates. This range can accommodate the majority of today's ASIC designs. ? Spartan designs commonly run at system clock frequencies up to 80 MHz. Carefully placed and well- routed designs can operate at frequencies in excess of 100 MHz. This level of performance is more than adequate for most ASIC designs. Dedicated global clock lines keep clock signals clean and reliable from source to destination. Continual process improvements ensure that Spartan devices will continue to meet advanced system performance requirements well into the future. ? Spartan FPGAs are fully programmable, providing flexibility unknown to ASICs. As a result, Spartan designs can be modified quickly, at little or no cost, throughout a product's development cycle. Designs can even be upgraded in the field. ? Compared with ASICs, Spartan FPGAs are rich in specialized architectural features that not only simplify the task of designing, but also make meeting functional and performance requirements easy. Global reset, global three-state, JTAG, distributed RAM, and dual port operation are a few such features. ? For designers accustomed to using ASICs, perhaps the most significant of the Spartan series advantages is the exceptionally low pricing, made possible by an advanced fabrication process and a streamlined test procedure. For high volume production, the price of Spartan FPGAs is comparable to ASICs. Given the Spartan series' considerable benefits, sold at prices that compare favorably to ASICs, many designers will prefer an FPGA solution for their next generation of products. In this context, they will want to make use of pre- existing ASIC intellectual property for their new Spartan designs. Such IP can readily be adapted to suit Spartan by following the straightforward procedure presented in this note. In this way, the design will best be able to utilize the Spartan series' capabilities, thereby achieving efficient, high performance implementations. Specific information is provided on how to resolve design issues arising from dif- ferences in HDL practice, architecture, timing, and with respect to FPGAs and ASICs. Finally, the use of Xilinx LogiCORE and LogiBLOX components as replacements for ASIC library elements is discussed. ASIC-to-Spartan Adaptation The procedure for adapting ASIC intellectual property for use with the Spartan series can be divided into two sec- tions. The first section, known as the "ASIC-to-Spartan Adaptation Flow" is shown in Figure 1. The steps include: (I) obtain an ASIC design file coded in RTL-level HDL. Then, revise the HDL file to suit the Spartan series by (II) resolving architectural differences, (III) replacing ASIC Adapting ASIC Designs for Use with Spartan FPGAs XAPP119 July 20, 1998 (Version 0.5) Application Note by Kim Goldblatt ? APPLICATION NOTE 2 XAPP119 July 20, 1998 (Version 0.5) code with Xilinx LogiCORE and LogiBLOX functions, (IV) adding pipeline registers, (V) adjusting local timing and (VI) following the appropriate HDL coding style. The second section, called the "Synthesis-Implementation Flow", is shown in Figure 2. Essentially, it consists of HDL synthesis followed by a fairly routine implementation (including map, place and route) using the Xilinx develop- ment software (version 1.4 or later). Continuing from the ASIC-to-Spartan Adaptation Flow, (VII) select a suitable Spartan device and (VIII) synthesize the revised HDL file. Then, perform (IX) functional simulation, (X) implementa- tion and (XI) timing simulation. If errors are encountered during functional simulation, then revise and re-synthesize the HDL design. If errors occur during timing simulation, either revise and re-synthesize the HDL file or adjust the timing constraints and re-implement the netlist created by the last synthesis. Finally, once simulation is successful, then (XII) create a bitstream out of the design and configure the Spartan device with it. Each of the steps will now be considered in more detail. ASIC-to-Spartan Adaptation Flow Step I Starting with the ASIC-to-Spartan Adaptation Flow (Figure 1), the first step consists of obtaining ASIC intellec- tual property expressed in Register-Transfer Language. RTL refers to the level of abstraction in HDL code at which designs are described in terms of data storage (i.e. regis- ters) and transformation (i.e. logic). More than 90% of recent ASIC designs are expressed in RTL form using either VHDL or Verilog. ASIC designs created before 1990, prior to HDL's surge in popularity, will generally be available only in schematic or netlist form. Either VHDL or Verilog is the logical choice for use with the adaptation procedure since both these languages are not only easy to read and modify, but are also supported by a wide range of ASIC and programmable logic development software. Most important of all, RTL-level HDL code is rea- sonably portable, provided that it is generic (i.e. does not contain references to device- or tool-specific features). This means that synthesis software can optimize and map logic to take good advantage of the target device's unique capa- bilities. As a result, the synthesis tool automatically accom- plishes much of the work associated with adapting the design to the Spartan series, saving significant time and effort. If the ASIC design is only available in schematic form, it will be necessary to create an RTL version before going ahead with the adaptation procedure. Some tools provide an option to convert schematics to a "verilog" file, consisting of gate-level code. Such a file, when synthesized for an FPGA, would result in an inefficient, low-performance implementation; therefore, it is unsuitable for the adaptation procedure. I Start with ASIC Design Resolve Architectural Differences LogiCORE and LogiBLOX Substitution Add Pipeline Registers Adjust Local Timing Translate to HDL HDL Coding Style No HDL? Yes II III IV V VI asicspar.eps Go to Figure 2 Figure 1: ASIC-to-Spartan Adaptation Flow XAPP119 July 20, 1998 (Version 0.5) 3 Nor does it make sense to use a netlist as a direct input to the adaptation procedure, since library elements or archi- tectural features specific to ASICs are difficult to identify and remove. Even if the netlist is generic enough that it can be synthe- sized for a Spartan device, placement and routing would be unable to use the device's logic resources efficiently. This is the same problem described earlier for gate-level "verilog" files. In this case, just as before, an RTL-level HDL file needs to be created. Step II Make any necessary corrections to the HDL code to account for architectural differences between the Spartan series and mask gate arrays. The HDL input file is likely to contain instances of library components specific to the ASIC architecture. The synthesis tool targeting a Spartan device will be unable to recognize such instances. There- fore, it is necessary to replace them with code that makes use of comparable functions supported by the Spartan series. See the section entitled "Architectural differences" on page 5. Step III Consider using Xilinx LogiBLOX and LogicCORE modules to replace comparable functions in the ASIC design. The Spartan series also supports IP available from a number of partner companies collectively known as AllianceCORE. LogiBLOX macros save time and effort by providing pre- designed, simple functions, such as adders and memories, that are ready for use. The LogiCORE and AllianceCORE modules provide more complex functions. They are spe- cially optimized to make the best possible use of Spartan resources, resulting in efficient logic utilization and high performance. Using cores to replace HDL code where tim- ing is critical helps to ensure successful operation once the design is transferred to Spartan. Cores also conserve logic, permitting larger designs to fit into a given Spartan device. Refer to "LogiCORE and LogiBLOX" on page 7 for more details. Step IV Introducing pipelining into the design is one of the most sig- nificant actions the designer can take not only to preserve the original ASIC design's performance, but also to elimi- nate the possibility of timing problems. The total delay from register to register is the sum of the clock-to-out delay of the first register plus the logic delay plus the setup time for the next register. The reciprocal of the register-to-register delay is the maximum clock frequency that can be sup- ported between the registers. The insertion of pipeline reg- isters between layers of logic effectively reduces the register-to-register delay, which, in turn, raises the maxi- mum sustainable clock frequency. Mask gate array designs can have as many as 30 layers of logic between registers. While this arrangement can be made to work for some ASIC devices, in general, it makes achieving high operating frequencies rather difficult. The fewer the layers of logic between registers, the easier it is to attain high-performance operation. Keeping the number of logic layers under three significantly reduces the possibility that race conditions due to differences in the interconnect delay between the Spartan series and ASICs can occur. As a general rule to be applied when adapting an ASIC design to the Spartan series, every HDL module (i.e. process) should have registered outputs and a clock signal in the sensitivity list. Note that every pipeline register added to the design increases the overall data latency (i.e. the time it takes to clock data from the input to the output of the system) by one clock cycle. Fortunately, in many designs this latency is not an issue. Step V It may also be necessary to address timing problems that arise in cases of unusual or nonstandard design practice. One such example is the case where data synchronized to one clock is re-synchronized to another clock. A complete list is provided in "Timing Considerations" on page 6. The present step involves a general inspection of the HDL code for poor digital design practices, especially with regard to synchronizing clocks. Where required, HDL code can be revised in accordance with the sound design meth- odology recommended in "Timing Considerations" on page 6. Timing problems that cannot be identified prior to synthesis will be caught at "Step XI" on page 5 and addressed at that time. Step VI HDL designs intended for the Spartan series should com- ply with the recommended coding practice for FPGAs. Given alternative ways of coding the same logic, some HDL statements work better for Spartan FPGAs, others for ASICs. For example, the "if-else" statement specifies prior- ity encoding whereas the "case" statement specifies paral- lel behavior. Even though the resulting logical function for both statements is identical, for an FPGA implementation, the "case" statement can result in a faster circuit. For an ASIC implementation, this effect is unlikely to be noticed. Appropriate coding style for Xilinx FPGAs is discussed extensively in the Xilinx Synthesis and Simulation Guide (See "References" on page 7). Inspect the HDL design and make sure that it conforms to recommended practice. This step concludes the ASIC-to-Spartan Adaptation Flow. 4 XAPP119 July 20, 1998 (Version 0.5) Synthesis-Implementation Flow Step VII Continue with the Synthesis-Implementation Flow, as shown in Figure 2. This step selects a suitable Spartan device to serve as a target for synthesis. To get a general idea which Spartan device has sufficient logic resources to hold the design, count "system gates". This measure pro- vides a reasonably effective comparison between FPGAs and mask gate arrays. The density of ASICs is commonly measured using a "logic gate count", which is the total num- ber of two-input NAND gates (four transistors per gate) in the design. One logic gate is equivalent to two system gates. If the estimate for a given design is 25,000 system gates, then a good choice for target device would be the Spartan XCS30, which, as the part number indicates, has a maximum of 30,000 system gates. The easiest way to obtain a gate count for a design is to use a synthesis tool that reports logic utilization. Just select a Spartan XCS40 and synthesize the design. Note that a sys- tem gate range is specified for each Spartan device. The number of gates available for a given Spartan device actu- ally varies depending on how many of the Configurable Logic Blocks are implemented as memory. While the maxi- mum system gate count specified for Spartan assumes 20% of all CLBs are employed as memory, a higher per- centage can make even more gates available. This is because a CLB provides 28 gates for logic (including the H LUT), but 146 gates for RAM (including flip-flops). There- fore, the more memory a design employs, the greater the available number of system gates for a Spartan device. Generally speaking, the faster the Spartan device, the less impact differences in signal path delays between the two technologies will have on the design's timing. If possible, use the fastest available speed grade (presently -4). As a result, the task of adjusting timing in the HDL code will be easier. Step VIII Synthesize the design for the selected device type. It may be necessary to make some adjustments to the HDL code before synthesis is successful. This is especially true if the design has never been run on the synthesis tool before. Make sure all required libraries are accessible. Correct errors in the code and re-synthesize as necessary, until synthesis is successful. In addition to verifying the fit of the design into the Spartan device, most synthesis tools will provide a post-map breakdown of logic utilization. Choosing the appropriate software tools can greatly facili- tate the ASIC-to-Spartan conversion process. Of central importance is the Xilinx development software, which comes in two versions, Alliance and Foundation, both of which perform the map, place, route, simulation, bitstream generation and device programming operations for Xilinx FPGAs and CPLDs. Alliance is designed to be integrated Select Suitable Spartan Device No No VII asispar1 Proper Function? Synthesis Functional Simulation (optional) Implementation (Place & Route) Timing Simulation Meet Timing Criteria? Configure Device Correct HDL VIII From Figure 1. IX X XI XII Yes Adjust Timing Constraints Figure 2: Synthesis-Implementation Flow XAPP119 July 20, 1998 (Version 0.5) 5 with leading EDA environments. Foundation is a complete, ready-to-use solution that includes the Foundation Express synthesis tool as well as a timing simulation tool. Either Alli- ance or Foundation can be used in conjunction with a vari- ety of popular synthesis tools including: FPGA Express (Synopsys), Synplify (Synplicity), and Leonardo Spectrum (Exemplar). Simulation of HDL synthesis results is becom- ing an increasingly important part of the design verification process. The Xilinx development software can also be used together with simulation tools available from a number of vendors, including Verilog-XL (Cadence) and ModelsSim (Model Technology, Inc.). Consult the Xilinx sales office nearest you for more information on selecting the appropri- ate software for FPGA development. Step IX Functional simulation, whether performed inside the Xilinx development software or with a third party tool, is optional, but recommended on two counts. First, it verifies that changes to the design (i.e. library substitutions) work as expected. Second, it identifies aspects of the design that still require adaptation to the Spartan series (i.e. ASIC library elements not yet replaced by Spartan library ele- ments). Simulate and revise the HDL code as necessary, then re- synthesize (i.e. go back to Step VII). When the design functions satisfactorily, move on to Step X. Following synthesis, ASICs typically require customers to perform a SCAN test to detect stuck-at-0 and stuck-at-1 faults. This test is unnecessary for FPGAs which, unlike ASICs, are thoroughly tested before shipping. Step X Using the Xilinx development software, select the target Spartan device and implement the design. Be sure to gen- erate a "timing-annotated netlist", which is an EDIF file to with timing information added for the purposes of timing simulation. Check the implementation reports to gauge the success of the implementation. For example, any difficulty accessing libraries will generate an error in the translation report. The map and PAR reports provide information on logic utilization as well expected performance. Step XI Check the design's timing. The Timing Analyzer (part of the Xilinx Development Software) performs static timing analy- sis by comparing implementation results against the timing constraints specified by the designer. The Xilinx software also generates a timing-annotated netlist as input to a tim- ing simulation tool. Many timing issues will already have been resolved by the addition of pipelines in "Step IV" on page 3. Nevertheless, it is worthwhile taking this opportunity to check for any race conditions that may have escaped detection prior to syn- thesis. Refer to "Timing Considerations" on page 6" for a description of questionable design practices that lead to race conditions and how they can be avoided. Where nec- essary, correct the HDL code, go back to "Step VIII" on page 4 and re-synthesize the design. Continue with the synthesize-implement-simulate loop until all timing issues have been resolved. Another strategy for addressing timing problems is to adjust the timing required in the User Constraint File (UCF). Then, loop directly back and re-implement. (Go back to "Step X" on page 5). Step XII Run the Bitstream Compiler, part of the Xilinx development software, and configure the target Spartan device. Architectural differences Significant differences in architecture between the Spartan series and mask gate arrays give rise to differences in the way features are implemented. When adapting an ASIC design to suit the Spartan series, it is necessary to remove any references to ASIC-specific features and replace them with FPGA equivalents. In some cases, this will mean sub- stituting code in the HDL file, in other cases, it will be a mat- ter of selecting the appropriate switch in the Xilinx development software. Refer to the Xilinx Synthesis and Simulation Design Guide and the Spartan data sheet for more information. A summary of the architectural differ- ences between Spartan and mask gate arrays follows: Functional Building Blocks Mask gate arrays contain a sea of a relatively undifferenti- ated NAND gates, whereas the Spartan series employs more highly-structured functional building blocks known as Configurable Logic Blocks (CLBs) and Input/Output Blocks (IOBs). Once a target Spartan device is selected, the syn- thesis tool automatically maps generic RTL to suit an archi- tecture based on CLBs and IOBs. Nevertheless, how effectively CLBs and IOBs can be utilized may depend on how the design is coded in HDL. An example of this is shown in the next section. Configurable Logic Blocks The CLB has two four-input LUTs (Look-Up Tables), one three-input LUT, and two flip-flops. The LUTs are used to implement either logic functions or memory, the outputs of which can be registered using the flip-flops. Anywhere from 100 to 784 CLBs are organized as an array within the Spar- tan device. As an example of the way HDL coding impacts logic utiliza- tion and speed, consider state machine design. Among the methods available for designing state machine logic, the one-hot encoding, which use one flip-flop per state, is par- ticularly well suited to the limited fan-in and abundance of flip-flops characteristic of the Spartan series architecture. Converting state machine designs employing other meth- 6 XAPP119 July 20, 1998 (Version 0.5) ods (i.e. Moore and Mealy) to one-hot encoding can result in more efficient, higher performance implementations See "Accelerate FPGA Macros with One-Hot Approach" in the Xilinx Synthesis and Simulation Design Guide for more details. Input/Output Blocks IOBs connect between the I/O pins and routing within Spar- tan. There are anywhere from 80 to 224 IOBs arranged around the periphery of a single Spartan device. One IOB contains two flip-flops, which can be used to register the input and output signals. There are a number of other IOB options described in the Spartan data sheet. An IOB is selected for use by adding input, output, or I/O buffers to signals where they enter or leave the Spartan device. While these buffers can be instantiated in the HDL code, it is more common to select an option in the synthesis tool to add them when synthesizing the top-level file of the design hier- archy. Global Nets Spartan devices have eight dedicated global nets for clock distribution. Low capacitance makes these lines effective for high frequency, high fan-out clock signals. Global nets can be selected by inserting the generic global buffers BUFG in the paths of clock signals. The BUFG symbol can be instantiated in HDL code. Many synthesis tools will auto- matically assign HDL signals named CLOCK or CLK to glo- bal nets. Make sure clock signals from the original ASIC design use global nets in Spartan. This will uphold perfor- mance and, at the same time, reduce the chance that race conditions can occur. Finally, the design should not employ more than eight clock signals. Global Set/Reset and Three State Control The Global Set/Reset feature (GSR) is a dedicated net that provides asynchronous reset (or set) to all registers in a Spartan device. The Global Three-State Control (GTS) is a dedicated net that puts all FPGA outputs into a high imped- ance state. The low capacitance of these global nets ensures that registers will be reset (or outputs will go into a high impedance state) simultaneously. Both GSR and GTS are instantiated in HDL code using the same STARTBUF (or STARTUP) component. When adapting a design to the Spartan series, be sure to remove any ASIC-specific code associated with global reset, set and three-state opera- tions. Replace them with STARTBUF. Spartan also supports the synchronous reset of registers using general purpose routing. If the fan-out of the reset signal is relatively low, a synchronous reset (or set) may provide faster, more reliable timing. However, for a reset (set) of the entire Spartan device, the GSR net is the best choice. Using GSR, a reset signal with a high fan-out is bet- ter protected from changes in interconnect delay that can occur when moving from an ASIC to Spartan. Resistors on I/Os Either pull-up or pull-down resistors can be connected to the I/O pins using a programmable option in the synthesis software. For example, Synopsys FPGA Express uses the set_pad_type command. Memory Spartan supports distributed RAM, which means that the two four-input LUTs of any CLB can be used to implement a variety of memory types, including synchronous RAM, ROM, Dual Ports, and FIFOs. This approach is quite differ- ent from the majority of mask gate arrays for which RAM is synthesized from generic NAND gates. When adapting ASIC code for Spartan, it important to replace all gate-level memory functions with either LogiBLOX or LogiCOREs. In this way, an efficient implementation of memory in Spartan is assured. JTAG JTAG is implemented in ASICs using intellectual property that builds the required circuits out of the logic available. For Spartan, JTAG circuits are actually built into the silicon. JTAG is selected for operation simply by applying the appropriate signals to dedicated pins on the Spartan device. When preparing an ASIC design for use with Spar- tan, JTAG implementation files are no longer necessary and should be removed. Timing Considerations The importance of sound digital design methodology can- not be over-emphasized. Synchronous designs can be transferred from ASICs to Spartan more reliably than asyn- chronous designs. Provided that the clock cycle can absorb any variation in interconnect delay when a design is trans- ferred from an ASIC to a Spartan device, then no race con- ditions can occur. In this regard, asynchronous designs are more likely to experience timing problems. Following is a brief summary of the timing anomalies that can occur when deficient ASIC designs are transferred to FPGAs. Using good digital design techniques can prevent such problems. Wherever logic lies between clocked registers, verify that the access time of the source register plus the delay through the logic plus the setup time to the destination reg- ister is less than the clock period. Skew associated with gated clock signals in Spartan may differ from that in an ASIC. As a result, race conditions may occur. Avoid inserting logic in the path of clock signals. For the same reason, do not use logic signals for the purpose of synchronization. Keep clock skew to a minimum by using the Spartan series dedicated global clock lines for timing signals. This becomes particularly important when clock fan-out is high. XAPP119 July 20, 1998 (Version 0.5) 7 Synchronizing registers on the trailing as well as the rising edge of the clock is not a good idea. This practice effec- tively reduces the time between synchronized events to half the clock period, which may not be sufficient to accommo- date variability in the interconnect delay. Avoid using logical signals to drive reset (and set) lines. This makes a simultaneous reset (set) of all registers diffi- cult to achieve. Use the GSR net that Spartan provides. Similarly, the GTS net, not generic routing, should be used for global three-state. Exercise caution when using more than one clock. The minimum skew necessary between two clocks so that data can be re-synchronized from one to the other may change when going from an ASIC to Spartan. Avoid adding delay to signal paths by inserting gates, buff- ers or other logic. The associated propagation delays depend on the physical properties of the silicon and can vary significantly once a design is transferred from ASICs to FPGAs. Note that non-inverting buffers inserted within logic (not connected to I/Os) are trimmed by the Xilinx development software. Avoid pulse generators, one-shots, glitch detectors, oscilla- tors, and ripple-counters, since these functions also rely on the physical properties of the silicon to generate timing. Avoid metastability by ensuring that the design meets all setup and hold time requirements. Setup and hold time requirements may be longer for FPGAs than for ASICs. A signal presented in sufficient time to meet the smaller ASIC setup or hold time may not be stable within the FPGA's setup-to- hold window. LogiCORE and LogiBLOX Xilinx offers two forms of IP for use with Spartan, LogiBLOX and LogiCORE, both of which can be instantiated as com- ponents in an HDL design. LogiBLOX components are pro- vided as part of the Xilinx development software. They are parameterizable functions of relatively low complexity, such as adder/subtractors, counters, decoders, multiplexers, registers, and memories. LogiCORE components are cre- ated using the Xilinx CORE Generator, which is distributed in the form of a complementary CD-ROM. They consist of relatively complex, parameterizable functions, such as cor- relators, filters, transforms, adder/subtractors, multipliers, and memories. LogiBLOX and LogiCORE components can be used to add or replace HDL code as part of the ASIC-to-Spartan adap- tation process. Ready-to-use LogiBLOX components save time and effort creating original HDL code. For example, pipeline registers can be added using a simple component instantiation (see "Step IV" on page 3). They are also a convenient way to instantiate memory. LogiCORE components have the additional advantage of being specially optimized for high performance. Their use ensures efficient logic utilization, high performance and reliable timing. When transferring an ASIC design to Spar- tan, LogiCORE components can be used where timing is critical. They help keep timing skew down to tolerable lev- els, thereby preventing race conditions from occurring. When synthesizable HDL (or a schematic) is lacking, as is often the case for ASIC vendor libraries, replacement with a comparable LogiCORE or logiBLOX component is recom- mended. If a good match is not available, then it may be necessary to create an HDL component file that describes the function in RTL. Proprietary ASIC library components may come with behavioral HDL files intended for simulation purposes. Syn- thesis of this code for the purpose of configuring a Spartan device is not recommended. Even if possible, such synthe- sis leads to inefficient logic utilization and poor timing. References The Spartan Series Datasheet, Xilinx: The Programmable Logic Data Book Xilinx Synthesis and Simulation Design Guide Xilinx CORE Solutions Data Book "FPGA Design Considerations for HardWire Designs", "The Ten Commandments of Excellent Design", Peter Chambers, Electronic Design, April 1, 1997, pp. 33-40 "The Ten Commandments of Excellent Design: VHDL Code Examples", Peter Chambers, Electronic Design, April 14, 1997, pp. 123-126 Memec Design Services in Mesa, Arizona: This Xilinx-cer- tified design center provides a variety of useful technical services, including the conversion of ASIC designs to FPGAs.

Article Comments - Adapting ASIC designs for use with S...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top