Zynq学习笔记(基本设计流程)Word格式.docx

上传人:b****3 文档编号:15404775 上传时间:2022-10-30 格式:DOCX 页数:10 大小:718.63KB
下载 相关 举报
Zynq学习笔记(基本设计流程)Word格式.docx_第1页
第1页 / 共10页
Zynq学习笔记(基本设计流程)Word格式.docx_第2页
第2页 / 共10页
Zynq学习笔记(基本设计流程)Word格式.docx_第3页
第3页 / 共10页
Zynq学习笔记(基本设计流程)Word格式.docx_第4页
第4页 / 共10页
Zynq学习笔记(基本设计流程)Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Zynq学习笔记(基本设计流程)Word格式.docx

《Zynq学习笔记(基本设计流程)Word格式.docx》由会员分享,可在线阅读,更多相关《Zynq学习笔记(基本设计流程)Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

Zynq学习笔记(基本设计流程)Word格式.docx

l点击I/OPeripherals,配置UART1:

MIO48..49,BaudRate配置在PS-PLConfiguratin中。

l勾选USB0,28-39

l勾选Ethernet0,改EMIO为MIO:

16-27,打开“+”,勾选MDIO:

52-53

l添加SD040-45,CD:

47,WP:

46

l点开GPIO,勾选GPIOMIO,设置MIO的Direction:

50-51为输入,MIO7只能是输出,其余为输入输出。

若看不到,就向右拉移动条。

5.配置PS时钟:

CLKIN=33.3333(常用的)。

CPU=666.6666;

DDR_CLK=533.333.

CPUClockRatio=6:

2:

1,均为默认值。

设置外设时钟。

QSPI的模块内部有一个2分配的电路,应此想设置他的工作频率为100M,就需要将输入时钟设为200MHz。

SDIO(即SD卡的时钟),设为50MHz。

Ether0:

1000MHz。

PL时钟:

勾选FCLK_CLK0时钟并设置相应的时钟:

100MHz。

6.配置DDR。

EnableDDR(打勾)。

DDR3,MT41J128M16HA-15E,32BIT(两片拼接而成),InternalVref打勾;

填写Train/BoardDetail,两种方式:

一用户直接写;

二通过计算。

选择“计算”方式,然后点OK,填写各组信号线在PCB板上的实际长度和Package的数值,相应的Delay参数就计算好了。

7.在输出DDR上右击设为MakeExternal。

将PS上的固定IO脚引到FPGA的外面。

8.在输出FIXED上右击设为MakeExternal。

9.在system的空白处右击,AddIP…,添加AXIGPIO,设置为ALLOutput。

点击RunConnectionAutomation自动连线GPIO的S-AXI。

10.在GPIO的脚右击选择MakeExternal。

选择输出端口gpio,Ctrl+E,打开ExternalInterfaceProperties,修改端口的Name为LED_DutyCycle。

(也可以在BlockDesign中右击,选择CreateInterfacePort,产生一个输出端口,然后连接。

11.产生时钟输出端口。

右击:

CreatePort,鼠标移动到端口上,出现铅笔,连接FCLK_CLK0.

12.其它信号保持默认。

13.使用tools中的ValidateDesign检验设计是否合理。

不合理就会报错,一般是连线不对,需要调整连线。

14.可以使用重新布局按钮,自动将IP放置整齐。

输出时钟脚可以通过生产的Port来连接。

15.在Source中右击CreateHDLWrapper。

16.添加预先写好的PWM_Controller.v到工程的源文件下。

17.连接到PWM_Controller到CPU上,并修改LED_DutyCycle_tri_o,FCLK_CLK_0为内部连线.

PWM_Controllerpwm1(

.Clk(FCLK_CLK_0),

.DutyCycle(LED_DutyCycle_tri_o),

.PWM_out(LEDS)

);

根据verilog的语法要求,屏蔽以下语句:

//FPGA_CLK_0,

//LED_DutyCycle_tri_o,

//outputFPGA_CLK_0;

//output[31:

0]LED_DutyCycle_tri_o;

18.添加输出端口:

LEDS。

LEDS,

output[7:

0]LEDS;

19.保存文件。

20.综合。

点击RunAnalysis。

综合完成后,点击“OpenSynthesizedDesign”,打开综合后的网表设计,准备分配引脚。

21.选择菜单“Layout”/IOPlanning,在右下部的I/OPort找到LEDS,打开选择LEDS[7]并设置Site=U14,依次设置其他LEDS的引脚。

LEDS[0:

7]=T22,T21,U22,U21,V22,W22,U19,U14.

在LEDS的I/OStd上,修改IO标准LVCOS3.3:

LVCMOS33*。

File\SaveConstraints,保存文件为top.xdc。

在Sourse\Constraints\constrs_1下可以看到。

22.Synthesis、Implementation、GenerateBitstream。

同时选择“OpenImplementDesign”。

23.File/Export/ExporthardwaretoSDK…,选择“LaunchSDK ”。

24.在SDK中,建立板级支持包。

(也可以和应用工程一起建立)。

25.(红色选做)建立ApplicationProject应用程序helloworld。

26.建立Jtag配置(USB),ProgramFPGA.然后才能下载程序进行调试。

27.然后,RUN/Debug。

开始软件设计

1.在SDK中创建应用工程。

File\New\ApplicationProject,工程名:

LED_Dimmer,使用已有的板级支持包,Next,模板:

空工程。

2.建立一个main.c源文件。

File/New/SourceFile。

此时会有错误,但正确编辑main.c文件后错误会消失。

3.下面是main.c的具体设计步骤,附件为完整的程序,可以拷贝以节省时间。

4.点击system.mss,可以找到外设的驱动和例程,axi_gpio_1,Examples(点击);

打开xgpio_example.c。

5.在main.c中从xgpio_example.c中拷贝并添加两个头文件。

#include"

xparameters.h"

xgpio.h"

6.定义GPIO的ID号:

#defineGPIO_EXAMPLE_DEVICE_IDXPAR_AXI_GPIO_1_DEVICE_ID

在Parameter.h上用F3可以查到GPIO的ID为XPAR_AXI_GPIO_1_DEVICE_ID。

7.GPIO有两个通道,定义使用第一个。

#defineLED_CHANNEL1

8.例化驱动或定义驱动的句柄:

XGpioGpio;

9.GPIO初始化:

Status=XGpio_Initialize(&

Gpio,GPIO_EXAMPLE_DEVICE_ID);

10.设置GPIO的方向为输出。

XGpio_SetDataDirection(&

Gpio,LED_CHANNEL,0);

11.往GPIO写0,灭灯。

XGpio_DiscreteWrite(&

12.等待键盘输入数据函数(1-9)。

value=inbyte();

13.转换成周期,体现为灯的亮度。

周期越小灯越亮。

period=value-0x30;

brightness=period*110000;

14.通过GPIO写周期数控制灯的亮度。

Gpio,LED_CHANNEL,brightness);

15.此时在standalone_bsp_0中一直有一个红色的错误,可以采用Project\Clean…=>

Project\BuildAll的方法消除。

16.ProgramFPGA。

17.进入软件调试环境Debug软件程序。

或RunAs….

18.测试。

打开串口调试助手(不能使用SDK的Terminal),利用键盘,输入0-9的数字。

0关灯,1-9越来越亮。

【上电启动的配置】Lab8

1.利用FSBL模板建立FSBL的boot程序。

2.使用XilinxTools/CreateZynqBootImage命令建立镜像文件。

首先在FSBLelf的Browse中选择Boot.elf,该文件会自动添加到下边的文件列表中。

然后添加Bitstream,在hw下;

再添加LED_Dimmer.elf文件。

三者的顺序不能颠倒。

最后Create。

3.使用xilinx-tool/ProgramFlash.选择qspisingle,offset可以不填写内容。

Program.

4.设置boot模式。

输入0,1-9测试

5.将LED_Dimmer.BIN文件名字改为BOOT.BIN(后缀不用修改),再拷贝到SD卡中,并插入Zedboard。

6.设置boot模式。

7.上电。

附件:

/*

*main.c

*

*Createdon:

2013-7-23

*Author:

910704

*/

#defineGPIO_EXAMPLE_DEVICE_IDXPAR_GPIO_0_DEVICE_ID

#ifdefPRE_2_00A_APPLICATION

#defineXGpio_SetDataDirection(InstancePtr,DirectionMask)\

XGpio_SetDataDirection(InstancePtr,LED_CHANNEL,DirectionMask)

#defineXGpio_DiscreteRead(InstancePtr)\

XGpio_DiscreteRead(InstancePtr,LED_CHANNEL)

#defineXGpio_DiscreteWrite(InstancePtr,Mask)\

XGpio_DiscreteWrite(Instanc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1