티스토리 뷰

안녕하세요. 구스입니다. 


오늘은 NI FPGA에 대해서 조금 알아볼까 하는데요. 오늘 이야기 할 내용은 클럭과 타이밍에 대한 부분입니다. 


NI FPGA는 3가지의 클럭 및 타이밍을 이용할 수 있습니다.

사용자가 사용할 수 있는 클럭은 Base Clock, Derived Clock, Top-Level Clock 인데요.


이 글에서는 3가지 클럭에 대한 간략한 소개와 그중 Derived Clock을 사용하는 방법에 대해서 알아보겠습니다.


  • Base Clock : cRIO 혹은 sbRIO에 있는 디지털 클럭이며 이 클럭은 FPGA Application에서 사용할 수 있습니다.

  • Derived Clock : Base Clock을 이용하여 만든 클럭으로 이 클럭도 FPGA Application에서 사용할 수 있습니다. 이는 40MHz 이상이 될수도 있으며, 40MHz 이하가 될 수도 있습니다. 이 클럭은 Single-Cycle Timed Loop(SCTL)를 이용할때 사용자가 원하는 이상적인 Clock를 설정하여 사용할 수 있게 도와줍니다. 

  • Top-Level Clock : Single-Cycle Timed Loop(SCTL)이 아닌 FPGA VI가 사용하는 글로벌 클럭을 의미합니다. Top-Level clock는 Base Clock 이하로는 사용할 수 없습니다. 

대충~ NI FPGA에서 사용할 수 있는 클럭에 대해서 알아보았는데요. 

지금부터 이 글의 목적인 Derived Clock을 설정하는 방법에 대해서 알아봅시다. 

먼저 언제 Derived Clock을 써야하는지 알아보도록 하죠.
아래의 VI는 NI 9882라는 모듈을 이용하여 DeviceNet을 사용하기 위한 코드입니다. 




이 코드를 실행을 하여 FPGA 컴파일을 시작하면, 아래와 같은 메시지를 볼 수 있습니다. 


The selected single-cycle Timed Loop is configured to use the clock 80MHz as a timing source. This clock either does not exist in the project or is invalid.


Select a valid clock by right-clicking the Input Node of the single-cycle Timed Loop and selecting Configure Input Node or create a valid clock in the Project Explorer window with the name 80MHz.


위의 메시지를 확인해 보면 SCTL이 80MHz 클럭을 사용해야 하는데, 프로젝트의 설정으로는 이 클럭을 사용할 수 없다는 내용입니다. 




그럼 프로젝트 설정을 통해서 80MHz 사용이 가능하도록 해야합니다.

이때 사용하는 것이 FPGA Derived Clock입니다.


FPGA Derived Clock은 아래와 같은 방법으로 만들 수 있습니다.

FPGA Target 이하에 있는 40MHz Onboard Clock(Base Clock)을 Derived Clock으로 만들면 됩니다.


오른쪽 버튼을 눌러서 New FPGA Derived Clock을 누릅니다. 



그러면 아래와 같이 FPGA Derived Clock 프로퍼티 창이 뜨게 됩니다.

Desired Derived Frequency 부분에 자신이 원하는 주파수를 넣습니다. 위의 코드는 80MHz를 요구하기 때문에 80으로 설정하였습니다. 



위와 같이 설정을 하면 80MHz의 Derived Clock이 생성이 됩니다. 




위의 코드를 컴파일 하면 컴파일 할때 발생했던 Timing 에 대한 에러는 사라지고 컴파일이 완료가 됩니다.

이 글에서는 FPGA Derived Clock 설정 방법에 대해서 알아보았습니다.


그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.


댓글