����Ͷ���ڿ�
���߿ͷ�

��ѯ�ͷ� ��ѯ�ͷ�

��ѯ���䣺hz2326495849@163.com

����ְ���������

��������ڿ�

ְ�ƿ�������

ͼ������ڿ�

�豸����ʦ

�����ڿ�����

ũ��ˮ��ְ��

SCI���ķ���

���̹���

ְ����������

�����ڿ�����

��̬�ڿ�����

�˹���������

���Ľ�ѧ����

�������ķ���

����Ӣ���ڿ�

�ǿ�ְ������

����¼��

��������

��ľְ������

����ѧ�����ڿ�

�������ְ��

԰�ֹ���ְ��

��ѧ�����ڿ�

���ķ���Ҫ��

���ʳ������

�߼�ְ�Ʋ���

��ѧ��������

ʯ�ͻ���ְ��

��ͨ����

��������ʦ

��ѧѧ��Ͷ��

�����ڿ�����

���ݹ�������

���������

�����ڿ�����

ͳ��ʦְ��

��ѧ������

��湤��ʦ

����ʦְ��

ú��������

����ʦְ��

��ѧ���ڿ�

�������ķ���

���繤��ְ��

sci�ڿ�����

ͨ��ְ������

���������ڿ�

��ѧ���ķ���

�������ķ���

�г�Ӫ������

�������ʦ

�������ķ���

�ڿ����ĸ�ʽ

��������

����XC7Z010���Զ���IP����

ʱ�䣺2021��04��28�� �������ࣺ�������� ���������

ժ Ҫ��Zynq7000ϵ�л���Xilinxȫ�ɱ�̵Ŀ���չ����ƽ̨�ṹ��һ��SoCоƬ��������Cortex-A9˫��ARM��FPGA��Xilinx��˾Ϊ����ṩ����IP�ˣ���Vivado��IP Catalog�п��Բ鿴����ʱ��ЩIP�˸��ӣ����߲�����ȫ�����û��������Xilinx��˾Ϊ�û��ṩ�û�

����ժ Ҫ��Zynq7000ϵ�л���Xilinxȫ�ɱ�̵Ŀ���չ����ƽ̨�ṹ��һ��SoCоƬ��������Cortex-A9˫��ARM��FPGA��Xilinx��˾Ϊ����ṩ����IP�ˣ���Vivado��IP Catalog�п��Բ鿴����ʱ��ЩIP�˸��ӣ����߲�����ȫ�����û��������Xilinx��˾Ϊ�û��ṩ�û����Դ��������Լ���IP�ˣ�ϵͳ�����ƣ�����ơ����Ľ�����Zynq7000ϵ��оƬ�����Vivado�н���AXI�������͵�IP�ˣ�ʵ���Զ���IP�ˣ������顣

�����ؼ��ʣ�Z7 �Զ���IP AXI����

���������

����1 ����

����Zynq-7000ϵ��о����������ARM������ϵͳ���������˫�˵�CortexTM-A9�������������������Ĵ���Դ�����Ϊ���ģ�������������ϵͳ�м������ڴ�������ʹ��������裬ʹCortexTM-A9�ĺ���Zynq-7000����ȫ�����ڿɱ���߼���Ԫ����Zynq-7000ϵ��оƬ����ARM��PS���֣���FPGA����(PL)������PS����������Cortex™-A9��������AMBA®�������ڲ��洢�����ⲿ�洢���ӿں����衣��Щ������Ҫ����USB���߽ӿڣ���̫���ӿڣ�SD/SDIO�ӿڣ�I2C���߽ӿڣ�CAN���߽ӿڣ�UART�ӿڣ�GPIO�ȡ�PS��PL���ֿ���Эͬ������Ҳ���Զ���������

�����������ְ֪ʶ�������Ӧ���о��ڿ�Ͷ�������Ҫ��

����Ϊ�����û�����ʹ�ã�xilinx��˾�ṩ�����IP�ˣ���ʱ����Щ�ӿ�ʱ���ӣ�������ʵ��Ӧ�ã���ˣ�xilinx��˾���ṩ���Զ���IP�ķ����������û��ĸ�������ͬʱ�ṩ�˵��͵Ľӿ�ip���û�ʹ�á������Զ���IP�ķ���ʵ��PS-PLͨ�Žӿ���ʹ��Xilinx�ṩ��IP��װ���ߣ����û������װ��Ϊ��׼AXI������ʽģ�飬��ģ����ͼ�λ��ķ�ʽ���붥���ļ��в�����AXI���ߵ��Զ����ӣ����ַ�ʽΪ�û��ṩ��ϵͳ�������Ի��ķ���

����2 �����µ�ϵͳ����

��������ʹ�úڽ𿪷�������Զ���IP�ķ������ڽ𿪷���ʹ�õ�оƬΪXilinx��˾��xc7z020clg400-2�����巽�����£�

����1)��Vivado�����������½���һ������Ϊtest_IP���̣�������һ����Ϊsystem��Block Diagram�ļ������ڸ�ԭ��ͼ�����ZYNQ7 Processing System�ں�ϵͳ��

����2)˫��Diagram�������ZYNQ Processing System,��ZYNQϵͳ�����ý��档

��������Page Navigator��������8������ֲ�ΪZynq Block Design, PS-PL Configuration, Peripheral I/O Pins, MIO Configration, Clock Configuration, DDR Configuration, SMC Timing Calculation, Interrupts����Щҳ��ѡ���Ӧ����ZYNQ�IJ�ͬͬӲ��ģ������ã�����PS_PLҳ���ṩ��PS��PL����ؽӿ�������Ϣ�Լ�PS����һЩ������Ϣ;Peripheral I/O Pinsҳ����Ҫ�Ƕ�һЩͨ������ӿڵ�����;MIO Configruationҳ����Ҫ�Ƕ�MIO�Ѿ�EMIO�ķ������;Clock Configruationҳ����Ҫ�Ƕ�PS��ʱ����Դ�����ú͹���;DDR Configrationҳ����Ҫ�Ƕ�DDR������һЩ����������;Interruptsҳ����Ҫ�Ƕ��жϽ������ù���

����2.1) ���Peripheral I/O Pinsѡ�

������AX7020�������ϣ� MIO48��MIO49�����ӵ�UARTоƬ�ϣ�����Ϊ����ͨ��ʹ�õġ�����������ó�UART1�Ĺ��ܣ����MIO48,49��Ӧ��UART1, �������ɫ�ᷢ����ɫ�����MIO48,49�ĹܽŹ��ܾ͹̶��ˣ�ֻ����ΪUART�Ĺ��ܡ�����MIO48Ϊ���ڷ��ͣ�MIO49Ϊ���ڽ��ա�

����2.2)���PS-PL Configurationѡ�

������GemeralĿ¼�£����Կ���UART1�IJ�����115200,���ѡ��115200�����Ը�����Ҫ���ġ� ��Ϊ��ʵ����û���õ�PL�������裬���Ծ�û��PL��������Ҫ�ҵ�AXI�������ϣ�Ҳ�Ͳ���ҪAXI GP0��Master�����ˣ���������FCLK_RESET0_N��M AXI GP0 interface��ѡ��ȥ����

����2.4) ���Clock Configuration�ꡣ

��������������ʾZYNQϵͳ��һЩʱ�ӣ���������ʱ����33.33333Mhz, �뿪?����ϰmPS?mϵͳʱ����һ���ǡ�CPU�Ĺ���ʱ����666.666666Mhz, DDR�Ĺ���ʱ����533.333333Mhz����Щʱ��Ƶ��Ĭ�ϡ�

�������ڱ�ʵ����û���õ�PL�������裬���Կ��԰�PL��FCLK_CLK0ǰ���ѡ��ȥ��,�������FCLK_CLK0��

����2.5) ��DDR Configrationѡ�

���������������ѡ��DDRоƬ�����ƺ�һЩ�������˽�����Memory Partѡ������Ҫѡ�����������DDR3�ͺ�һ�������ƣ�AX7020������ѡ��MT41J256M16 RE-125��

����������ɵ��OK�˵�Vivado�Ŀ���������

����3 �Զ���IP����

����1) �����Զ���IP��

����1.1)����˵�Tools->Create and Package IP;

����1.2)���next��ѡ��Create a new AXI4 peripheralѡ��;

����1.3)��ʾIP�����֣��汾����������Ϣ����������޸���IP�����ּ�test_IP�ʹ��λ��;

����1.4)��ʾAXI���߽ӿ����֣��ӿ���Slave, ���ݿ����32λ��IP�ڲ��ļĴ�������Ϊ4����Ĭ��ѡ����Next;

����1.5)���Finish��ɡ�

����2)����Զ���IP�˵Ĺ��ܡ�

����2.1)��IP Catalog���棬�Ҽ�ѡ��test_IP_ip_v1.0, Ȼ��ѡ��Edit in IP Packagerѡ��;

����2.2) ���OK�� ������Զ�������һ��Vivado���ڶ��û��Զ����IP�˽��б༭;

����2.3)˫�������ļ�test_IP_ip_v1_0.v�򿪣���“users to add ports here”λ����ӹܽŶ˿ڶ��壬���£�

����output wire SX_PRF,

����output wire SX_TR,

����input wire sys_clk,;

����2.4) �ڶ����ļ�test_IP_ip_v1_0.v�ij���ԹܽŽ�������,���£�

����.SX_PRF(SX_PRF),

����.SX_TR(SX_TR),

����.sys_clk(sys_clk),;

����2.5) ��˫����rtc_ip_v1_0_s00_AXI.v�ļ���������?mλ����ӵĹܽŶ˿ڶ������£�

����output wire SX_PRF,

����output wire SX_TR,

����input wire sys_clk,;

����2.6)��“Add user logic here”λ�����ʵ�ֲ���TR��PRF�źŵĴ������£�

����reg[18:0] timer_cnt;

����reg SX_PRF1;

����reg SX_TR1;

����always@(posedge sys_clk)

����if(slv_reg0==32'd1)

����begin

����if(timer_cnt >= 19'd265000)

����timer_cnt<= 1'd0;

����timer_cnt = timer_cnt + 1'd1;

����case(timer_cnt)

����19'd0: begin SX_PRF1<=1'b1;SX_TR1<=1'b1;end

����19'd1000: begin SX_PRF1<=1'b0;SX_TR1<=1'b0;end

����19'd7500: begin SX_PRF1<=1'b1;end

����19'd8500: begin SX_PRF1<=1'b0;end

����19'd40000: begin SX_PRF1<=1'b1;end

����19'd41000: begin SX_PRF1<=1'b0;end

����19'd265000: begin SX_PRF1<=1'b1;SX_TR1<=1'b1;end

����default:begin SX_PRF1 <= SX_PRF1; SX_TR1 <= SX_TR1; end

����endcase

����end

����else

����begin

����SX_PRF1<= 0;

����SX_TR1<= 0;

����timer_cnt <= 0;

����end

����assign SX_TR=SX_TR1;

����assign SX_PRF=SX_PRF1;

����2.7) ���Save All Files�������ļ�;

����2.8)˫��IP-XACT�µ�component.xml�ļ������ص�Package IP-test_IP_ip���ڣ����Port and Interfaces�꣬���Merge changes from Ports and Interface Wizard��

����2.9) �ٶ�ǰ��û�д�d File Groups���Merge changes from File Groups Wizard�������ļ��������� ѡ��Review and Packageѡ�Ȼ����Re-Package IP����IP�˵����á��ر�IP�˵�Vivado���̣��ص�ϵͳ���̽��档

����4 ���Լ���ļ�

����1)��Diagram���ڣ��Ҽ�����հ״���ѡ��Add IP��ѡ��test_IP_ip_v1.0˫����ӡ�

����2)���Run Connection Automationѡ� ѡ��All Automation��ʹϵͳ�Զ����Ӷ˿ڣ����Run Block Automationѡ� ѡ��timer_cnt��reg SX_PRF��reg SX_TR�������ܽţ��Ҽ�ѡ��Make External��

����3)��Source������ѡ��system.bd,�Ҽ���ѡ��Generate Output Projects��Create HDL Wrapperѡ��

����4)��xdc�ļ�����ӹܽ�Լ�������£�

����set_property IOSTANDARD LVCMOS33 [get_ports SX_PRF]

����set_property IOSTANDARD LVCMOS33 [get_ports SX_TR]

����set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]

����set_property PACKAGE_PIN U18 [get_ports sys_clk]

����set_property PACKAGE_PIN R14 [get_ports SX_TR]

����set_property PACKAGE_PIN P14 [get_ports SX_PRF]

����5) ���Generate bitstream���ɱ������ļ���

����5 Ӳ������SDK

����1) ����Ӳ���ķ�����ѡ��˵�File->Export->Export Hardware����bit�ļ�Ҳһ�𵼳���Ӳ��������ѡ��˵�File->Launch SDK������SDK����������

����2)��SDK�����������½�һ����Ϊip_test ���̺�BSP�⹤�̣���Ŀʹ��helloworldd ����ģ�塣

����3)�޸�ip_test���̵�helloworld.c���¡�

����#include

����#include "platform.h"

����#include "xparameters.h"

����void print(char *str);

����int main()

����{

����int i,j;

����init_platform();

����while(1)

����{

����for(i=0;i<1000;i++)

����for(j=0;j<10000;j++);

����Xil_Out32(XPAR_SX11_IP_0_S00_AXI_BASEADDR,0);

����for(i=0;i<1000;i++)

����for(j=0;j<10000;j++);

����Xil_Out32(XPAR_SX11_IP_0_S00_AXI_BASEADDR,1);

����print("Hello World\n\r");

����}

����cleanup_platform();

����return 0;

����}

����6 �ܽ�

�������Ľ�����xilinx��˾�Զ���IP�ķ������Լ�ʹ���Զ���IP���п����ķ������������㣬ʵ���Ըߣ��������û��ĸ��Ի�Ҫ�󣬷�װ�õ�IP���ں����Ŀ��������п���ֱ�ӵ��ã���ǿ����Ŀɶ��ԣ��򻯿������̡�

�����ο����ף�

����[1] xilinx��Serial RapidIO Gen2 Endpoint v4.0 LogiCORE IP Product Guide��2015

����[2] TI��SRIO Programming and Performance Data on Keystone DSP��2011

�������ߣ�����