|
|||||
Verification methodology serves memory subsystem
Verification methodology serves memory subsystem AcceLight Networks recently developed a verification environment and methodology for a complex datapath controller (DPC). To accomplish this task, AcceLight used Denali Software's MMAV and Synopsys' Vera products. The DPC is used in high-speed line cards to provide temporary storage for data packets arriving at one or more of the input ports or destined for one or more of the output ports. As shown in Figure 1, the DPC typically communicates with a traffic management engine (TME) that directs the DPC as to where and when to de-queue a packet to the downstream device. Figure 1 - System block diagram Denali's MMAV product, along with Synopsys' Vera, was instrumental in providing a sophisticated and flexible verification testbench. To verify the DPC device under test (DUT), Vera was used to create a behavioral model of the DUT, a bus-functional model of the related devices, a traffic generator, data monitors, and data checkers. The Verilog RTL DPC was used along with Denali memory models to complete the memory subsystem. Vera provides a shell to link Vera and Verilog together. In addition, it provides mechanisms to call Vera tasks directly from Verilog. Denali's memory models provide a C interface to allow direct communication between the Vera testbench and the memory devices, while maintaining coherency within the Verilog simulation. The following conceptual diagram illustrates how Vera, Denali, and Verilog co-exist in a typical verification environment. Figure 2 - Denali/Vera logical flow diagram Memory selection, configuration and integration In this design, the DPC required a number of 64-bit memory interfaces for temporary storage of packet information. The memory was implemented using 256Mbit (4M x 4 banks x 16 bit) FCRAM devices. These 16-bit wide devices were combined in groups of four to comprise each separate 64-bit wide memory interface. Ensuring correct memory behavior while interacting with many separate FCRAM memory devices was a key challenge in developing a robust memory subsystem verification environment. Verifying that the DPC correctly accessed these memory devices, by following the proper protocol and timing requirements, was a necessity. Denali's MMAV provided accurate and robust FCRAM models to ensure the DPC's correctness. Together with accurate protocol and timing checks, Denali's MMAV models also integrate directly into Synopsys' Vera environment. Testbench design Vera includes rich object-oriented constructs and key hardware-oriented concepts like clock timing, asynchronous timing, and signals (including unknown values.) This made it possible to create a Vera behavioral model in less time than a Verilog behavioral model, and with fewer lines of code. This behavioral model allowed us to develop and debug the traffic generators and checkers before the Verilog RTL was completed. By allowing for the concurrent creation of the testbench and Verilog RTL design, the testbench was ready before the RTL description, saving significant time in the schedule. This combination of Vera behavioral models and RTL descriptions was especially useful for multi-chip sim ulations, where the configuration and connections between various blocks was controlled by Vera scripts. The Vera dynamic signal binding capability allows Vera inputs or outputs to be connected to different RTL signals or nodes at run time, enabling dynamic configuration control. For stimulus generation, we relied on the native randomization and data packing capabilities in Vera, as well as the Vera class structures that make packet definition straightforward. The data monitors implement a self-checking capability that relies on the Vera mailbox construct to synchronize separate threads of activity and to queue complex data objects. Another key decision in using Vera was its direct integration with Denali's MMAV. Because of the ability to directly interact with Denali's C-based memory devices from Vera, simulation performance was significantly improved over the usual overhead of PLI within a verilog simulation. Logical memories These logical memories enabled preloading of a 64-bit data image into a single logical memory, instead of separating the data into smaller 16-bit chunks. They provided full data word backdoor read and write capabilities through Vera. And they generated memory access callbacks on the single logical memory, versus multiple individual callbacks on the physical memory instance. These features resulted in a much simpler and cleaner Vera testbench than would have been possible with other memory model alternatives. Figure 3 illustrates how the logical memories were created using Vera's built-in Denali User Defined Functions (UDFs). In this example, a Verilog task (DenaliFcramBm) is created to generate a Denali logical memory from the already instantiated phy sical FCRAM devices. This task uses the following Vera's Denali UDFs to generate the logical memory configuration: Figure 3 - Creating logical memories using Vera code Memory access callbacks are another key Denali MMAV feature used in the Vera testbench environment. This built-in feature allows users to dynamically "scoreboard" check each memory transaction as it occurs. This mechanism allows users to define a Vera function (access callback function) that will automatically be called when any Denali memory is accessed. This callback function then passes back the memory instance that was accessed, an enumerated access type (such as read, write, masked write, and load), plus the address and data associated with the memory access. Used in combination with the logical memories created above, this callback will pass back the entire logical address and a 64-bit data word in a single callback, thus significantly simplifying the testbench design and data handling. This feature makes it easy for the Vera testbench to perform checking, scoreboarding, or coverage tasks in response to particular memory transactions. Figure 4 illustrates how this was accomplished.
Figure 4 - Denali memory access callbacks Summary Jeremy Yiu is an ASIC Designer and Verification Expert for AcceLight Networks in Ottawa, Canada since August 2000. Yiu previously worked as a Verification expert for Nortel Networks in Ottawa.
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |