Introdução ao Zynq 7000. Um guia para iniciantes

Mais recentemente, me deparei com uma das opções para uma placa de depuração com SoC Zynq XC7Z020. Depois de pesquisar materiais na Internet, como fazer, e tentar lançar meu projeto mínimo, descobri que existem várias armadilhas. É sobre isso que eu gostaria de falar no artigo. Quem se importa - bem-vindo ao gato.





Importante! Antes de começar a história, gostaria de fazer uma reserva antecipada de que o objetivo principal que estou perseguindo ao escrever este artigo é mostrar aos amadores por onde começar ao estudar placas de depuração baseadas em Zynq. Não sou um desenvolvedor profissional de FPGA e SoC Zynq e posso cometer erros no uso da terminologia, não usar as melhores formas de resolver problemas, etc. Mas qualquer crítica construtiva e bem fundamentada é bem-vinda. Bem, vamos ...





Que tipo de depuração é essa? Mostre-diga ...

Por muito tempo eu quis jogar com SoC Zynq, mas minhas mãos não conseguiam alcançar. Mas, mais uma vez pesquisando - vi que a depuração com Zynq a bordo, da QMTech, está sendo vendida por um preço completamente lógico, se chama Bajie Board. Debug está disponível em vários sabores com diferentes sabores Zynq SoC. Escolhi para mim a versão XC7Z020 e encomendei-a imediatamente, depois de algumas semanas já a tinha nas mãos.





, . , 5/2, mini-USB microSD Flash- SanDisk 16 Linux. , , USB-, Putty mini- Embedded Linux. Linux Zynq, , , ...





, -:





  • SoC: XC7Z020-1CLG400C 





  • (datasheet:https://www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf);





  • 33,333 ;





  • DDR3 512 Micron, MT41K256M16TW-107:P;





  • micro SD;





  • FPGA TPS563201 ( 4.5V 17​V, 3A);





  • 50- Digilent PMOD , , 2,54 . ( , );





  • (PS);





  • RGMII Ethernet- Realtek RTL8211E-VL, PS;





  • , (PL) (PS);





  • HDMI- TI TPD12S016;





  • JTAG-;





.





, , - JTAG-. .





, Xilinx Vivado Xilinx SDK. , , Vivado . Xilinx SDK ( Vitis) .





YouTube Vivado 2019.1 ( - , Xilinx SDK) - , 2020.2.





Xilinx Zynq - Xilinx, . , , Vivado - 2020.2, 2020.3 .. Versal SoC, Zynq.





, .. Linux - Vivado Archive - 2019.1   Vivado HLx 2019.1: WebPACK and Editions - Linux Self Extracting Web Installer Vivado Design Suite - HLx Editions - 2019.1. Windows - Windows Self Extracting Web Installer.





, :





chmod +x ~/Downloads/Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin
~/Downloads/Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin 
      
      







  1. , ;





  2. ;





  3. Vivado HL WebPACK;





  4. , SoC Zynq .





  5. 16 -, .





Vivado JTAG-. Linux :





cd Xilinx2019.1/Vivado/2019.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers 
      
      



6 JTAG- . :





cd ~/Xilinx2019.1/Vivado/2019.1/bin
./xsdb 
xsdb% connect -host localhost   
xsdb% jtag targets                                                                                                                                                           
  1  Platform Cable USB 13724327082b01
     2  arm_dap (idcode 4ba00477 irlen 4)
     3  xc7z020 (idcode 23727093 irlen 6 fpga)
      
      



.





Hello, world “ ”

LED- . 





Vivado . File - Project - New





, Next > PL-Blink.





RTL Project Do not specify sources at this time.





xc7z020clg400-1.





Finish.





Vivado !





, , , =)





Sources Add Sources.





Add or create constraints. 





Create file physical_constr. .





Finish Soures :





, , .  , , Ethernet- RTL8211E-VL PLL, 125 H16 (IO_L13P_T2_MRCC_35).  ? =)





, .





, , H17 (IO_L13N_T2_MRCC_35) , .





. constraints- :





# User LED and Clock
set_property IOSTANDARD LVCMOS33 [get_ports led_h17_d4]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]

set_property PACKAGE_PIN H17 [get_ports led_h17_d4]
set_property PACKAGE_PIN H16 [get_ports sys_clk]
      
      



, , , , . 





, get_ports ( ). , Verilog-. 





, Physical Constraints 8.





Design Source. Sources Add Sources.





Add or create design sources. Create File, , Verilog. Finish.





Yes.





:





Verilog- :





//  ,         Verilog.
//  ,      .

`timescale 1ns / 1ps 	
		
//   - (   ++)
module pl_blink(input sys_clk, output led_h17_d4);
    
//         
reg r_led; 

//      ,   
reg [31:0] counter;

//           
initial begin
    counter <= 32'b0;	//   	
    r_led <= 1'b0;		//      
end

//    ,        
always@(posedge sys_clk)
begin
    counter <= counter + 1'b1;	//  
    
    if(counter > 12000000)		//      
    begin
        r_led <= !r_led;		//      
        counter <= 32'b0;		//  
    end   
    
end

assign led_h17_d4 = r_led;          //     ()
           
endmodule

      
      



Ctrl + S . , . - , Zynq .





Run Synthesis . , :





Run implementation . Generate Bitstream :





, , Open Hardware Manager :





Hardware Manager Auto connect, :





No menu à esquerda ou clicando com o botão direito do mouse em xc7z020_1 no menu Hardware , clique no item Dispositivo do programa .





Na próxima janela, certifique-se de que o caminho para o arquivo bitstream esteja especificado corretamente e clique no botão Programa.





O programa está carregado no nosso quadro ...





E depois de um momento, o LED D2 na placa acende, o que nos informa que “FPGA FEITO” e na outra extremidade da placa vemos um LED piscando alegremente. =)





Em geral, a tarefa pode ser considerada concluída. Acho que à medida que dominar a linguagem Verilog e resolver quaisquer novos problemas usando esta placa, serei capaz de agradar você novamente.








All Articles