Abstract
Practical models for FPGA architectures which include performance- and/or density-enhancing components such as carry chains, wide function multiplexers, and memory/multiplier blocks are being applied to academic FPGA placement tools which used to rely on simple imaginary models. Previously the techniques such as pre-packing and multi-layer density analysis are proposed to remedy issues related to such practical models, and the wire length is effectively minimized during initial analytic placement. Since timing should be optimized rather than wire length, most previous work takes into account the timing constraints. However, instead of the initial analytic placement, the timing-driven techniques are mostly applied to subsequent steps such as placement legalization and iterative improvement. This paper incorporates the timing driven techniques, which check if the placement meets the timing constraints given in the standard SDC format, and minimize the detected violations, with the existing analytic placer which implements pre-packing and multi-layer density analysis. First of all, a static timing analyzer has been used to check the timing of the wire-length minimized placement results. In order to minimize the detected violations, a function to minimize the largest arrival time at end points is added to the objective function of the analytic placer. Since each clock has a different period, the function is proposed to be evaluated for each clock, and added to the objective function. Since this function can unnecessarily reduce the unviolated paths, a new function which calculates and minimizes the largest negative slack at end points is also proposed, and compared. Since the existing legalization which is non-timing driven is used before the timing analysis, any improvement on timing is entirely due to the functions added to the objective function. The experiments on twelve industrial examples show that the minimum arrival time function improves the worst negative slack by 15% on average whereas the minimum worst negative slack function improves the negative slacks by additional 6% on average.
FPGA 배치 툴 연구는 학계에서도 단순한 가상 아키텍처 모델 가정에서 벗어나 상용 툴처럼 캐리체인이나 광폭함수 멀티플렉서, 메모리/승산기 블록 등의 성능 및 밀도를 향상시키는 소자들을 포함하는 현실적인 모델을 적용하기 시작하였다. 이 때 발생하는 실제적 이슈들을 다룬 사전 패킹, 다층 밀도 분석 등의 기법이 초기 분석적 배치 (Analytic Placement)에 적용되어 밀도를 분산시키면서 배선 길이를 효과적으로 최소화한 연구가 앞서 발표된 바 있다. 더 나아가 궁극적으로는 타이밍을 최적화해야하기 때문에 많은 연구에서는 타이밍 제약 조건을 만족시키기 위한 기법들이 제시되고 있다. 그러나 초기 배치 후 진행되는 배치 적법화 및 배치 개선에서 주로 적용될 뿐 분석적 배치에서 이러한 타이밍 기법을 적용한 사례는 거의 없다. 본 논문에서는 사전 패킹 및 다층 밀도 분석 등의 기법이 구현된 기존 분석적 배치에 타이밍 제약 조건 위반을 검출하고 이를 최소화하는 기법을 결합하는 방안을 소개한다. 먼저 정적 타이밍 검증기를 집적하여 배선 길이가 최소화된 기존 배치 결과의 타이밍을 검사해 보았으며 위반을 감소시키기 위해 신호 도착 시간 (Arrival Time)을 최소화하는 함수를 분석적 배치의 목적 함수에 추가하였다. 이 때 각 클록마다 주기가 다를 수 있기 때문에 각 클록별로 함수를 따로 계산해 합산하는 방안이 제안되었다. 또한, 위반이 없는 클록 도메인의 신호 경로들도 불필요하게 단축될 수 있기 때문에 음수 슬랙 (Negative Slack)을 계산하여 이를 최소화하는 함수를 추가로 제안하여 비교하였다. 영역 분할 기법 (Partitioning)을 기반으로 배선 길이를 최소화하는 기존 배치 적법화를 그대로 사용한 후 타이밍 검증을 통해 초기 분석적 배치 단계에서 타이밍 개선 효과를 분석하였다. 배치 적법화 시 추가적인 타이밍 최적화 기법이 사용되지 않았기 때문에 타이밍 개선이 있다면 이것은 전적으로 분석적 배치의 목적 함수개선에 의한 효과이다. 12개 실용예제에 대해 실험한 결과, 목적 함수에 도착 시간 함수가 적용되었을 때 그렇지 않았을 때보다 최악 음수 슬랙 (Worst Negative Slack)이 평균 약 15% 정도 감소되었으며 음수 슬랙 함수가 적용되었을 때 이보다 약 6%정도 추가로 더 감소됨을 확인하였다.