한국산학기술학회논문지 Vol. 10, No. 6, pp. 1191-1195, 2009 정준모 1* 1 국립군산대학교전자공학과 Efficient Test Wrapper Design in SoC Jun-Mo Jung 1* 1 Dept. of Electronic Engineering, Kunsan National University 요약본논문에서는스캔체인의레이아웃거리를고려한효율적인 Test Wrapper 설계방식을제안한다. SoC내의스캔체인들을테스트하기위해서는외부 TAM 라인 (line) 에각스캔체인들을할당해야한다. IP 내에존재하는스캔체인들은정상모드에서는타이밍위반 (Timing Violation) 이발생하지않도록레이아웃이되지만, 테스트모드에서는 TAM 라인 (line) 과연결되는스캔체인들간에부가적인레이아웃거리를갖게되므로스캔체인에서타이밍위반이발생될수있다. 본논문에서는타이밍위반이발생하지않도록체인간레이아웃거리를고려하여스캔체인을할당하는새로운 test wrapper 설계방식을제안하였다. Abstract We present the efficient test wrapper design methodology considering the layout distance of scan chain. To test the scan chains in SoC, the scan chains must be assigned to external TAM(Test Access Mechanism) lines. The scan chains in IP were placed and routed without any timing violation at normal mode. However, in test mode, the scan chains have the additional layout distance after assignment, which can cause the timing violation of flip-flops in scan chains. This paper proposes a new test wrapper design considering layout distance of scan chains with timing violation free. Key Words : SoC, Test Wrapper, Layout Distance 1. 서론 최근개발되는 SoC(System-On-a-Chip) 들의집적도가높아지고각 IP(Intellectual Property) 에접근하기가어려워지고있기때문에테스트시간이점점길어지고있다. 이에따라 SoC 내의각 IP에효율적으로접근하기위한테스트기법들이활발히연구되고있으며표준화그룹인 IEEE P1500 등에서현재개발및표준화작업을진행하고있다 [1]. SoC내의 IP 코어로직접접근이가능하도록해주는 Wrapper는 TAM (Test Access Mechanism) 과 IP 를연결해주는핵심요소이다. 코어내부의스캔체인과코어의입출력터미널의균형있는연결을위한연구가진행되어왔다. Wrapper 설계시에고려되어야할것은전체테스트 시간과테스트면적오버헤드이다. 한정된개수의 TAM 라인 (line) 에스캔체인들을연결하는알고리즘에서는테스트시간을최적화하는테스트스케쥴링연구가진행되었다. TAM 라인의최장테스트시간이최소화되도록스캔체인을할당하는문제는 NP-Hard 한문제로분류되며, 대표적알고리즘은 LPT(Largest Processing Time) 기법이다. 이기법은체인의길이를기준으로체인들을내림차순으로정렬시킨후에, 각 TAM 라인에차례대로체인들을할당하는방법이다 [2]. 이 LPT 알고리즘을보다향상시킨방법으로 MULTIFIT 기법이제안되었으며 [3], MULTIFIT 방법과 LPT 알고리즘을조합한 Combine 기법이제안되었다 [4]. Combine 기법은 LPT에서구해진최장테스트시간을이용하여한계치를설정한후에, 이것을초과하지않는범 본연구는군산대학교정보통신기술연구소의부분적인지원으로수행되었음. * 교신저자 : 정준모 (jmjung@kunsan.ac.kr) 접수일 09 년 02 월 23 일수정일 (1 차 09 년 05 월 14 일, 2 차 09 년 06 월 13 일 ) 게재확정일 09 년 06 월 17 일 1191
한국산학기술학회논문지제 10 권제 6 호, 2009 위내에서동일한 TAM 라인에지속적으로스캔체인을할당하는기법이다. 또한, 테스트시간과면적오버헤드를동시에최적화하는새로운기법이제안되었다 [5]. 이논문에서는 LPT 함수를수행한후, 무조건 FFD 함수를수행하게함으로써보다향상된결과를보여준다. 본논문에서는스캔체인간레이아웃정보를이용하여타이밍위반 (Timinig Violation) 이없는효율적인 TAM 할당알고리즘을제안한다. 정상적인기능적모드에서는코어에내장된스캔체인들이배치 (Placement) 및라우팅 (Routing), 즉레이아웃 (Layout) 되면타이밍위반이발생하지않는다. 왜냐하면레이아웃하는동안타이밍위반에대한고려를하기때문이다. 그러나테스트모드로전환되어체인들을 TAM 라인에할당하게되면체인간에새로운신호지연시간 (delay time) 이추가로발생하게되고, 지연시간이시스템클럭의주기를넘어가면플립플롭의셋업 (setup) 및홀드 (Hold) 타임위반 (violation) 이발생할수있다. SoC의집적도가높아짐에따라거리로인한시간지연이상대적으로길어지게되고, 시스템클럭의주파수가높아지면이런현상이발생할가능성이점점높아지게된다. 본논문에서는기존의알고리즘에타이밍위반조건을추가하는새로운테스트 Wrapper 설계방법을제안한다. 본논문의구성은다음과같다. 2장에서는 SoC 테스트의구성요소및이전의연구기법들에대하여기술하였으며 3장에서는레이아웃거리를고려한효율적인 TAM 라인할당알고리즘을기술하였고 4장은실험및결과, 5장에서는결론을기술하였다. 2. SoC 테스트의구성요소및이전의연구방법 SoC 테스트의 3가지필수구성요소는테스트패턴소스 (Source) 와싱크 (Sink), 테스트접근장치 (TAM) 및 Wrapper 이다. 소스에서는코어의테스트패턴을생성하며싱크는테스트응답과정상응답을비교한다. 테스트접근장치는 IP 코어의터미널과 TAM 라인을연결해주는스위치의기능을한다. TAM 라인의수와 IP 코어의터미널수는다를수있으며, 한개의 TAM 라인에포함된스캔체인들은순차적으로테스트된다. 그림 1은스캔체인 3개를 2개의 TAM 라인에연결하여구성한예제를나타낸것이다. 각체인의길이는 14, 6 및 5개이다. 1 2 14 FFs IP Core Logic 5 FFs Core in/out 6 FFs Test Wrapper [ 그림 1] Test Wrapper 설계예 정상기능모드 (Functional Mode) 에서는각각의체인들이독립적인기능으로동작을하며, 테스트모드 (Test Mode) 에서는외부테스트장비와연결되는 TAM 라인에체인들이할당된다. TAM 라인을통하여테스트입력을인가하거나테스트응답을출력하게된다. 그림 1에나타난바와같이 TAM 라인은 2개 (1,2) 가존재한다. TAM 라인 1은 14개의플립플롭 (F/F) 들로구성된스캔체인으로구성되고 wrapper cell 1개와연결되어총 15개로연결된다. TAM 라인 2는 5개와 6개플립플롭들로구성된스캔체인을포함하고 wrapper cell 3개를거치므로총 14 개의플립플롭으로연결된다. 1과 2는별도의 TAM 라인이므로각 TAM 라인별로유사한시간 ( 플립플롭 14개혹은 15개 ) 으로테스트가병렬로수행될수있다. 이와같이일반적으로테스트 Wrapper 설계기법은테스트시간이최적으로스케쥴링되도록 TAM 라인에스캔체인을할당한다. 2.1 LPT, FFD, Combine 알고리즘 LPT 알고리즘은 y개의스캔체인을 m개의 TAM 라인에효율적으로할당하는알고리즘이다. 모든스캔체인을체인길이의내림차순으로정렬하고, 우선 m개의스캔체인을각 TAM 라인에한개씩할당하며, 나머지스캔체인은가장길이가작은 TAM 라인에할당한다. 이와같은순서대로모든스캔체인을할당한다. 리턴값은 TAM 라인의최대길이다. 1192
1) LPT 알고리즘 // m: TAM 라인의갯수 // y: scan 체인의갯수 // L(S i): 스캔체인 Si의길이 // P i: TAM 라인 sort S i such that L(S 1)> = L( S 2)- - L( S y); for(i=1; i<=m; i++) P i = S i; for(i=m+1; i <= y; i++) select k {j L(P j) = m in 1 x m L(P x)} ; P k = P k S i; return max 1 x m L(P x); 2 ) FFD( C) 알고리즘 // C: 한계치 sort S i such that L(S 1)> = L( S 2)--L(S y); j=1; for(i=1; i <= y; i++) while(1) if((l(p j) + L( S i)) <= C) P j = P j S i; continue; else j++; return max {j P j 0}; 이아웃을하게된다. 하지만테스트모드에서는스캔체인들이 TAM 라인에할당되며, 이때새로운레이아웃환경이생성된다. 스캔체인들이체인들과서로연결되면서부가적인레이아웃거리를갖게된다. 이부가적인레이아웃거리로인하여신호들의지연시간이길어지게되며, 스캔체인들을 TAM 라인에할당할때체인간의레이아웃거리를고려하지않는경우에는, 레이아웃거리로인한타이밍위반이발생할수있다. 기존의 TAM 라인할당알고리즘에는이러한문제들이전혀고려되지않고있다. 본논문에서는기존의할당알고리즘에레이아웃거리를적용하여타이밍문제가발생하지않도록효율적으로 Test Wrapper를설계하였다. 그림 3의예제회로에레이아웃거리에대한개념을나타내었다. 스캔체인이 3개 (A,B,C) 가있으며체인A와연결될수있는대상체인이 B와 C가있다고가정하였다. 체인 A 의종단플립플롭과체인 B와 C의첫번째플립플롭이서로연결되며각연결시에레이아웃거리가발생하게된다. 정상기능동작에서는문제없이동작이되어도시스템이테스트모드로변환되어구성되면새로운플립플롭의연결이발생하는것이다. 체인 A t_ AB 체인 B [ 그림 2] 기존알고리즘의 Pseudo Code Combine 기법은 LPT와 FFD 알고리즘을결합하였다. FFD 알고리즘은 TAM 라인의길이와할당될체인길이의합이한계치 C보다작으면해당체인을 TAM 라인에할당하는방식이다. Combine 기법은 LPT 알고리즘으로한계치 C를구한후에, 한계치를이용하여 FFD를수행하는방법이다. 각알고리즘의의사코드를그림 2에나타내었다. 3. 레이아웃거리를고려한효율적인 TAM 라인할당알고리즘 레이아웃거리는회로를 P&R(Placement & Routing) 하게되면발생하게되며, 이로인해신호의지연시간이생기게된다. 이지연시간이시스템클럭의타이밍조건에만족한다면시스템의기능적수행에는문제가없다. 정상동작모드에서는타이밍위반이발생하지않도록레 t_ AC 체인 C [ 그림 3] 레이아웃거리에대한예제회로이예제회로의클럭주기를 T라하고, 체인 A와체인 B, 체인 A와체인 C의레이아웃거리로인해서발생하는시간을각각 t_ AB, t_ AC 라고한다면시스템의타이밍안정성을높이기위해서는 t_ AB, t_ AC 가주기 T보다는작아야한다. 왜냐하면플립플롭간의셋업 (setup)/ 홀드 (Hold) 시간을포함한플립플롭의데이터신호지연시간이시스템클럭의주기보다크면타이밍위반 (timing violation) 을일으키기때문이다. 그림 3의예제와같이임의의스캔체인과연결될수있는대상체인의레이아웃거리를계산한후, 타이밍위 1193
한국산학기술학회논문지제 10 권제 6 호, 2009 반이없는대상스캔체인을선택하여 TAM 라인을구성하는새로운알고리즘을제안하였다. 그림 4는제안한알고리즘의 Pseudo Code이다. 연결대상이되는모든스캔체인간의레이아웃거리를추출하고그중에서최소가되는레이아웃거리를구하고타이밍위반이없으면연결대상체인으로선택하게된다. m, y, L(S i), P i 는각각 TAM 라인의갯수, scan 체인의갯수, 스캔체인 S i 의길이및 TAM 라인을의미한다. 먼저, 스캔체인 S i 의길이를기준으로내림차순으로정렬한다 (1). 스캔체인을순서대로 TAM 라인에할당한다 (2). // m: TAM 라인의갯수 // y: scan 체인의갯수 // L(S i): 스캔체인 Si의길이 // P i: TAM 라인 sort S i such that L(S 1)> = L( S 2)- - L( S y); //1 for(i=1; i<=m; i++) //2 P i = S i; for(i=m+1; i <= y; i++) //3 { select k {j L(P j) = m in 1 x m L(P x)} ; //4 select S i with minimum layout distance //5 if(timing violatio!) //6 P k = P k S i; } return max 1 x m L(P x); [ 그림 4] 제안한알고리즘의 Pseudo Code 스캔체인이최소인것을선택하고타이밍위반이있는지조사하고타이밍위반이없으면해당스캔체인을 TAM 라인에할당한다.(456). 4. 실험및결과 제안한알고리즘을예제회로와 ITC 02 SoC 테스트벤치마크회로중 P93791의모듈 6 코어에적용하였다. 예제회로는총 9개의스캔체인으로구성되었으며, 체인의길이가 10인체인이 2개, 길이가 8인체인이 3개, 길이가 4인체인이 2개이고길이가 2인체인도 2개이다. 각체인간상대적인레이아웃거리를변수로주어서처리하였다. 상대적레이아웃거리는시스템클럭을기준으로정규화하였다. 레이아웃거리가클럭의주기보다긴경우 ( 타이밍위반이발생하는경우 ) 를 1, 작은경우를 0 ( 타이밍위반이없는경우 ) 으로하였다. 표 1은예제회로의실험결과이다. 체인조건에입력된 A_B의 A는스캔체인의길이이고 B는 A의스캔체인중 B번째스캔체인을의미한다. 즉 10_1은체인이길이가 10인첫번째스캔체인을의미한다. 10_2와 4_1은레이아웃거리가 1이며또한 8_1과 8_2의레이아웃거리도 1 임을의미하고그외의모든체인간레이아웃거리는 0으로간주하여시뮬레이션하였다. 체인조건 [ 표 1] 예제회로실험결과 상대적레이아웃거리 10_2, 4_1 1 8_1, 8_2 1 기존의알고리즘 10_2, 4_1 연결시실패 8_1, 8_2 연결시실패시 제안된알고리즘 성공 성공 표 1에나타낸바와같이, 기존의알고리즘은대상스캔체인의타이밍위반을고려하지않았기때문에오류가발생하는경우에도무조건체인연결을시도하여타이밍오류를발생시킨다. 제안된알고리즘은연결대상체인의상대적레이아웃거리가 1인경우에는레이아웃거리가 0인다른체인을이용하여 TAM 라인구성을할수가있다. P93791의모듈 6 코어의특성을표 2에나타내었다. 모듈 6 코어는 417개의입력터미널, 324개의출력터미널및 72개의양방향터미널을가지고있으며길이가 500개인스캔체인이 7개, 520의길이를갖는체인이 30 개그리고 521개의길이를갖는체인이 9개를포함하고있다. [ 표 2] P93791 의모듈 6 코어의특성 입출력단자 스캔체인 입력출력양방향길이수 417 324 72 500 7 520 30 521 9 표 3은 ITC 02 SoC 테스트벤치마크회로중 P93791 의모듈 6 코어에적용한실험결과이다. 1194
Available TAM line [ 표 3] P93791 의모듈 6 코어의실험결과 COMBINE Utilized Available TAM line 제안한방법 Utilized Longest Wrapper Scan Chain 15 N/A 15 15 2080 16-19 N/A 16-19 16 2060 20-21 N/A 20-21 20 1560 기존의 Combine 기법과제안한방법을비교하였으며이용가능한 TAM 라인은 15에서 21개로제한하였다. 또한임의의 TAM 라인에레이아웃거리를 1로할당하여시뮬레이션하였다. COMBINE 논문의알고리즘은모든경우에 TAM 라인을구성하지못하였으므로사용된 TAM 라인의갯수가 N/A(Non-Available) 이며, 제안한방법을적용하면모든경우에구성이가능하였다. 가장긴 Wraper 스캔체인의길이는이용가능한 TAM 라인의갯수가 15인경우에는 2080, 16-19인경우에는 2060 그리고 20-21인경우에는 1560 이었다. 5. 결론 본논문에서는타이밍위반이발생하지않는새로운방식의 TAM 라인할당방식을제안하였다. 스캔체인들의레이아웃거리를체인내플립플롭의시간적지연으로모델링한후, 플립플롭의셋업 / 홀드타임의위반이발생하지않도록각스캔체인들을 TAM 라인에할당하였다. 제안한방식을 P93791의모듈 6 코어에적용한결과기존의알고리즘에서는타이밍오류가발생하지만제안한방식을적용하면오류가발생하지않았다. 향후, 본논문에서제안한방식을새로운형태의 SoC 코어모듈에도적용하여효율성을검증하도록하겠으며, 시스템의클럭주파수가증가하고집적도가높아짐에따라레이아웃거리를고려한제안방식이매우효율적으로적용될수있을것으로기대한다. SIAM Journal of Applied Mathematics, Volume 17, pp.416-429, 1969. [3] E.G. Coffman Jr., M.R. Garey, D.S. Johnson, "An Application of Bin-Packing to Multiprocessor Scheduling," SIAM Journal of Computing, Volume 7, Number 1, pp.1-17, 1978. [4] Lee, C.Y., D. Massey, "Multiprocessor Scheduling: Combining LPT and Multifit," Discrete Applied Mathematics, Volume 20, pp.233-242, 1988. [5] 김문준, 박재흥, 최선화, 심재헌, 장훈, 내장된코어테스트를위한효율적인 Wrapper 설계기법, 테스트학술대회, 2003. 정준모 (Jun-Mo Jung) [ 종신회원 ] 1987 년 2 월 : 한양대학교전자공학과 ( 공학석사 ) 2004 년 2 월 : 한양대학교전자공학과 ( 공학박사 ) 1989 년 2 월 ~ 1996 년 3 월 : 삼성전자 ASIC 센터 1996 년 4 월 ~ 2004 년 2 월 : 김포대학전자정보계열교수 2004 년 3 월 ~ 2005 년 3 월 : 한양사이버대학교컴퓨터공학과조교수 2005 년 4 월 ~ 현재 : 군산대학교전자공학과부교수 < 관심분야 > VLSI Design, SoC Design, SoC Test & Verification, Test Scheduling 참고문헌 [1] IEEE P1500 General Working Group website, "IEE P1500 Standards For Embedded Core Test," http://grouper.ieee.org/groups/1500. [2] R.L. Graham, "Bounds on Multiprocessing Anomalies," 1195