next up previous contents
Next: 6 Integration and Test Up: Case Studies Index Previous:4 Architecture Design

SAR Case Study

5.0 Detailed Design

5.1 Detailed Design Process Description

During the hardware portion of the detailed design process, behavioral specifications were transformed into detailed designs [Register Transfer Level (RTL) and/or logic-level] by combining hardware partitioning, parts selection, and synthesis (Figure 5-1). Detailed design functionally and performance/timing were verified using detailed behavioral simulation. The design results were detailed hardware layouts and artwork, netlists, and test vectors that could be seamlessly transitioned to manufacturing and test via format conversion of the data.

Figure 5- 1: Detailed design process for the Synthetic Aperture Radar (SAR) Processor Data I/O board.

Because most of the software developments were verified during the architecture process, software developments in the detailed-design-process step were limited to creating those elements that were target-specific: configuration files, bootstrap and download code, target- specific test code, etc.

5.1.1 RASSP Innovations in the Detailed Design Process

The Rapid Prototyping of Application-Specific Signal Processors (RASSP) process extended the common-language [VHSIC Hardware Description Language (VHDL)] hierarchical modeling and simulation to the detailed design process. The detailed behavioral model, also called the detailed behavioral virtual prototype, was the lowest level in the simulation-model hierarchy. A primary difference between the detailed behavioral model and the abstract behavioral model was the level of timing and signal details. The detailed, behavioral, virtual prototype had a one-to-one correspondence between actual hardware signals and signals defined in the VHDL models. Timing resolution was taken to timing within a clock cycle. This enabled the performance and behavior of the hardware to be simulated at the component and signal levels. Simulations of the detailed behavioral virtual prototype tended to focus on a specific aspect of the system being designed, rather than on the entire system, as was the case for the performance and abstract, behavioral, virtual prototypes.

The top level of a detailed, behavioral, virtual prototype was a structural VHDL model defining interconnection between individual elements that made up the system, board, or module being modeled ( Figure 5- 2). The element models at the lowest level of the hierarchy were behavioral models that described function and timing, with typical lowest level elements being Application-Specific Integrated Circuits (ASICs), Programmable Logic Devices (PLD), memories, and Commercial, Off-The-Shelf (COTS) components. The COTS component could either be a chip or several chips packaged together, such as a Multi-chip Module (MCM).

The structural model at the top level of the detailed, behavioral, virtual prototype allowed the interchange of different models for the same element. For example, in the early stages of the design, functions may not have been partitioned between individual components [ASICs, Field-Programmable Gate Arrays (FPGA), PALS, etc.], and may be modeled by one composite component. Once designers partitioned the functions into individual components, they extended the structural model down an additional level of hierarchy. Post-synthesis models of custom components were used for component design verification in the virtual prototype. Data resolution on the signals between elements was bit-true. The simulation yielded the signal logic values as they would appear in the hardware when executing the same software function. A VHDL testbench applied stimulus to the VHDL model during simulation, and compared simulation outputs to the expected outputs.

The detailed, behavioral ,virtual prototype can perform timing analysis at two levels: Cycle true timing checked the time sequencing of events or signals on a cycle-by-cycle basis, such as bus-interface protocol. The second level of timing analysis checked timing within a clock cycle. This required that the component models included timing information, such as output-signal propagation delays, set-up times, and hold times. The simulations can investigate the impact of clock frequency and skew variations. A special case of clock- skew-variation investigation was simulation of systems with two or more independent clocks.

5.2 Module Design

The SAR processor design required the development of two new Printed Circuit Board (PCB) designs: Data I/O motherboard and the Finite Impulse Response (FIR) filter daughter card. The Data I/O board (Figure 5-2) is a 6U VME board with two daughter cards, Hot Rod Fiber-optic board, and FIR filter board (Figure 5-3).

Figure 5- 2: Data I/O Board block diagram.

5.2.1 Detailed Behavioral/Register-Transfer- Level Modeling

Detailed, behavioral, virtual prototyping was used when new hardware was being developed to facilitate the design process and to reduce the risk of design errors. The detailed behavioral model differed from the abstract behavioral model in the level of abstraction. Entities were resolved to the component level in the detailed behavioral model rather than to the functional unit level of the abstract behavioral model. Signal resolution in a detailed behavioral model was at the bit-true level, and timing was at either the clock edge or within the clock cycle. The detailed behavioral model was simulated through its modes of operation before the hardware was built, thereby minimizing the probability of design error or incompatibility among components. The term "virtual prototype" is used in this section to refer to the detailed behavioral model along with its testbenches.

Figure 5- 3: FIR filter daughter card block diagram.

A virtual prototype was developed for the Data I/O board but not for the other boards in the SAR processor. The Data I/O board was a new board design, while the processor boards and host interface board were COTS boards, requiring no new hardware design. The purpose of the virtual prototype of the Data I/O board was to verify the correctness of the hardware design and hardware/software interaction. The virtual prototype also served as a platform for defining two new FPGAs developed for the Data I/O board. During the test and integration of the SAR's hardware/software, the virtual prototype was used to investigate anomalies and to verify changes before they were made to the hardware. The virtual prototype also served as design documentation for the Data I/O board.

5.2.1.1 Detailed Behavioral Virtual Prototype Models

The top-level virtual prototype-model was structural VHDL, with each physical component represented by an instantiation of a component model. Data Input/Output (I/O) components are First In First Out (FIFOs); FIR chips; ALU chips; FPGAs, etc. This hierarchy in the virtual prototype made it easy to substitute one component model for another. For example, most of the component models were generic when the design began. As component selection proceeded, the generic component VHDL models were replaced with models having the function and timing of the actual component being used.

The component models were at the lowest level in the model hierarchy. Only the functionality and I/O behavior were modeled for COTS components. Modeling internal details of COTS components added no value to the virtual prototype and was likely to increase the time required for a simulation run. The important thing for COTS component models was that function and timing be accurately modeled at the component I/O interface. The VHDL models for the two new FPGAs were taken down to the RTL level and included only constructs that could be handled by FPGA synthesis tools. Developing the FPGA models directly in synthesizable VHDL eliminated the intermediate step of first developing a higher level functional model of the FPGA.

The existing components that proved most difficult to model were the two RACEway FPGAs purchased from Mercury Computer Systems, Inc. Lockheed Martin Advanced Technology Laboratories (LM ATL) used proprietary information from Mercury to develop models for these two ASICs at the RTL level. This information was in the form of schematics and partial VHDL. Modeling to the RTL level was not required because LM ATL was not changing the internal design of the FPGAs. However, RTL-level models were easier than higher level functional models to generate using the information that was available. A full understanding of the FPGA operation was not required to generate RTL- level VHDL from the schematics, and all existing VHDL was at the RTL level. There was no noticeable impact on simulation time resulting from using RTL level models.

The only active components on the Data I/O board that were not included in the structural model were the Electrically Programmable Read Only Memories (EPROMs) that configured the FPGAs when power was first applied to the board. The FPGA configuration process was not modeled because the FPGA models already defined the functionality of the FPGAs.

5.2.1.2 Detailed Behavioral Virtual Prototype Simulation

The Data I/O board testbench (Figure 5-4) was designed to exercise the virtual prototype through its various modes of operation. The testbench generated input signals that were applied to the Data I/O board and captured the resulting response during simulation.

One section of the testbench models the VMEbus activity, including writes and reads of memory-mapped registers on the Data I/O board. The testbench read the FIR filter coefficients from a file and loaded them into the FIR filter. Changing FIR filter coefficients between simulation runs did not require any change to the testbench, only a different coefficient file. Therefore, the software operations of loading FIR filter coefficients, loading other control registers, and reading status registers over the VMEbus were verified on the virtual-prototype model of the hardware prior to hardware build.

The simplest form of the testbench operated the Hot Rod fiber-optic interface in loop-back mode, a valid test mode for the Data I/O board (Figure 5-4). The testbench connected transmit data back to receive data on the Hot Rod interface. One version of the testbench supplied input data and captured output data in data files when exercising the Hot Rod interface. Another testbench operated with the executable-specification testbench as the data source and sink. These testbenches were used to verify the operation of the Data I/O board in different simulations.

Both input and output of data were modeled on the RACEway interface port. Data being applied to the Data I/O board RACEway port was read from one file by the testbench, and the board's data output to RACEway was stored in another file by the testbench. The captured data could then be compared with the expected data. The testbench modeled RACEway protocol and the sequence of operations performed by the software during data I/O operations. This verified that the RACEway port's hardware would respond correctly to software-initiated commands and RACEway protocol.

5.2.1.3 Detailed Behavioral Model in Abstract Virtual Prototype

The correctness of the Data I/O board virtual prototype (Figure 5-5) was verified by substitution into the SAR processor's abstract, behavioral, virtual prototype. It was necessary to create a VHDL wrapper around the detailed behavioral model to convert the bit-true interface signals to the tokens used in the abstract, behavioral, virtual prototype. The input data was obtained from the testbench of the executable specification. Using the Data I/O board's behavioral model in the abstract behavioral virtual prototype verified the correctness of the arithmetic operations being performed on the board. The abstract behavioral virtual prototype's simulation time increased by a factor of 10 when the Data I/O board's behavioral model was used. This demonstrated the feasibility of mixing two levels of model abstraction in the same simulation. However, the simulation time of greater than 24 hours for one frame and one polarization made it impractical except for final-design verification.

Figure 5- 4: Detailed behavior model simulation environment.

5.2.1.4 Effort Required to Develop Detailed Behavioral Virtual Prototype

The number of source lines of code (SLOC) in the final detailed, behavioral, virtual prototype was 5,344 (Table 5-1). These models that comprise the Data I/O virtual prototype can be found in the reference section. Several versions of the testbench were generated, but only one was included in the code-size measurement. Excluded were component models used in early versions of the virtual prototype that were later replaced by more accurate models. Also excluded from the code size was VHDL code developed for testing individual component models. If all VHDL code were included, the SLOC was about 8,500, which included 2,800 lines of reused code. Most of the reused code was in the testbenches. All the component models were new VHDL developments.

Approximately 782 hours were spent developing and simulating the Data I/O board's detailed, behavioral, virtual prototype. Much of this time was devoted to the detailed specification of the two new FPGA designs.

5.2.1.5 Comparison of the Detailed Behavioral Virtual Prototype to Actual Hardware

The primary purpose of the Data I/O's detailed, behavioral, virtual prototype was to verify correctness of the hardware design and hardware/software interaction before committing to expensive hardware builds. The Data I/O was simulated through its modes of operation prior to hardware build, which minimized the probability of design error or incompatibility among components.

For the SAR processor, it was not necessary to redesign the Data I/O board or its FIR filter daughter card. The problems encountered during integration and test were due to manufacturing defects, incorrect or misleading vendor documentation, and synthesis tool problems. Two wires were added to the Data I/O module as a result of defects found during test and integration. The first wire corrected a problem resulting from a misinterpretation of vendor-supplied documentation for the RACEway interface ASICs. The second wire changed the operation mode of the Hot Rod fiber-optic interface. The Hot Rod was unreliable in the original operation mode. Both FPGAs were resynthesized during test and integration along with associated update of the FPGA design documentation.

Figure 5- 5: Data I/O Board's detailed, behavioral, virtual prototype.
* Use the designated letters in Table 5- 1 to match board components with VHDL model

Table 5- 1: Number of Lines of VHDL Code in the Data I/O Board Detailed Virtual Prototype

File Use SLOC Figure 5- 5
Locator
dataio_loop_tb.vhd Testbench 1515 A
dataio_board.vhd Data I/O structural 543 B
firboard.vhd FIR board structural 95 C
aluchip.vhd L4C381 entity/arch. 60 D
control_fpga.vhd Control FPGA entity/arch. 559 E
cy7b991.vhd Clock Buffer entity/arch. 39 F
fct16374.vhd 16-bit Register entity/arch. 28 G
fifo18.vhd x18 SYNC FIFO entity/arch. 165 H
firchip.vhd FIR Chip entity/arch. 147 I
hotrod_fpga.vhd Hot Rod FPGA entity/arch. 924 J
rino_ctl.vhd RACEway Control FPGA entity/arch. 740 K
rino_dp.vhd RACEway Data FPGA entity/arch. 484 L
sn74abt18245a.vhd 18-bit Transceiver entity/arch. 45 M
  Total 5344  

5.2.2 Detailed Board Design Process

The detailed, behavioral, virtual prototype was used as the specification input to the detailed design and layout of the Data I/O board. The virtual prototype was updated as the detailed design progressed and components were selected, so the prototype always reflected the actual board layouts.

The Data I/O board design was reviewed for possible testability improvements. The modifications, which were incorporated into the design, included test modes for counters, short cycling of counters in test modes, capability to operate with a single external-clock source, deterministic state at reset, and synchronous operation (whenever possible). A Joint Test Action Group (JTAG) test port was incorporated into the Data I/O design, and scan buffers were inserted at strategic points in the data paths. These features enabled test vectors to be developed for testing either from the JTAG port or by a board tester. All of these features were modeled and verified in the detailed, behavioral, virtual prototype with the exception of JTAG. The JTAG was not modeled because it was not used during the actual hardware test, and it would have required significant additions to the component models.

The Data I/O module was designed so that manufacturing test vectors could be extracted from the Data I/O's behavioral, virtual-prototype simulations. The input vectors were generated by the testbench, and the expected response captured at the interface between the Data I/O module and the testbench.

Mentor's Design Architect tool was used to capture the schematics detailing the interconnect between module components. The interconnect was compared for consistency against the interconnect of the structural VHDL in the top-level ,detailed, behavioral model.

The timing of the Data I/O module was analyzed by adding timing generics to the component models in the detailed behavioral model. The timing for COTS components was taken from component data sheets and the timing for the FPGAs was taken from static- timing analysis of the synthesized FPGAs. The Data I/O module was simulated using worst-case timing for all components.

A drawing package was created for both board designs that made up the Data I/O module. This drawing package contained all the information needed to fabricate and assemble the boards. The Data I/O module design and theory of operation are described in Data I/O Board Hardware Description and Operation. This document describes all connectors and I/O signals and memory-mapped registers, and it describes in detail the operation of Data I/O. It proved invaluable during test and integration.

5.2.3 FPGA Design Process

The RASSP methodologies of virtual prototyping and a common, hierarchical, design language were applied to the design of the two new FPGAs on the Data I/O board: Control FPGA and Hot Rod FPGA. Each were defined in synthesizable VHDL that was used as input to the synthesis tools and as the FPGA description in the detailed, behavioral, virtual prototype. The FPGA I/O's signal-timing requirements were obtained from an analysis based on the timing characteristics of the devices that interface with the FPGAs. Functional and timing verification of the two FPGA designs were via simulation in the Data I/O board's detailed, behavioral, virtual prototype. A separate testbench was not developed for each FPGA. The FPGAs were exercised through the various operational modes by the Data I/O board's testbench. This verified that the FPGAs, as defined by the VHDL code, would satisfy functional and timing requirements.

The FPGA logic was synthesized using Synopsys' FPGA Analyzer tool. The FPGA VHDL was imported into the Synopsys environment from the Mentor QuickVHDL environment. which had been used up to this point. This demonstrated an advantage of using a common language (VHDL) throughout the design process. The Synopsys output was used as the input to the NeoCAD tool that mapped the synthesized logic to the physical structure of the ATT2C15 ORCA FPGA. Any changes made in the design for synthesis purposes were reflected back to the VHDL model in the detailed, behavioral, virtual prototype. Therefore, all changes were verified in the detailed, behavioral, virtual prototype.

The Static Timing Analyzer tool in the NeoCAD tool set was used to extract timing information from the two FPGA designs following placement and route. The extracted timing was back-annotated by hand into the virtual prototyped FPGA models, and the suite of simulations were performed again to verify timing at the Data I/O board level. Although this process verified timing, it did not check functionality of the final hardware implementation. A consequence was the failure to detect several logic faults introduced by the tools, and these faults were not found until test and integration

The preferred back-annotation approach would be to extract the structural VHDL model along with a Standard Delay Format (SDF) file from the FPGA layout. The structural model SDF file, and the library of cell primitives for the FPGA technology would then combine to generate the back-annotation model of the FPGA. The virtual-prototype simulations would then be performed with the back-annotation model replacing the originally developed FPGA models. This approach was not taken because the NeoCAD tool did not have VHDL-netlist capability at that time.

5.2.4 Fabricate and Assemble Module

The Data I/O board (Figure 5-6) was fabricated, and the components were surface mounted except for the FPGA's EPROMs. Socketing the EPROMs for the first physical prototype made it easy to modify the FPGAs.

5.3 Lessons learned in Detailed Design

During the SAR processor's detailed design, a detailed, behavioral, virtual prototype was developed for the Data I/O board, two PCB boards were designed and fabricated, and two new FPGA designs were developed. The following are lessons learned during the detailed design process:


next up previous contents
Next: 6 Integration and Test Up: Case Studies Index Previous:4 Architecture Design

Page Status: in-review, January 1998 Dennis Basara