Q2VHDL
Question
1. (a) Write about the design flow for ASIC. [8]
(b) State the difference between synthesis and simulation and explain the logic synthesis in detail. [8]
Answer
(a) ASIC Design Flow
The ASIC (Application-Specific Integrated Circuit) design flow begins with design specification (defining the functional, performance, power, and area requirements of the chip), followed by RTL coding in VHDL (or Verilog) describing the design's behavior at the register-transfer level, and functional verification (extensive simulation-based testing of the RTL code against a testbench, to catch logical errors before committing to the far more expensive downstream physical-implementation steps).
Once the RTL is verified, logic synthesis translates the VHDL code into a gate-level netlist using cells from a specific target technology library, optimizing the netlist for the specified timing, area, and power constraints. Floorplanning then determines the physical arrangement of major functional blocks and I/O pads across the chip die area, followed by detailed placement (assigning precise physical locations to every individual standard cell) and routing (creating the actual metal-layer interconnect wiring between all cells, as discussed in relation to the alternate version of this question). Static timing analysis (STA) then verifies, using the extracted physical delay data from the completed layout, that every timing path in the design meets its required setup and hold constraints at the target clock frequency, without needing exhaustive simulation of every possible input pattern (STA instead mathematically analyzes every possible signal path through the design). Finally, after physical verification checks (design rule checking, layout-versus-schematic verification) confirm the layout is both manufacturable and functionally equivalent to the original netlist, the design is 'taped out' - the final layout data is sent to a semiconductor fabrication facility for actual chip manufacturing, a step that is extremely costly to repeat, making thorough verification at every preceding stage of the ASIC flow especially critical compared to the far more easily reprogrammed FPGA design flow.
(b) Synthesis vs Simulation; Logic Synthesis
Simulation verifies a design's behavior by executing its VHDL model against test input stimuli and observing the resulting output values over simulated time, checking correctness purely at the level of the abstract VHDL description itself, without ever producing any actual physical hardware implementation - simulation can be performed at any stage (functional, post-synthesis, or post-layout, as discussed elsewhere in this examination) and is purely a software verification activity. Synthesis, by contrast, is a physical-implementation activity: it is the automated process of translating a VHDL (or Verilog) RTL description into an actual gate-level netlist built from real logic cells (AND, OR, flip-flops, multiplexers) available in a specific target technology library (an FPGA's LUT-based fabric, or an ASIC standard-cell library), producing a structural description that can subsequently be placed and routed into real hardware - synthesis therefore produces a concrete implementation artifact, whereas simulation only produces verification evidence about the behavior of a model.
Logic synthesis specifically refers to the core algorithmic process within synthesis that converts the RTL description's Boolean logic and state-machine behavior into an optimized gate-level netlist: it involves technology-independent optimization (simplifying the Boolean logic using techniques such as factoring, common sub-expression elimination, and don't-care optimization, independent of any specific target technology), followed by technology mapping (selecting specific gates from the target library to implement the optimized logic, subject to the library's available cell types and their associated area/delay/power characteristics), and finally technology-dependent optimization (further refining the mapped netlist - gate sizing, buffer insertion, restructuring critical paths - to better meet the specific timing, area, or power constraints of the actual target technology). The quality of logic synthesis directly determines the achievable clock frequency, silicon area, and power consumption of the final implemented design, making the synthesis tool's optimization algorithms and the constraints provided to it (timing constraints, area/power targets) critically important to the overall success of the ASIC or FPGA design project.
The distinction between synthesis and simulation, and between functional and timing verification generally, becomes especially important when reasoning about why an ASIC design flow places such heavy emphasis on verification at every single stage rather than only at the very end. Because a fabricated ASIC cannot be reprogrammed or patched after tape-out (unlike an FPGA, whose configuration can simply be reloaded if a bug is found), any functional or timing bug that escapes all the way to silicon typically requires an extremely expensive and slow re-spin of the entire mask set and fabrication run, often costing months of schedule delay and very large sums of money for advanced process nodes. This asymmetric cost structure - cheap to fix a bug at the RTL/simulation stage, but enormously expensive to fix after tape-out - is the fundamental economic reason the ASIC flow is structured as a sequence of distinct, thoroughly-verified stages (functional verification, then post-synthesis gate-level simulation or equivalence checking, then post-layout static timing analysis) rather than proceeding directly from RTL coding to fabrication.
Logic synthesis quality is also directly shaped by the specific timing, area, and power constraints supplied to the synthesis tool alongside the RTL source code, since the same VHDL description can be synthesized into meaningfully different gate-level netlists depending on whether the tool is instructed to prioritize minimum area, minimum power, or maximum speed. A tightly constrained target clock period forces the synthesis tool to select faster (but typically larger and more power-hungry) gates from the technology library along critical timing paths, while a relaxed timing constraint allows the tool to instead choose smaller, lower-power gates throughout the design - this means that the 'same' VHDL source code is not synthesized into one single, fixed hardware implementation, but rather into whichever specific netlist best satisfies the particular combination of constraints given to the synthesis run, making the constraints supplied alongside the RTL just as influential on the final implementation's characteristics as the RTL code itself.
The routing considerations discussed for FPGAs in the alternate version of this question also connect back to the general placement-and-routing stage of the ASIC flow described here: while an ASIC's routing occurs across custom-designed metal layers with essentially unrestricted routing freedom (subject only to design-rule and congestion constraints, rather than the fixed, pre-existing programmable interconnect resources of an FPGA), the underlying goal is identical in both cases - finding a congestion-free, timing-meeting set of wiring connections between all the placed logic elements - and the greater routing flexibility available to an ASIC's custom metal layers is part of why a well-optimized ASIC implementation of a given design can generally achieve higher clock frequencies and lower power consumption than the same design implemented on an FPGA, at the cost of the vastly higher non-recurring engineering cost and fabrication turnaround time of the full ASIC flow.