Zedboard之Hello World(ISE14.6)
来源:互联网 发布:淘宝宝贝隐形降权 编辑:程序博客网 时间:2024/05/22 09:02
本次实验旨在跑一下《软硬件协同设计》书里的Demo程序,熟悉一下开发流程
目的如下:1、通过USART和PC端通信,显示“Hello World”
2、PC端发送Hex,相应的LED亮起(这里有MIO和EMIO各4个)
平台如下: Zedboard板子一枚、ISE 14.6河蟹版软件一套
据说Xilinx准备在8系列中,全面支持下一代开发工具Vivado,也就是说上一代的ISE可能逐渐淡出舞台。虽说如此,但是国内有那么多的ISE工具应用开发者,一时半会应该不会有什么大地震。但是为了平滑过渡,现在提倡用PlanAhead来开发Xilinx的FPGA。据说PlanAhead和Vivado用的是统一的GUI,不同的只是换了更高效更强大的编译器和综合器,具体是不是就不得而知了,因为没用过(电脑跟不上,玩不起Vivado)。
回来正题,流程附图如下:
1、打开PlanAhead 14.6,这时会有个黑色类似cmd界面的启动窗,不用管,待会启动完后会自动关掉(道听途说,Vivado也会有这个黑窗,但不会关闭),启动后会弹出PlanAhead主界面。选择Create New Project
2、在工程类型选择RTL Project
3、之后的Add Sources和Add Existing IP 可以先不理,Next下去,直到选择板卡和芯片型号。ISE14.6里面已经支持Zedboard开发板,所以这里在Board里面可以直接选择Zedboard Zynq Evaluation and Development Kit。
4、搞定后,PlanAhead主界面
5、选择Add Sources后,在弹出界面中选取Embedded Sources(这里好似是把A9核当做一个子系统添加进来)
6、选择Create Sub-Design
7、之后会Lanch XPS来配置子系统。在开始时候会弹出如下窗口,点击OK就行。
8、为了简化对PS的预配置,点击IMPORT,选择提供的Zedboard Template配置文件,由图可以看到Zynq的PS已经根据Zedboard的Demo程序配置好了PS。
9、为了对比EMIO,点击System Assembly View下的IO Perlpherals,添加4个EMIO
10、利用GPIO IP核
11、添加完成后,可以看到GPIO的IP核已经和PS通过AXI相连
12、链接完了之后,将GPIO的IP核和PS的GPIO连接到外部Ports
弄完后,分配地址。DRC后,关闭XPS。
回到PlanAhead中,Create Top HDL,逻辑综合Run Synthesis,以及添加ucf引脚约束后,Implementation,再BitGen。
硬件平台配置好后,进行软件的编写。首先从PlanAhead中Export Hw
(这里要注意一点,有时候那个Include bitstream选项没有了,这时在后来的SDK下载时候会无法定位,可以用Export Bitstream来弥补)
12、创建Application Project后,选择Hello World会多出BSP以及工程文件,加上之前的硬件Platform,总共三大项。
对Helloworld.c进行修改后,就可以实现功能了。
13、为了使用SDK的Console来串口通信,可以在Run-->Run Configuration里面设置STDIO
14、Xilinx Tools--->Program FPGA 下载bitstream。
15、之后在Project Explorer中右击工程文件,Run As---》Launch On Hardware,运行。效果如下
过程问题总结:
1、Program FPGA时候无法找到JTAG
解决:首先怀疑是驱动问题,重装了Cypress的USB驱动,问题依旧。最终发现是少了一条Micro USB线,
就是说,要开发的话需要三条线插在板上,两条Micro Usb(一个用作串口,一个Digilent的Jtag下载口),一条电源线。
- Zedboard之Hello World(ISE14.6)
- ZedBoard-裸机下运行Hello,World【常见错误解决方案】
- ZedBoard-为ISE14.4工程构建内核源码树(Linux3.6.0)【详细步骤+个人总结】
- Zedboard-Ubuntu12.04下安装ISE14.4
- Zedboard-Ubuntu12.04下安装ISE14.4
- lemon之Hello World(续1)
- lemon之Hello World(续2)
- lemon之Hello World(续3)
- lemon之Hello World(续4)
- Velocity之Hello World(入门实例)
- JavaBean 之Hello World(入门实例)
- “压缩感知” 之 “Hello World”(转)
- Bullet(Cocos2dx)之Hello World(vs2012)
- Bullet3之Hello World(vs2012)
- (一)nodejs入门之 'Hello World'
- (1)MyBatis之Hello World
- Spring之hello world(Spring入门)
- MyBatis之Hello world(Mybatis入门)
- 对MVC的初步理解
- VC 中一些常见的文件操作,包括获取当前路径、复制文件等
- 在windows下使用eclipse for c++来编译c/c++
- Linux 查看内核 系统 等软件版本命令
- ios NSFileManager创建目录、文件
- Zedboard之Hello World(ISE14.6)
- 中国风投70%利润来自互联网
- STL容器vector的内存问题
- Android网络编程实践之旅(二):基于Socket的网络通信
- Redis数据结构型数据库及其常用操作
- Hadoop --基础知识-合并文件简单示例
- Qt断点续传(暂停下载任务)
- 微软对Windows XP 的支持将在2014年4月8日结束
- STL容器的删除元素问题