vivado入门教程峰哥版Word文档格式.docx

上传人:b****8 文档编号:22829909 上传时间:2023-02-05 格式:DOCX 页数:20 大小:346.09KB
下载 相关 举报
vivado入门教程峰哥版Word文档格式.docx_第1页
第1页 / 共20页
vivado入门教程峰哥版Word文档格式.docx_第2页
第2页 / 共20页
vivado入门教程峰哥版Word文档格式.docx_第3页
第3页 / 共20页
vivado入门教程峰哥版Word文档格式.docx_第4页
第4页 / 共20页
vivado入门教程峰哥版Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

vivado入门教程峰哥版Word文档格式.docx

《vivado入门教程峰哥版Word文档格式.docx》由会员分享,可在线阅读,更多相关《vivado入门教程峰哥版Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

vivado入门教程峰哥版Word文档格式.docx

一般都是rtl的工程,其他的我还没研究过,直接看官方文档学的,做fpga或者soc,sopc,都是rtl工程。

这里也有个可以勾选的地方,勾上的意思是现在不指定源文件,如果不够上,

就进入具体设置,有硬件语言的类型,ip的选择,andsoon,可以自己去看看,建议勾选,这些可以在工程中设置的,没有必要提前设置

单击next

这里面可选的就很多了,从上到下,从左到右简单的说下

Part和board分别指的是单个芯片和官方或者安富利的板子

下面的这些是指fpga的类和速度和温度,左后的search,是你之前用过的芯片的记录或者直接收你想要的芯片名字,第一次选好,以后直接到search中选就行

这个是zybo的板子的芯片型号,或者在board中直接选zybo,继续单击next,一个summary

继续单击next,vivado给咱们创建工程

创建好了就是这个样子,一个空的工程

接下来我们要建立一个空的图片,用来搭建zynq的底层,单击箭头指的地方

会出现下图这样

这个表示设计的名字和存储的路径,

般都是系统,

我习惯于功能加系统的方式命名,

比如

这次是对gpio进行操作,我会做gpio_sys,然后单击ok

接下来我们来添加zynq的ps,单击,或者单击

出现这个图

,再或者crtl+I

我们在search这输入zynq,选择第一个,单击左键或者回车,都行,

面的那个好像是

可以忽略不记)

完了是这个样子的

双击zynq

如图,配置zynq,这里是重点,详细说起来很多,可以参考ug585,我现在也没有全搞明白,也是觉得哪里不对去文档里找,那个文档1800多页,细读完了一定会忘,不如用哪看哪(个人观点)配置完是这样

单击runblockautomtian

完了是这样的,把ddr和fix——io引出来了

接下来就是本文重点,开始添加gpio的ip

双击

配置gpio的ip,简单改一下ip的位宽,

单击ok

然后直接单击

如图

然后在导航栏,点source

右键gpiosys

单击createhdlwapper

上面的那个是手动,后面让eda自动updata,选下面的就好,单击ok

在左侧的导航栏中,单击箭头指的位置

Wddlv±

A~τX!

P~9lβl'

tnι'

il≡>

ι-'

oi^3,p⅞l"

∣[-ιπ4Ah⅞Pι∣:

'

Φ)0OfHK?

事”硕£

.:

i:

VlUValSJliwdιπ∏9⅛gtJVj⅛

⅛la*≠>

*[>

M∣Z∙1J1VdH*⅞

IU--ιw⅞bB∣uix^i

iJU⅞G1χ;

^U]GSA3C∣Jjα-El;

5GJJJjelJIAlZQl£

^-SAL∣],L<

⅞IU∏DlA'

R⅞ι∣[-⅝TIBail寸JI|通拭]

bxG~SuE‰≤-ajαxd~iΛ≡~A]i±

i!

IJfIaJ*辺J>

1户jE[du]udi⅜g-[⅞.udi.s□∣自ik⅞∙h丄[P樽[-⅛Tj"

"

j∣J:

暫玄】

B4∣⅜⅞∣∣1Mhri∙∣⅞∣∙4⅞#

l∙Wl∣

■3WljWUlrjfΓJ

FW■IfII

■■■■W

j⅛⅛

Ii-HHJM.

MLJ∣⅞⅛J⅝jLH^a⅛⅛p∣]∣■

IIkL^TTlI*

*■]if∙HMi⅞flh<

F

Tm屮m-.**ElMUli⅝.WiMf+HMteHja■

3IJ;

⅞n

,,,a

■«

■WIII

*-l≡⅛⅛AL爭■・.JlliiLa⅞Bd⅛flI■

∣W

曲・胡.

LlIPIgIg3≡fΓ"

-m

卓≡⅛i・E4m∣I

θ⅛BJUθ6爭寅

ζ≡≡d!

蔚—粗韦

OTeIJJIMf/5X

«

I⅛~~∣-tj丨

>

Il

4⅞Bτu∣n⅛⅛p-6Hι⅝a¾

)*■

TOJisira≡1τιra2.1⅛E+⅜*5K⅞⅛J∣.14IgCllr⅛⅛GPJtιr^o⅜j∣P

Γ∣⅛S>

JΓWSUStHFMGSLt-

FaJCcSια≡3r*-+zjt~sJτ~^ι<

n≡,r■l⅛>

ffW⅛UtIll刑「

耳戸口np;

Jl!

-ClJiIllNJi⅞JW⅞

Iil-Opffl?

*1WIWSQJ

Q'

e⅛E4~1∣⅜~tlin;

∕3⅛Jθ597J∏□*JOU-5⅛∏J~pp?

≡⅞jjm-s⅛35a]tJeX3pj,o~ajτ⅛i□-□~3-iBpdri

TaLlCJ»

91蜩

][SJiHmP01Ii⅜rrdl-πoIueme],[Q∣-KlJ

eBii:

⅞⅞∙⅛r;

LrllE

U*IlnQ

iιl!

⅞t⅜3护JInIK^VL

TUDJ⅛dζ∣≡]SyILLi⅛

⅛>

¾

∙∙t*⅛φ⅞

!

q^∏pCLd-∏⅛Γ⅛□-*3*PTUM)・

Il

u⅜μ*aUM4E^[叫4g4uιr⅞*^u⅜ψw⅜∣HPζ4ιj

6-⅛∣td3"

p⅛d

τJ*Q*

门曲e电1»

Tl

ft[∏j∣p⅝jκ

M∣KR4lJ|h«

jL”|旳

■«

Ifr∙T1⅛;

⅛]JMJHIpJ

t⅛-j∏--;

1∏仲卯冲*

EdIt

ιι⅞1⅝IbiDiK-Id1ViF

c4T9agPaiTlRVLLI<

5;

Ua阳∣∣4s.τsaifμ3j¾

Ung

⅛rζ11⅛阴MqLa⅛坯ftlCΛu⅞.W⅞P

gC>

E-k⅝]IBda_■■..

AfeU-I^IV^—F*∙±

u轉Id曙*1∣ΛIW*IlliP

IifrTifCr«

1SWr^U⅝uh⅛⅞;

U4τ⅝t[nηs呼

InH3>

ffi∏ΞF

*訂咖4»

Ig≠i*4⅛4⅛⅛IJf□l5≡sα中枣IHτss⅛]「U]JPU[Q⅛HiX□社

JtF

B□[iaι□JJPl⅛∣∣t(d⅞t^MlIfllH^iAI

B5J**SFI曙評eBut⅞,⅜s∣s4f∙l4警

JnlVi<

T≡∣2”WlJIr

单击ok,然后编译,等着

分配管教,指定电平水平

LMOS33

如果之前忘了保存,这时候会弹出保存的,选

段漫长的等待之后,

save

然后这样,先不要综合,没有分配管教

在这点这个

然后在这选layout

然后选ioplane

单击之后如下图

分配完了,ctrl+s点ok

设置一个名字

可以叫pin_location然后综合

然后生成bit文件

这个bit文件可以生成,也可以不生成,取决于有没有pl,有的话就要生成bit文件

这两个过程很长时间!

最后好了单击ok

Vivado的工作要完成了,就剩最后两步File–》exportexporthardware

如下图

单击ok最后file

–》lanchsdk,vivado的工作就完成了

sdk使用

File—》new—》baordsuportpackage

默认选项就行

单击finish

如下图,再单击finish

左边多了一个bsp的文件夹

在这里有我们想要用的函数和一些参数信息

今天这个是gpio的,主要这个两个函数头文件

短则刚才建立bsp生成的bsp

Next,选helloword工程

单击finish多了一个工程

接下来就可以写程序了展开这个gpio的工程

打开如图

接下来我们先写程序,要讲三个函数

1.gpio初始化函数

2.gpio数据方向设置函数

3.gpio写数据函数

有关gpio大概有十二三个函数,在bspincludexgpio.h下,在crtl+左键,进入xgpio.c讲的很详细,不过是英语的,如图

这是讲初始化函数的

我先说这几个参数什么意思,再说怎么用

首先intXgpio_Initialize(Gpio*inr,u16DeviceID);

这个函数是有返回值的,返回一个int型,0和1

其中0:

XST_SUCCESS,1:

XTS_DEVICE_NOT_FOUND写程序的时候可以直接判断一个变量比如if(a==XST_SUCCESSorXTS_DEVICE_NOT_FOUND){}

或者if(a==0or1){}

前面的指针变量是指向某个gpio的,该gpio在xilinx中被定义为Xgpio类型的变量,后面的deviceid表示你要初始化的具体的gpio,这个id在bspincludexparameters.h下,比如

在这里可以对这些代码进行更改,如果觉得名字太长的话。

具体怎么用这个函数呢,我来仔细说

首先要包含两个头文件xparameters.h和xgpio.h然后声明一个Xgpio类型的变量最后调用Xgpio_Initialize函数

Ex:

#include“xparameters.h”

#include“xgpio.h”

XGpiogpio_led;

Xgpio_Initialize(&

gpio_led,0);

成功了,我们一步一步往下来

接下来我们来设置数据流方向,用到的就是voidXgpio_SetDataDirection(XGpio*inr,channel,direction),无反回参数的函数

简单的解释一下,指针跟前面的一样,channel,就是通道,在做gpioip配置的时候,不知道有没有注意到gpio有两个通道,所以这个值就是1or2,分别代表通道1和通道2,最后就是方向,数据是输入(读),还是输出(写),这里也是两个值0:

代表输出,1:

代表输入

voidXgpio_SetDataDirection(&

gpio_led,1,0);

//通道1,输出

接下来我们就来点亮一个灯,用的是voidXGpio_DiscreteWrite(XGpio*InstancePtr,unsignedChannel,u32Data)函数

前两个参数和上面的基本相同,u32data就是要写的数据,我们给个000f,全亮

#include“xparameters.h”

gpio_led,1,0x0a);

现象为

三、总结

这样看来,arm比51单片机要简单,我们只需要明白有什么函数,每个函数是干什么的,就可以进行编程了,这只是个开始,先从gpio开始,慢慢深入学习!

附录程序

#include<

stdio.h>

#include"

platform.h"

xparameters.h"

xgpio.h"

//voidprint(char*str);

//不注释掉会有一个定义冲突的错误,不知怎么解决?

intmain()

{

intstatus;

init_platform();

status=XGpio_Initialize(&

if(status==0){printf("

success\r\n"

);

设置通道1为输出

}

XGpio_SetDataDirection(&

//

XGpio_DiscreteWrite(&

gpio_led,1,0x0a);

print("

HelloWorld\n\r"

cleanup_platform();

return0;

随便一改就是流水效果

#include"

intmain()

inti,x,y;

if(status==0){

printf("

);

//设置通道1为输出while

(1)

for(i=0;

i<

=3;

i++)

{XGpio_DiscreteWrite(&

gpio_led,1,0x01<

<

i);

for(x=1000;

x>

0;

x--)

for(y=100000;

y>

y--);

print("

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

当前位置:首页 > 总结汇报 > 学习总结

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

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