您现在的位置:首页 >> 技术文章 >> FPGA嵌入式技术 >> 内容

xps环境-microblaze系统相关

时间:2014-2-13 15:23:51 点击:

  核心提示:MATLAB代做,FPGA代做,Coursework代做、Assignment代做,淘宝交易。QQ:1224848052 ...

一、整体介绍

1.XPS环境下搭建的microblaze系统,ports栏第一个就是External ports,展开它就是整个cpu系统对外暴露的接口,有的是到FPGA的管脚,也有的暴露给用户的逻辑。
2.再往下就是一些外设像FLASH、DDR等,当然还有一些IP核,分别展开它们则可以看到它们对应的接口。
3.以IP核HARD_ETHERNET_MAC为例,双击HARD_ETHERNET_MAC可以看到它的一些属性,像物理层接口等,在本系统中默认为GMII。
4.展开HARD_ETHERNET_MAC,则可以看到它对应GMII的接口所有信号都有连接,并且体现到了约束文件中。
5.如果在3步中选择了不同的physical interface type,则还要返回到4步将原先的接口类型的信号全部变为NO CONNECTION,并且将新接口的信号设置为连接状态(NEW CONNECTION),并修改约束文件。
6.做到第五步编译还是出错,提示:port is driven by a sourceless。解决方法是所有新建立的连接,要在下拉列表中选择make external,设置为外部接口,这样编译就不会出错了。

二、

   对于挂接到PLB上的IP核,不管是HARD_ETHERNET_MAC还是FLASH、LEDS等,应该是这个意思,既然它们已经挂接到PLB上了,那么就可以通过软件调用相关API来操作那个它们的内部接口,这部分应该不用修改了。那么用户自己的逻辑怎么挂接到PLB总线上呢,以下就是添加的步骤。

1.ISE下新建工程,添加embedded processor,假定EDK的工程名为CPU;

2.XPS环境下hardware-->generate netlist,这样在cpu/hdl目录下,就会产生cpu_stub文件,在ISE下将它做为顶层文件加入到工程,并添加cpu.ucf(data目录下);

3.回到XPS,通过hardware-->creat or import peripheral,假设建立了一个顶层名为my_peripheral,完成之后会在IP Catalog栏自动出现添加的my_peripheral,双击,将它挂到microblaze plb总线上;

4.在bus interface栏选中mb_plb,address栏给出基地址及空间大小;

5.在my_peripheral相应的代码中增加用户端口,分别是顶层的my_peripheral.vhd和user_logic.v(在第三步的时候将它设置为verilog语言的),具体分别是my_peripheral.vhd调用的component部分、实例化部分以及user_logic内部逻辑部分;主要的修改是在user_logic部分,让你设置的端口能够与第三步时设置的software access register建立联系,这样通过这些寄存器就可以让上层软件与你的逻辑进行通信了;

6.右键选中my_peripheral,点view MPD,做出修改(例如添加PORT data = "", DIR = O, VEC = [0:31])之所以用双引号,是因为连接还不确定,这时候应该可以看到my_peripheral下出现data的接口,一般需要重启XPS,将data接口make external;

7.回到ISE工程,直接综合(一般需要把ISE给关掉再开),则可发现顶层文件cpu_stub自动加上了相应的data的接口,那么在这个顶层模块就可以加上自己的user app logic模块,通过这个接口就可以传递数据了。

8.那这样的话,是不是我也可以把IP核比如mac核的对内接口给make external暴露出来,然后通过用户逻辑来控制呢?答案:MAC硬核挂接到Plb上是想通过软件直接操作它,如果想用逻辑控制它,可以直接在ISE中通过插入IP核的形式(本例中为virtex5 embedded tri-mode ethernet mac wrapper v1.5)来实现,那么此时你就可以把它当做一般的模块来调用就可以了。这种情况我是在XPS初始化时已经加入了EMAC硬核,是不是在XPS初始化时没有加入,情况又不一样呢,有待进一步验证。

三、注意事项:

1.创建XPS工程所在的路径名称中不能包含空格,要不然会报“xps file does not exist...”的错误,像我原先就把文件名命名为XILINX TEST结果就出错了。现在又发现一个问题,就算路径名称中不包含空格,还是有时候会提示这个错误,但是右键XPS,选择“以管理员身份运行”,则就不会出现这个错误了。我用的OS是WIN7。

2.报EDK、XPS过期的问题,将ISE卸掉重装就可以了。

3.XPSgenerate bitstream的时候,老是提示说system.ucf不能读的问题,网上一搜说是文件管理权限的问题。以下是管用的解决办法。第一步,hardware->clean hardware;第二步,到EDK的安装目录xilinx/../EDK/bin/nt下找到xpsgui.exe(网上老兄说的是xbash.exe,但我没找到),修改其兼容性属性选中以管理员模式运行;第三步,回到XPSproject->launch xps shell,然后依次输入以下命令:

chmod 777 *

cd data

chmod 777 *,

cd ..,

cd etc,

chmod 777 *

现在再去generate bitstream,应该就能成功了!

4.在ISE的窗口选择“update bitstream with processor data”其实就可以连同FPGA的硬件和处理器软件一起编译,并生成bit文件。但是要在运行此命令之前,在xps环境下先运行software->generate libraries and bsps,然后build all user applications,即先要保证软件的正确性,然后再回到ISE运行update bitstream with processor data就没有问题了。我在此过程中曾经碰到的问题主要有:在生成library的时候有“can't creat c:/../microblaze_0/libsrc”的错误,网上一老兄说的是此问题常出在IBM PC上,解决问题的方法为:先在计算机的环境变量系统变量中增加变量名CYGWIN,变量值nontsec,然后重新回到xps,再运行generate libraries and bsps,会提示一个路径无法生成,然后改变此路径的访问权限,然后问题解决。此时生成的bit文件名为”顶层名_download.bit"。

5.win7下运行XPS,先在“用户账户控制设置里”选择“从不通知",否则的话XPS的GUI会老有冲突,出现错误。

Tags:XPS MICROBLAZE 
作者:网络 来源:网络
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2018 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment