2013-08-13 2 views
2

구성 요소에 필요한 플립 플롭 수를 계산하여 리소스 사용량을 계산합니다. 예를 들어, 내가 ins_controldata (간단한 카운터 및 일부 I/O)을 계산할 때 32 개의 flipflops를 사용합니다. 이 구성 요소의 세부 맵 보고서, 섹션 13 - 계층 별 사용률을 살펴보면 필자의 추정치가이 구성 요소에 사용 된 슬라이스 레지스터의 수와 비슷하다는 것을 알 수 있습니다. 모든 슬라이스에는 4 개의 LUT와 8 개의 플립 플롭이 있습니다. 내 유한 상태 기계, inst_xtm640에 대해 동일한 작업을 수행 할 때FPGA 리소스 추정

지금, 나는 (6 개 주에 필요한 3 플립 플롭 포함) (43)의 주위에 내 플립 플롭 사용량을 추정하고있다. 지도 보고서를 보면 예상치가 다소 정확합니다 (+ -10 % 오류). 그러나 필요한 슬라이스 수는 슬라이스 레지스터와 필요한 LUT보다 훨씬 높습니다. 사용한 LUT를 보면 40 정도입니다. 약 20 정도 여야합니다.

왜이 구성 요소에 여분의 조각이 사용됩니까? 속도 최적화를위한 것입니까?

+----------------------------------------------------------------------------------+ 
| Module    | Partition | Slices*  | Slice Reg  | LUTs   |                
+----------------------------------------------------------------------------------+ 
| ++inst_controldata |   | 6/6   | 35/35   | 20/20   | 
| +++inst_xtm640  |   | 40/40   | 57/57   | 88/88   | 
+----------------------------------------------------------------------------------+ 

편집 : 는 내가 그것을 발견 나 자신을 생각하지만 다른 입력은 언제나 환영합니다 :

모든 조각이 완벽하게 사용되는 것은 아닙니다. 그래서 88 LUTS와 57 슬라이스 레지스터를 사용한다면 22 슬라이스를 사용할 것입니다. 일부 슬라이스는 완전히 사용되지 않으므로 슬라이스 사용이 증가합니다. 또한 타이밍 제약 조건을 충족하기 위해 여분의 조각이 사용됩니다.

답변

0

편집 중에 실제로 맞습니다. 신디사이저는 때로는 예측할 수없는 일이며, 특히 제약 조건과 최적화를 위해 결과를 얻는 것이 중요합니다.

크기 (면적)를 최적화하려면 예상치가 더 가까울 수 있습니다. 시스템이 커질수록 시스템의 최종 위치와 경로에 영향을 미칩니다. 이 때문에 작은 예제를 볼 때 결과가 더 가까워집니다.

이것은 FPGA를 "채우지 않는"훌륭한 이유이기도합니다. 남은 공간이 많을수록 최적화 프로그램이 종료 될 때 더 효율적입니다. 물론 이것은 자원의 "낭비"이지만 더 나은 결과를 이끌어 낼 수 있습니다.

내가 FPGA 레이아웃과 관련하여 얻은 한 가지 조언은 신시사이저가 작동 할 공간이 없다는 그런 세부 사항에 들어 가지 않는 것이다. 예 : 플립 플롭을 로직 밖으로 만들지 말고 대신 언어의 추상화를 사용하십시오. 만큼 당신이 결과가 신디사이저가 필요하고이를 최적화하는 방법, 그것은 일반적으로 더 나은 일

\
0

자일링스 툴체인에서에게 무엇을 알아내는 그 일을 내버려에 도달하는 방법을 알고 있습니다로 , LUT와 레지스터가 특정 슬라이스에 할당되는 빌드 단계를 "맵"이라고합니다. 기본적으로, 특히 디자인이 장치 리소스를 조금만 차지하는 경우 map은 최대한 많은 LUT 및 레지스터를 슬라이스에 넣으려고하지 않습니다. 이것이 예상보다 높은 슬라이스 수를보고있는 이유입니다.

1로 (팩 조각) 옵션 -c를 설정하여 더 agressively 조각을 포장하는지도를 강제 할 수

:

-c [packfactor]

(비 제로 값의 경우) packfactor 대상 슬라이스 밀도는 입니다.

  • 전용 로직 0 관련된 지정 (공통 논리의 신호)의 packfactor 값은 단일 슬라이스로 포장하고 는 적어도 조밀 설계를 산출한다.
  • packfactor가 1이면 패커가 1 % 슬라이스 사용을 시도 할 때 최대 패킹 밀도가됩니다.
  • 팩 팩터가 100이면 100 % 사용률로 장치에 맞도록 무관 한 팩만 발생한다는 의미입니다. 최소 포장 밀도는 입니다.