Beruflich Dokumente
Kultur Dokumente
Overview
March Test
The first part of the BIST is the March Test. March testing is
done to determine if a manufacturing defect is present
within the array. The March tests treat the TCAM as it would
a standard memory. There are no compare operations
performed during the March test. Only read and write
operations are allowed. Using industry standard notation,
the March algorithm is:
March patterns
Cell
Pattern
Data (even)
w0r0r0w0w1r1r1w1w0r0w1r1r1w1w0r0r0w0w1r1r1w0r0
Care (even)
w1r1r1w1w0r0r0w0w1r1w0r0r0w0w1r1r1w1w0r0r0w1r1
Data (odd)
w1r1r1w1w0r0r0w0w1r1w0r0r0w0w1r1r1w1w0r0r0w1r1
Care (odd)
w0r0r0w0w1r1r1w1w0r0w1r1r1w1w0r0r0w0w1r1r1w0r0
Table 2
Cell
Pattern
wd0wc1
rd0rd0wd0wd1rd1rd1wd1wd0rc1rc1wc1wc0rc0rc0wc0wc1
rd0wd1rc1wc0
Even addresses
rd1rd1wd1wd0rd0rd0wd0wd1rc1rc1wc1wc0rc0rc0wc0wc1
?rd1rc0
?rd1wd0rc0wc1
?rd0rc1
?wd1wc0
?rd1rd1wd1wd0rd0rd0wd0wd1rc0rc0wc0wc1rc1rc1wc1wc0
?rd1wd0rc0wc1
Odd addresses
?rd0rd0wd0wd1rd1rd1wd1wd0rc1rc1wc1wc0rc0rc0wc0wc1
?rd0rc1
?rd0wd1rc1wc0
?rd1rc0
Avago Technologies
C O N F I D E N T I A L
Table 1
w0r0r0w0w1r1r1w1w0r0w1r1r1w1w0r0r0w0w1r1r1w0r0
A V A G O
P R E L I M I N A R Y
Datasheet
TCAM BIST
TCAM BIST
Functional Tests
In addition to the March test, several functional tests are
required to ensure that the CAMs are operating correctly.
There are six main functional tests in the TCAM BIST.
P R E L I M I N A R Y
Avago Technologies
TCAM BIST
TCAM BIST
Functional test 7
Test individual valid bits. Write 1s to Data array with valid bit
= 0. Compare against 1s expect all misses. Previously, the
BIST has tested the Row Invalidate inputs and the global
Invalidate signal.
Functional test 8
C O N F I D E N T I A L
Table 3
Code
Name
Description
6b000000
FAIL_M2_read_d0a
6b000001
FAIL_M2_read_d0b
6b000010
FAIL_M2_read_d1a
6b000011
FAIL_M2_read_d1b
6b000100
FAIL_M2_read_c0a
6b000101
FAIL_M2_read_c0b
6b000110
FAIL_M2_read_c1a
6b000111
FAIL_M2_read_c1b
6b001000
FAIL_M2_read_d0c
6b001001
FAIL_M2_read_d0d
6b001010
FAIL_M2_read_d1c
6b001011
FAIL_M2_read_d1d
6b001100
FAIL_M2_read_c0c
6b001101
FAIL_M2_read_c0d
6b001110
FAIL_M2_read_c1c
6b001111
FAIL_M2_read_c1d
6b010000
FAIL_M3_read_d0
6b010001
FAIL_M3_read_c1
6b010010
FAIL_M3_read_d1
Avago Technologies
A V A G O
TCAM BIST
P R E L I M I N A R Y
Table 3
TCAM BIST
Code
Name
Description
6b010011
FAIL_M3_read_c0
6b010100
FAIL_M4_read_d1a
6b010101
FAIL_M4_read_d1b
6b010110
FAIL_M4_read_d0a
6b010111
FAIL_M4_read_d0b
6b011000
FAIL_M4_read_c1a
6b011001
FAIL_M4_read_c1b
6b011010
FAIL_M4_read_c0a
6b011011
FAIL_M4_read_c0b
6b011100
FAIL_M4_read_d1c
6b011101
FAIL_M4_read_d1d
6b011110
FAIL_M4_read_d0c
6b011111
FAIL_M4_read_d0d
6b100000
FAIL_M4_read_c1c
6b100001
FAIL_M4_read_c1d
6b100010
FAIL_M4_read_c0c
6b100011
FAIL_M4_read_c0d
6b100100
FAIL_M6_read_d1
6b100101
FAIL_M6_read_c0
6b100110
FAIL_M6_read_d0
6b100111
FAIL_M6_read_c1
6b101000
FAIL_M7_read_d1
6b101001
FAIL_M7_read_c0
6b101010
FAIL_M7_read_d0
6b101011
FAIL_M7_read_c1
6b101100
FAIL_M9_read_d0
6b101101
FAIL_M9_read_c1
6b101110
FAIL_M9_read_d1
6b101111
FAIL_M9_read_c0
6b110000
FAIL_F1_match
6b110001
FAIL_F1_miss
6b110010
FAIL_F2_match
6b110011
FAIL_F2_invalid
6b110100
FAIL_F2_miss
Avago Technologies
TCAM BIST
Table 3
TCAM BIST
Description
6b110110
FAIL_F3_miss1
6b110111
FAIL_F3_miss0
6b111000
FAIL_F3_match
6b111001
FAIL_F4_wm_miss
6b110101
FAIL_F4_wm_match
6b111010
FAIL_F5_match
6b111100
FAIL_F6_row_inv
6b111110
FAIL_F7_11_invalid
6b111111
FAIL_F7_10_invalid
6b111011
FAIL_F8
A V A G O
Code
Table 4
Port
Direction
Description
clk
input
start_bist
input
start_bist initiates a TCAM BIST on the rising edge. There are two cycles of latency before anything actually happens so that the
start_bist signal will be asserted at the TCAM instance as well.
bist_pass
output
bist_pass indicates that the BIST has passed all of the tests. This signal should never be high while bist_done is low.
If bist_done is a 1 and bist_pass is a 0, then the BIST has failed.
bist_done
output
bist_done indicates that the BIST has completed all of the tests.
fail_state
output
fail_state consists of six coded bits that can be used to determine the nature of a failure.
match_all
input
match_all is a signal that is returned from the BIST subblock indicating that a compare operation matched on all of the addresses.
miss_all
input
miss_all is a signal that is returned from the BIST subblock indicating that a compare operation missed on all of the addresses.
din_walk_done
input
din_walk_done is a signal indicating that the walking 1 or walking 0 functional test is complete.
dout_match
input
dout_match indicates that a read done from the TCAM has matched the expected value.
din_walk_reset
output
din_walk_reset is a signal from the state machine to the subblock that resets the shift register used for the walking 1 and
walking 0 functional tests.
Avago Technologies
C O N F I D E N T I A L
The TCAM BIST consists of two parts, the state machine and
the subblock. The state machine outputs a number of
control signals that the subblock decodes to control the
TCAM. The subblock also reads out the resulting return from
the TCAM and does some data analysis before sending a
return code back to the state machine.
TCAM BIST
P R E L I M I N A R Y
Table 4
TCAM BIST
Port
Direction
Description
din_walk_inc
output
din_walk_inc is a signal from the state machine to the subblock that increments the shift register used for walking 1 and
walking 0 functional tests.
inv_din_walk
output
inv_din_walk is a signal from the state machine to the subblock that determines whether a walking test is a walking 1 or a walking 0.
valid
output
valid is a signal from the state machine to the subblock that controls the valid bit of the din bus.
din_sel
output
din_sel is a 3-bit bus that determines the pattern being written to the TCAM. Bits 1:0 will be one of the four patterns written
and read during the March tests. Bit 2 will be zero except when doing a walking 1 or walking 0 functional test.
expected_value
output
expected_value is a 2-bit bus from the state machine to the subblock that indicates what is the expected value of a read operation.
dnc_en
output
dnc_en is a signal from the state machine to the TCAM choosing data or care array.
cmp_en
output
cmp_en is a signal from the state machine to the TCAM enabling compare.
read
output
read is a signal from the state machine to the TCAM enabling read.
write
output
write is a signal from the state machine to the TCAM enabling write.
all_invalidate
output
all_invalidate is a signal from the state machine to the TCAM resetting all of the valid bits.
addr
output
addr is a bus from the state machine to the TCAM that chooses which address to read from or write to.
mask_sel
output
mask_sel is a 2-bit bus from the state machine to the TCAM that will be used to set and test the write/compare mask.
mask_valid
output
mask_valid is a signal from the state machine to the TCAM that will set and test the valid bit on the write/compare mask.
Table 5
Port
Direction
Description
clk
input
clock input port - should be same clock as TCAM instance and state machine
matchout
input
matchout is a bus from the TCAM instance to the subblock that indicates which addresses of the TCAM have matched a compare input.
dout
input
dout is a bus from the TCAM instance to the subblock that contains the results of a read operation.
din_walk_reset
input
din_walk_reset is a signal from the state machine to the subblock that resets the shift register used for walking 1 and walking 0
functional tests.
din_walk_inc
input
din_walk_inc is a signal from the state machine to the subblock that increments the shift register used in walking 1 and
walking 0 functional tests.
inv_din_walk
input
inv_din_walk is a signal from the state machine to the subblock that chooses whether a walking functional test is a walking 1
or a walking 0.
valid
input
valid is a signal from the state machine that determines whether the valid bit should be set during a write operation.
din_sel
input
din_sel is a 3-bit bus from the state machine that determines what the din bus will consist of during a write or compare operation.
expected_value
input
expected_value is a 2-bit bus from the state machine that contains the expected value of a read operation.
din
output
din is an output from the subblock to the TCAM instance that contains the decoded write or compare value from the state machine.
match_all
output
match_all is an output from the subblock to the state machine that indicates a compare operation matched on all addresses.
miss_all
output
miss_all is an output from the subblock to the state machine that indicates a compare operation missed on all addresses.
din_walk_done
output
din_walk_done is a signal from the subblock to the state machine that indicates the shift register used in a walking 1 or
walking 0 functional test has completed its iterations.
dout_match
output
dout_match is a signal from the subblock to the state machine indicating that a read operation matched the expected value.
Avago Technologies
TCAM BIST
TCAM BIST
A V A G O
BIST_DONE
FAIL_STATE[5:0]
mask_sel[1:0]
mask_valid
clk
all_invalidate
start_bist
addr[n:0]
dout_match
cmp_en
din_walk_done
read
match_all
write
miss_all
dnc_sel
BIST Subblock
clk
din_walk_reset
din_walk_inc
dout_match
inv_din_walk din_walk_done
din_sel[2:0]
match_all
valid
miss_all
expected_value[1:0]
din[n:0]
dout[n:0]
matchout[n:0]
C O N F I D E N T I A L
TCAM Instance
(BIST ports shown)
clk
BIST_EN
BIST_MSK
BIST_MSK_VLD
BIST_VLD_RST
BIST_ADDR[N:0]
BIST_CMP
BIST_READ
BIST_WRITE
BIST_DNC
BIST_DIN
d_out
match_o
START_BIST
Figure 1
Avago Technologies
TCAM BIST
TCAM BIST
BIST_PASS
BIST_DONE
FAIL_STATE[5:0]
START_BIST
BIST State Machine
bist_pass
bist_done
fail_state[5:0]
din_walk_reset
din_walk_inc
inv_din_walk
din_sel[2:0]
valid
expected_value[1:0]
BIST Subblock
clk
din_walk_reset
din_walk_inc
dout_match
inv_din_walk din_walk_done
din_sel[2:0]
match_all
valid
miss_all
expected_value[1:0]
din[n:0]
dout[n:0]
matchout[n:0]
d_out
match_o
mask_sel[1:0]
mask_valid
clk
all_invalidate
start_bist
addr[n:0]
dout_match
cmp_en
din_walk_done
read
match_all
write
miss_all
dnc_sel
P R E L I M I N A R Y
TCAM Instance
(BIST ports shown)
clk
BIST_EN
BIST_MSK
BIST_MSK_VLD
BIST_VLD_RST
BIST_ADDR[N:0]
BIST_CMP
BIST_READ
BIST_WRITE
BIST_DNC
BIST_DIN
BIST Subblock
clk
din_walk_reset
din_walk_inc
dout_match
inv_din_walk din_walk_done
din_sel[2:0]
match_all
valid
miss_all
expected_value[1:0]
din[n:0]
dout[n:0]
matchout[n:0]
TCAM Instance
(BIST ports shown)
clk
BIST_EN
BIST_MSK
BIST_MSK_VLD
BIST_VLD_RST
BIST_ADDR[N:0]
BIST_CMP
BIST_READ
BIST_WRITE
BIST_DNC
BIST_DIN
d_out
match_o
Figure 2
Avago Technologies
TCAM BIST
TCAM BIST
A V A G O
C O N F I D E N T I A L
Avago Technologies
In This Datasheet:
Overview 1
Functional Tests 2
TCAM BIST Connectivity 5
C O N F I D E N T I A L
P R E L I M I N A R Y
A V A G O