Using Static Functional Verification in The Design of A Memory Controller
Using Static Functional Verification in The Design of A Memory Controller
Mark Ross
Sachidanandan Sambandan
Cisco Systems
2000
System-on-Chip Design Conference
Abstract
Authors/Speakers
Mark Ross
Current Activities
Director of Engineering at Cisco Systems, Inc. developing
high-speed network switches. Email: mark@cisco.com
Background
Previously, he led Hardware Engineering at Granite Systems
which was acquired by Cisco Systems, Inc. Prior to that, he
was the platform architect for the first Ultra-SPARC
workstations at Sun Microsystems, Inc. and was responsible
for RISC workstation development at NeXT Computer, Inc.
Sachidanandan Sambandan
Current Activities
Director of ASIC Engineering, Force10Networks. Email:
sachi@force10networks.com
Background
Until recently, he was Program Manager in the Gigabit
Technology Group at Cisco Systems, Inc. Previously he was
a Design Manager at Intel Corp. where he worked on the
next generation Merced processor and developed a
concurrent ASIC design methodology. Mr. Sambandan has
been awarded 7 patents in the area of IC memories.
INTRODUCTION
Slide #1
Slide #3
Design Overview
Design Overview
l
DesignCon2000
Memory core
Pipeline control
Register
Presented by
Mark Ross, Director of Engineering,
Cisco Systems
3
Outline
l
l
l
l
l
l
l
l
This memory controller (MC) design is used in new highspeed router products being developed at Cisco Systems. It
is a second generation of an earlier design.
The basic architecture of the controller consists of the
following major blocks:
Address Decode Module
Memory Core Module
Pipeline Control Module
Register Module
Slide #4
72
Slide #2
Memory Core
Module
Register
Module
Overview
INSTRUCTION
Pipeline Control
Module
Address Decode
Module
Memory Interface
Module
SRAM
Design Challenges
Design Challenges
l
l
l
l
Slide #7
Organization
Organization
2 architects
Functional
Spec
2 designers
A
3 verification
engineers
RTL
Code &
Debug
RTL
Code &
Debug
RTL
Code &
Debug
Verification Challenges
Slide #8
Tool Flow
Verification Challenges
Tool Flow
Architecture
Specification
l
l
l
l
Verify in 6 months
Complexity more than doubled
130 signal pins
2,350 flip-flops
huge number of possible states to verify
Testbench setup and simulation execution
Code
Verilog Design
Build Testbench
Environment
Static Functional
Verification
Synthesis
Code Tests
Timing Analysis
Simulate Tests
Examine Results
There are 130 signal pins, and over 2,350 flip-flops for this
part and therefore a large number of states and modes
needed to be verified. To verify correct operation of the
various read and write operations would require a huge set
of simulation vectors. The previous generation MC took 6
The tool suite used was Solidify from HDAC, Inc. for static
functional verification and Synopsys Design Compiler for
synthesis of the design. Other tools used were VCS and
Testplan
Testplan
Block-based methodolgy
Verify individual blocks
Verify interfaces between blocks
Transaction types
Data content
Run complex tests on the integrated chip
l
l
Slide #11
The testplan for the design included running the following
tests:
verifying the individual blocks
verify the interfaces between the blocks are correct in
terms of transaction types and in terms of data content
run complex vector sets on the chip
Writing properties
Writing Properties
l
Combinational
(X==1) => (Y[2:0] == Z[2:0])
Y
l
Sequential
(!reset && load) => ('X(count) == cin)
CIN
LOAD
COUNT
8-bit
Counter
RESET
CLOCK
11
Slide #10
Eliminates vectors
Write properties (expected behaviors)
Exhaustive analysis finds corner cases
Typically verifies in seconds
10
Module Verification
Module Verification
l
Debugging HDL
Address Decode
90 inputs and 44 outputs
65 flip-flops
Too many cases to simulate
Relied on SFV for almost entire verification
293 properties written
Debugging HDL
Functional Specification
13
Enter HDL
Slide #14
Function Verified
l
Synthesize
12
Pipeline Control
185 inputs, 100 outputs, 279 flip-flops
222 properties
MC Core
Very regular datapath
68 properties
Register
73 properties
14
Slide #16
Return on Effort
Return on Effort
1. Start testbench setup
and HDL simulation
2. Start SFV
3. Same bugs
discovered at
same time
16
15
During the course of the testing, there was one show stopper
problem identified that was not detected by simulation. The
bug related to the control signals that are generated for the
SRAMs. RTL changes were implemented to fix this issue.
There were other problems that were also detected and
include problems with misalignment of register bits, and
addresses to the core, incorrect aliasing, and compatibility
with the previous generation of the MC.
It became clear that SFV could start finding bugs very
quickly with a design.
Integration Testing
Integration Testing
l
l
10 weeks of verification
Test suite
45K cycles of random tests
6K cycles of directed tests
6 hours runtime (Sun Ultra 60)
Several bugs found and fixed
17
Slide #19
Reverification
Module Reverification
Functional Non-Convergence
l
Functional Non-Convergence
Incomplete Block
Verification
Integrate block
into system-level
l
Verify System
Many
Iterations
19
Fix Bug
18
Verification Times
Verification Times
Module
Pipeline Control
Register
MC Core
Address Decode
Total
Time to
Verify (sec)
153
38
52
66
309
Properties
Written
222
73
68
293
656
Secs per
Property
0.69
0.52
0.76
0.23
0.47
20
Slide #22
Coverage Report
Coverage Report
Module
Pipeline Control
Register
MC Core
Address Decode
Total
Lines of
Code
1,185
826
1,136
503
3,650
No. of
Signals
1,265
1,857
3,184
765
7,071
Percent
Uncovered
18.1
31.0
63.2
34.8
43.6%
Coverage
Time (sec)
9
2
12
2
25
Lines of
Code
1,185
826
1,136
503
3,650
No. of
Gates
6.1K
4.2K
24.7K
5.0K
40K
No. of
Prop.
222
73
68
293
656
22
21
Improvements in Methodology
Improvements in Methodology
We think the effort to write a property is roughly equivalent
to the effort to create a monitor in a testbench environment.
l
l
l
l
l
23
Summary
Summary
l
l
l
l
l
Module Reuse
Module Reuse
l
l
l
l
l
25
Acknowledgements
24
10