Conheça a Zybo board: ARM e FPGA em uma única placa

Zybo-board-destaque Zybo board

Há algum tempo atrás foi noticiado aqui no embarcados a nova geração de FPGAs contendo os novos System-on-Chip (SoCs) da Altera e Xilinx. Esta nova geração de FPGAs contém em um único encapsulamento uma parte de lógica programável e um ou mais núcleos dedicados com processador ARM.

 

As duas líderes do mercado de dispositivos programáveis, Xilinx e Altera, têm lançando suas novas plataformas de desenvolvimento, integrando as placas com os softwares (SDK). Neste artigo irei introduzir um pouco mais sobre a Zybo board da Digilent com o  Zynq 7000, SoC da Xilinx que une o melhor de duas plataformas para desenvolvimento embarcado: um ARM-cortex A9 dual core e parte de lógica programável correspondente a 4,400 logic slices.

 

 

Zybo board: características gerais

 

Zybo-board-01
Figura 1 - uma visão geral da  Zybo board

 

A Zybo board é mais uma placa de desenvolvimento resultado  da parceria da Digilent com Xilinx. A placa possui os principais conectores e padrões de conexão para desenvolvimento embarcado. Como introduzido anteriormente, o grande diferencial da placa, do Zynq 7000, é a composição de ARM com FPGA.

 

O SoC Zynq 7000 caracteriza a placa com:

  • 650 MHz dual-core ARM Cortex-A9 processor;
  • Memória DDR3;
  • Peripheral controllers: SPI, UART, CAN, I2C;
  • Lógica programável equivalente a FPGA Artix-7;
  • GPIO: 6 pushbuttons, 4 switches, 5 LEDs e 30 I/Os de uso geral (PMOD ports);
  • Conversor A/D  de 12-bits com 1MSPS;
  • Conexão VGA, HDMI, ethernet e USB OTG;
  • Slot para cartão micro-SD.

 

Além de sua poderosa configuração de hardware, outro grande diferencial da placa é a integração com o novo software de desenvolvimento da Xilinx, o Vivado Design Suite, que substitui o ISE, usado nas plataformas de FPGA anteriores. O software Vivado fornece uma grande variedade de IPs para a placa, além de ferramenta para o seu desenvolvimento próprio de módulos.  

 

Vale ressaltar que apesar de placa ser uma plataforma inicial para desenvolvimento com o SoC Zynq 7000, torna-se necessário o projetista possuir vasta experiência com FPGA (desenvolvimento com Verilog/VHDL) e integração de plataformas. Como tendência da área de FPGAs, o desenvolvimento em System Verilog poderá ser um diferencial para o uso da placa.

 

Como de costume da maioria das placas de desenvolvimento baseadas em FPGA, o tamanho da placa é um pouco grande. A Figura 2 mostra um pequeno comparativo do tamanho da placa quando comparada ao Raspberry Pi 3.

 

Zybo-board-02
Figura 2 - comparação do tamanho da placa com o Raspberry PI 3

 

 

Programando a Zybo board: lógica programável e ARM

 

Para o desenvolvimento com a Zybo board algumas possibilidades estão disponíveis. O grande diferencial da placa é o uso em conjunto da parte de lógica programável com o ARM, realizando a integração pelo barramento AMBA. Apesar disso, as opções de programar apenas a parte de lógica programável ou o ARM estão disponíveis.

 

A programação para o ARM está disponível em C, alguns tutoriais na internet estão disponíveis. Vale ressaltar que devido a complexidade da placa e seu poder de processamento, todo codigo por mais simples que seja pode se tornar complicado para implementar devido ao um sistema um pouco complexo.

 

Para a correspondente programação da parte de lógica programável, o uso de Verilog e System Verilog parecem ser uma boa pedida. Particularmente, minha experiência com placa resume-se a programação da parte de lógica programável até o momento. Estou estudando um pouco sobre a integração com o ARM através do barramento AMBA. Para os interessados sobre a placa existe um ebook free sobre a Zybo, já mencionado aqui no site.

 

 

Aplicações e projetos com a Zybo/Zynq 7000

 

Pesquisando na internet você poderá encontrar os mais diversos com a placa. Fora os tradicionais projetos envolvendo alguma linguagem de descrição de hardware, a placa possibilita a execução de distribuições de Linux e até Ubuntu quando usada com um cartão micro-SD.

 

Os projetos que pude trabalhar até o momento com a Zybo além dos testes básicos, foram referentes a área processamento de sinais usando Verilog/SV (aplicações de filtros FIR). A característica das conexões GPIO da placa são para possibilitar o encaixe de PMODs, um tipo de adaptador padrão da Digilent. A figura 3 mostra o PMOD DA2 contendo conversor digital analogico (DAC).

 

Zybo-board-03
Figura 3 - Zybo board com PMOD para conversor D/A

 

Outros projetos que achei na internet que exploram mais características da placa são listados abaixo:

 

A depender da resposta deste artigo e usuários que possam se interessar em como fazer um projeto em HDL no Vivado, um próximo post poderá ser um tutorial em como fazer o primeiro projeto usando Verilog na Zybo ou em qualquer outra FPGA que use o Vivado SDK.

 

Segue um vídeo com algumas primeiras impressões da placa e uma visão geral.

 

 

 

Vale a pena comprar a Zybo board?

 

Após uma breve introdução sobre a placa Zybo e o Zynq 7000 a pergunta natural a se fazer é: vale a pena comprar a placa?

 

Como parte da resposta deve-se salientar qual nível de experiência você tem com ferramentas de desenvolvimento baseadas em FPGA. Para aquelas que possuem conhecimento intermediário/avançado em desenvolvimento com placas FPGAs da Xilinx ou até mesmo Altera, a Zybo board será o próximo passo em desenvolvimento devido a sua integração com o ARM (placas baseadas em SoC). Eu pessoalmente me incluo nesta categoria, tenho aprendido sobre a placa e ferramenta Vivado.

 

De uma maneira diferente, se você começou a programar em VHDL ou Verilog recentemente e deseja comprar uma placa para brincar a Zybo não será o modelo mais adequado. A placa contém documentação aberta, como o Zynq book e tutoriais, porém possui conceitos um pouco mais complexos e exige certa experiência.

 

Assim, o veredicto final a respeito da Zybo é que ela se destina a projetistas acostumados a programar em HDL e para projetos que exijam paralelismo, poder de processamento e uma possível integração entre FPGA e microcontrolador. Algumas alternativas para a Zybo, aos que desejam explorar as possibilidades do Zynq 7000 é a Pynq, plataforma baseada no Zynq que suporta Python como linguagem de programação.

 

Infelizmente não temos nenhum revendedor no Brasil da placa, porém a mesma pode ser comprada no site da Digilent e estudantes podem obter preço educacional.

 

Estou a disposição de toda comunidade do Embarcados para dúvidas sobre a Zybo board e o Vivado. Espero que o próximo post seja um breve tutorial da programação da lógica programável neste novo SDK!

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Eronides Da Silva Neto
Engenheiro da Computação no Centro de Estudos e Sistemas Avançados do Recife (C.E.S.A.R). Mestrando em Ciências da Computação no Centro de Informática da Universidade Federal de Pernambuco (CIn-UFPE). Engenheiro Eletrônico pela Universidade Federal de Pernambuco (DES-UFPE). Possui experiência profissional no desenvolvimento de sistemas embarcados e em Eletrônica Digital com dispositivos lógico programáveis (CPLDs e FPGAs).

3
Deixe um comentário

avatar
 
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Rafael SouzaEron NetoBruno Beraldi Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Rafael Souza
Visitante
Rafael Souza

Olá Eron, existe alguma placa de desenvolvimento de baixo custo para iniciantes n desenvolvimento com FPGAs?

Bruno Beraldi
Visitante
Bruno Beraldi

A Altera tem alguma produto equivalente ao Zynq 7000?

Eron Neto
Visitante
Eron Neto

Sim Bruno! A Altera recentemente atualizou alguma de suas placas de desenvolvimento FPGA para a linha baseada em SoCs. Um exemplo fica por conta da placa DE2.

https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=30