vivado入门教程峰哥版Word文件下载.docx
- 文档编号:17942961
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:19
- 大小:346.14KB
vivado入门教程峰哥版Word文件下载.docx
《vivado入门教程峰哥版Word文件下载.docx》由会员分享,可在线阅读,更多相关《vivado入门教程峰哥版Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
一般都是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("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vivado 入门教程 峰哥版