FPGA, 첫 단계


11

음이 이상 FPGA에 내 질문의 연속이다 여기가 .

마지막으로 Spartan 6 FPGA 로 Digilent Atlys 를 선택했습니다 . 마이크로 컨트롤러로 약간의 작업을 수행했지만 FPGA에 대한 사전 경험이 없습니다.

지난 며칠 동안 FPGA의 데이터 시트를 읽었으며 Verilog를 시작하는 것이 좋은 선택이라고 생각합니다. 나는 코드 예제를 찾을 수 없었고 심지어 데이터 시트조차 초보자에게 친숙하지 않습니다.

나는 지금 프로그래밍, 시뮬레이션, 합성에 손을 대고 싶다. 이것이 내가하고 싶은 일이다.

  1. 홀수 주파수 (예 : FPGA에서 54Mhz (100Mhz 클럭에서 실행))를 생성하여 핀 중 하나로 라우팅합니다. 아마도 이것을 위해 DCM 또는 PLL을 사용해야 할 것입니다. 그러나 여기서 시작하는 방법을 모릅니다.

  2. FPGA에서 일종의 I2C 읽기 쓰기를 구현하십시오.

내가 찾고있는 것은 참조, 아마도 온라인이나 책, DCM, 슬라이스, clb 등과 같은 FPGA 내부에서 사용 가능한 각 하드웨어 구성 요소에 대한 코드 예제와 설명을 제공하는 책입니다.

나는 그것이 FPGA 세계로 시작해야한다고 생각한다.

답변:


13

코드 예

까지 타 OpenCores 당신은 오픈 소스 프로젝트의 수십 찾을 수 있습니다. Verilog에는 많은 서적이 있으며 I / O 장치에서 프로세서까지의 영역을 포괄합니다.

또한 Xilinx에서 제공하는 많은 애플리케이션 노트를 잊지 마십시오. 그들은 자신의 장치에 매우 도움이됩니다.

디자인 흐름

FPGA 설계와 관련된 단계에 대한 개요를 얻을 수 있도록 설계 흐름에 관한 책을 하나 또는 두 개 선택하십시오. 요약하면 다음과 같습니다.

  1. 디자인 항목-귀하의 경우에는 Verilog.
  2. 기능 시뮬레이션-다양한 도구 사용.
  3. 합성-귀하의 경우 Xilinx ISE 도구 사용.
  4. 시뮬레이션-Verilog의 일부 측면은 합성 할 수 없으므로 합성 후 설계를 검증합니다.
  5. 배치 및 경로-Xilinx ISE 도구 사용.
  6. 구현-디자인을 FPGA로 다운로드
  7. 테스트.

FPGA 구성 요소

FPGA 구성 요소를 사용하는 방법은 여러 가지가 있습니다. 그러나 Verilog 디자인 항목을 사용한다고 가정 하면 다른 구성 요소를 유추 하거나 인스턴스화 할 수 있습니다 .

추론은 일반적으로 필요한 기능을 기반으로 사용할 최상의 구성 요소를 선택하도록 합성 도구를 얻는 것과 관련이 있습니다. 가장 좋은 예는 가산기를 설계하는 것입니다.

수행 q <= a + b하거나 q = a + b가산기를 추론 할 수 있습니다. 둘 다 가산기를 추론하지만 차단 / 비 차단 구문을 사용하는 경우에는 차이가 있습니다.

인스턴스화 에는 일반적으로 코드에서 정확한 라이브러리 구성 요소를 호출하는 것이 포함됩니다. DCM과 같은 일부 구성 요소는 코드에서 쉽게 추론 할 수 없습니다. ISE 도구 및 예제를 사용하여 이에 대해 자세히 알아볼 수 있습니다.

Xilinx는 라이브러리 구성 요소의 실제 구성 요소 목록을 제공합니다 .

프로 팁

이를 배우는 가장 좋은 방법은 실제로 짧은 비트의 코드를 실험하고 ISE 합성을 통해 코드를 실행하여 무엇이 튀어 나오는지 확인하는 것입니다. ISE 툴셋 자체에는 많은 예제가 있습니다.


5

절대 참조는 Spartan 6 사용자 안내서 입니다. 예를 들어, Clocking Resources 가이드 (UG382)는 DCM을 구성하는 방법을 설명합니다. 실제 코드의 모양에 대한 예제를 위해 ISE에는 데이터베이스가 있습니다. 언어 템플릿 (도구 모음의 전구)을 연 다음 언어 (VHDL 또는 Verilog)-> 장치 기본 인스턴스화-> 칩 제품군 (Spartan-6)-> 시계 구성 요소를 확인하십시오.

보드 관련 세부 사항은 Digilent에서 구할 수 있습니다. 특히 UCF (모든 IO 이름 지정)와 참조 설명서 (주변 회로 설명)가 필요합니다.

구성 요소를 만드는 방법을 포함한 언어의 일반적인 구조는 아마도 책과 예제에서 더 잘 선택 될 것입니다. Verilog를 사용하지 않았으므로 구체적인 제안 사항이 없습니다. 여전히 템플릿에는 다양한 일반 구성의 스 니펫도 포함되어 있습니다.


VHDL 방면의 전문가이십니까? UCF와 관련하여 Digilent 보드와 함께 작업하는 것이 왜 중요합니까?
Kevin Boyd

1
나는 그렇게 전문적이지 않습니다-Verilog를 연구하지 않았습니다. UCF는 클럭 요구뿐만 아니라 포트가 연결되는 핀을 설명하는 파일입니다. 그것이 없으면 핀이 무작위로 할당되며 기존 보드와 일치하지 않습니다.
Yann Vernier

핀 할당 부분을 이해하면 클럭킹 요구 사항이 무엇입니까?
Kevin Boyd

1
타이밍 제약 조건은 클럭 주파수, 설정 및 유지 시간과 같은 사항을 포함합니다. 여전히 타이밍 분석에서 정보를 얻을 수 있지만 제약 조건 파일에서 요구 사항을 지정하면 도구가 실패한 시점을 감지하고 경계선 인 경우 요구 사항을 충족시키기 위해 더 열심히 노력할 수 있습니다.
Yann Vernier

1

시계에는 DLL / PLL 메가 코어를 사용합니다.


spartan 6에는 아직 DCM을 찾을 수없는 DCM 및 PLL이 있습니다. 포럼을 검색 한 후 Xilinx에 클럭 리소스를 생성하도록 구성 할 수있는 Core Generator라는 도구가 있습니다.
Kevin Boyd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.