Zynq-7000 개발보드 개봉기

정봉진·2020년 10월 26일
1

하드웨어

목록 보기
2/2
post-thumbnail

우리는 오늘도 CPU의 덕을 보고 살고있다, 아마 CPU가 없다면 아무것도 할수 없었겠지

막연히 CPU라고 얘기했지만 그 안을 살펴보면 DSP , MCU , FPGA , SoC 등 여러가지로 나뉠것이다. 자세한 정의는 생략하도록 하고 본문에서는 MCU , FPGA , SoC 에 관한 내용을 다루고, Zynq-7000 칩으로 할수 있는 내용에 대해 간략히 알아볼 예정이다.

그게 뭔데 **아

일단 전제를 깔고 가자, 아래 설명하는 모든것들은 CPU의 하위 항목이다. CPU는 중앙 처리 장치라는 뜻이다.

MCU

누군가가 "저 임베디드 프로그래밍에 입문했어요~ " 라고 말한다면 그들은 보통 MCU 를 프로그래밍 하는것을 배운것이다. MCU의 예시로는 아래의 것들이 있다.

Atmega328 -> 아두이노 우노
Atmega32U4 -> 아두이노 레오나르도, 프로 미니
nRF52840 -> 아두이노 Nano 33 BLE

Micro Controller Unit 의 약자로 Micro-Processor 와 입출력 장치가 결합된것을 말한다.
< - 위키피디아에 이렇게 쓰여있다.

이렇게만 보면 좀 어려우니 쉽게 생각해보자. 그러니까 Micro-Processor는 무언가 처리를 할꺼고 , 입출력 장치는 연산 결과를 출력장치를 통해 내보내 줄것이다.

자판기를 생각해보자 돈(입력), 버튼(입력) 을 하면 버튼의 입력값과 돈의 값을 비교해(연산을 함 ) 결과가 맞다면 음료수를 출력해줄 것이다.

그럼 자판기가 MCU란 말인가 ? 손님 맞을래요 ? 자판기 안에 있는게 MCU 라고 생각하는게 맞을것이다.

결론 : 처리장치와 입출력 장치가 있으면 그게 MCU다.

FPGA

FPGA는 " Field Programmable Gate Array" 이다. 한국어로 바꾸면 현장에서 프로그램 가능한 게이트 어레이쯤 될것이다.

FPGA는 많은 범용 게이트( NOR , NAND )와 연결소자로 구성된 소자이다. 일반적으로 이구역에 존재하는 사람들이 알던 C언어나 Java 같은 언어가 아닌 HDL(Hardware Description Language) 이라는 언어로 코딩을 하며, 컴파일이라는 과정이 아닌 합성(Synthesis)이라는 과정을 거치게 된다.

아래는 간단히 참고할만한 VHDl 의 예제이다.

hdlibrary ieee;
use ieee.std_logic_1164.all;
(
S1 : inbit; -- input S1
S0 : inbit;
D3 : in bit;
D2 : in bit;
D1 : in bit;
D0 : in bit;
Y : out bit -- output Y, note: NO ‘;’ used on the last line
);
end MUX41;

4X1 Mux 를 구성하는 코드의 일부를 가져왔는데, 뭔가 딱딱해보이지 않는가 ? 안그래보인다면 뭐.. 이쪽 업계로 오시죠....

그림으로 쉽게 보는 FPGA 내부 , ( 출처 : NI - FPGA Fundamental )

FPGA는 MCU에 비해 병렬 연산을 수행하는 성능이 압도적으로 높다는 이점이 있다. MCU에서는 이전줄의 코드가 끝나야 다음줄로 넘어갈 수 있지만, FPGA는 그렇지 않아 고성능을 요구하는 데이터센터나 영상처리쪽에 많이 쓰이게된다. 처리 속도가 압도적으로 빠르다는것.. 요즘은 자율주행이 들어가는 자동차에도 들어가기도 하고...

결론 : 무수히 많은 게이트와 연결소자들의 조합.

누가 만드는가

MCU 업계에 Microchip(Atmel 이었던것 깔깔) 과 ST 가 있다면, 이 업계에는 자일링스와 인텔( *알테라 였던것.)이 있다.
분야에 따라 Microsemi( Actel ) , Effinix 등 여러 회사가 있지만 업계에서는 자일링스가 제일 많이 쓰인다.

왜인지는 모르지만 시니어분들 공통의견이었으니 맞다고 치고 넘어가자,

그럼 왜 넌 자일링스를 쓰냐 ?

달아요 달아....

반 장난이고, 가장 쉽게 접근할 수 있는 자료가 많고, 주변에 이걸 쓰는사람이 많아(중요)서 자일링스로 결정했다.

그럼 뭘 쓸꺼냐

제목에 있는데
자일링스의 Zynq-7000 제품군을 사용할 예정이다.

이 제품으로 말할것 같으면 ARM CORTEX A9 ( PS 라고 불린다 ) 과 Kintex 혹은 Virtex FPGA (PL 이라고 불림 ) 가 함께 들어있는 물건이다.

어캐 섞을생각을 했누...

아무튼 이러한 구조는 여러 장점을 가지게 해주는데 나열해보자면 아래와 같다.

  1. 사용이 쉽다 -> 그냥 FPGA 만 쓰는것보다는 그래도 PS 는 C로 짤수 있으니까.
  2. 단가가 저렴해진다. -> 만약 기존 시스템에서 MCU가 처리해야할 부분과 FPGA 로 처리할 부분이 나누어져있다면 물리적으로 2개의 칩을 보드에 실장해야 할것이다. 하지만 Zynq는 두개가 하나로 붙어있기 때문에 보드 크기, 설계 난이도, 조립 비용 등 모든 측면에서 단가를 낮추어 줄것이다.
  3. 개발 기간이 단축된다 -> 2번과 같은 내용이라고 하면 할말이 없지만 이유는 2번과 같다. 아무튼 줄어들겠지...
  4. 같은 제품군으로 Automotive , Military , Consumer 등급의 제품이 모두 존재한다. 이는 개발시에는 저렴한 Consumer급 부품으로 개발을 한뒤, 실제 Flight Model 에는 필요한 등급의 제품을 골라쓸 수 있게 해준다.. 결국 돈

장점이 있으면 단점도 있겠지.? 아래와 같다.

  1. 초심자가 접근하기 어렵다. -> 기존 FPGA 혹은 MCU 와는 아예 개념이 다른 물건이기때문에 초반에 노오력을 좀 많이 해야한다.
  2. 칩이 비싸다. 명심하자 단가가 낮아진다그랬지 칩이 싸다곤 안했다. 같은 사이즈의 FPGA + MCU 보다는 싸겠지만 당신이 조금 큰 토이프로젝트를 한다면 지갑에게 미안해질것이다.
  3. 뭔가 다루기 복잡하다 -> 안에 뭐가 많아서 그런지 쓰기 뭣같다는 평이 많이 들려옵니다.. 근데 이건 뭘 쓰나 똑같으니 패스

아무튼 뭐 Zynq-7000의 내부구조가 어떻고 막 저러고 하는 내용은 초록창에 " Zynq-7000 " 이라고 검색하거나 자일링스 홈페이지에서도 볼 수 있으니, 본문에는 적지 않도록 하겠다.

두개만 알고가자. 이거만 알면 진크 반은 안거다

PS (Processing System ) -> ARM Cortex A9 ( Dual or Single )
PL ( Processing Logic ) -> Kintex or Virtex FPGA

보닌은 아직 뉴비고, 많은 성능을 필요로 하지 않기때문에, XC7Z010S 가 들어있는 Avnet의 Minized를 구매했습니다. Element 14 에서 구매하면 됩니당. ( 배송 겁나느림 참고하십쇼 )

개봉기라고 하지 않았느냐??

갑니다 가요.

아래와 같은 물건이 동봉되어 있습니다.

  • USB 케이블
  • 보드
  • 자일링스 툴 바우쳐 ( 구입일로부터 1년 이내 사용 가능 )
  • 안전 가이드
  • 간단 시작 매뉴얼

아무튼 이제 개봉은 다 했고.. 개봉기 끝

다음편부터는 환경구축과 헬로우 월드를 해볼 예정입니다.

그럼 20000~

PS. 저 보드 9월 7일에 받았는데, 귀찮아서 미루다보니 시험 준비 해야할 시기가 와서 이제 올립니다..

profile
노가다맨

0개의 댓글