EDK是xilinx公司开发嵌入式系统的工具。比起xilinx的ISE,二者不同在于,如果仅仅是使用xilinx的fpga做逻辑设计,只需要ISE开发环境。但是如果要使用powerpc或者microblaze处理器,从硬件到软件设计的整个嵌入式系统设计,就需要EDK。
Xilinx提供的嵌入式开发工具EDK可方便满足用户的多种需求,尤其是开放式的IPIF接口为定制用户IP核提供了方便。但对于习惯使用ISE开发环境的用户来所,在XPS中操作比较复杂的IP核定制单元,并且还要修改接口程序,这是一个比较繁琐的过程。并且在实际系统中,许多用户逻辑单元是不需要挂接在MicroBlaze的系统总线上的,这些逻辑独立运行,完成相应的功能。Xilinx提供了在ISE开发环境中嵌入EDK开发工具组的功能,从而使用户在ISE开发环境下既可以开发基于IPIF接口的IP核,也可以开发独立的用户逻辑。MicroBlaze当成一个普通的逻辑块进行例化。下面就给出这个在ISE环境下的操作流程,感觉那是相当的爽啊。
首先,建立一个ISE工程,并建立一个.v的顶层模块,如图1所示。
图1
然后通过,通过新建再建立一个Embedded Processor,如图2所示,取名为CPU_MicroBlaze0,其实这样就在ISE里建立了一个EDK工程向导。
“安富利杯”89美金FPGA开发板免费试用风暴参赛-EDK 用户IP核的详细定制过程
在基于MicroBlaze的嵌入式系统开发中,定制用户IP核是一个重要环节,这也是大多数初学者感到困难的地方。LX9开发板上Spartan6系列的XC6SLX9CS324 FPGA提供了大量的逻辑资源,并采用6输入查找表结构,可提高逻辑资源的利用率,为用户开发自己的IP核提供了硬件支持,特别适合于中低端基于MicroBlaze的嵌入式场合。定制用户IP核主要有两种方式,一种是通过XPS提供的IPIF接口进行定制,通过这种方式定制的IP核连接在系统总线上;另一种是采用由用户完全定制模式,这种方式定制的IP核不连接在MicroBlaze的总线上,具有独立的功能。由于完全定制IP核比较复杂,这里介绍采用IPIF定制Customer IP 核的过程。
Author:KiKi
Email : yq000cn@gmail.com
Date: 2011.4.24
错误描述
Debian下运行EDK10.1,在编译生成网表文件的时候出现如下的error:
make –f system.make bits
"xilperl: error while loading shared libraries: libdb-4.1.so: cannot open shared object file: No such file or directory"
解决方案
进入终端
$cd /usr/lib
$ls –al libdb-*
$sudo ln –s libdb-5.1.so libdb-4.1.so #用libdb-5.1.so库文件代替4.1的版本
1.最近翻阅了一些书籍、资料,发现xilinx关于嵌入式开发的资料实在是太少了,比如专门讲edk、microblaze这些内容的书籍几乎没有,只在几本书里面提到了一些,现有的一些版本也比较旧了,拿新软件对着做根本就找不到“下一步”跑到哪里去了;而对比一下Altera的资料,首先Altera网站的资料比Xilinx做的好,他可以把一个相关知识的所有资料汇编成册,让人一目了然,相应的书籍也多的很,光我手里关于NIOS比较新的书就有5本。大家可不可以齐心协力,像上次出电子书一样,再搞个类似的东西?哪怕是一人一章把“EDK Concepts, Tools,and Techniques”这样的东西翻译一下也好,毕竟大多数人读原文资料还是很费劲的
2.常在各个论坛里面泡,看到人家都是广告满天飞,各种活动应接不暇,还有自己出品的各种开发板甚至是出售代码等等;我一直很好奇咱们社区的盈利问题哈哈
一直以来想写点edk的教程的,结果发现赛灵思竟然出版了如此详细、友好的教程,还是不班门弄斧了吧![]()
附件的pdf是教程,zip是例子,注意需要升级到ISE12啊
在用EDK进行开发时,经常要对所写的算法程序性能进行评估,其中一项重要的评估指标:程序运行时间。
如果是用硬核PowerPC建立工程, 首先必须在程序中加入头文件,xparameters.h以及
xtime_l.h。xtime_l.h头文件中提供了诸如:XTime_GetTime (&time)、XTime_SetTime (t)等基本
函数。而xparameters.h头文件中定义了XPAR_CPU_PPC405_CORE_CLOCK_FREQ_HZ参
数。
如果是用软核MicroBlaze建立工程,首先必须在程序中加入头文件,xparameters.h以及
xtmrctr_l.h。xtmrctr_l.h头文件中提供了诸如:XTmrCtr_mGetTimerCounterReg、
XTmrCtr_mSetLoadReg、XTmrCtr_mSetControlStatusReg、XTmrCtr_mSetControlStatusReg
等基本函数。而xparameters.h头文件中定义了XPAR_CPU_CORE_CLOCK_FREQ_HZ参数。
(注意:PowerPC硬核本身有一个计数器,而Microblaze软核在建立工程时需加入一个计数器)
在最近的工程中,需要用到PS/2键盘和鼠标作为控制输入,所以在网上找了一些相关的资料,内容很丰富,看来已经有很多人做过了这方面的编程。本篇Blog算是实践总结,为以后的开发积累一些基础知识。
MicroBlaze支持重启(reset),中断( interrupt), 暂停(break)和异常( exception)。这里粗略的介绍:
* reset
当外部按键发出reset信号或者XMD通过MDM(MicroBlaze Debug module)发出reset信号,这些信号都会被proc_sys_reset模块接收,然后该模块产生一个16周期长的高电平信号至 MicroBlaze的MB_RESET管脚。MicroBlaze响应reset, PC 寄存器指向0x0地址,依照向量表中代码执行。
* exception
异常是MicroBlaze对内部运行发生错误的情况发做出的响应,这些情况包括:非法指令,指令和数据总线错误和未对齐的访问(unaligned access)。如除0操作,非法操作码异常,数据总线异常等。
* break
最新评论
2 天 4 小时之前
2 天 4 小时之前
2 天 5 小时之前
2 天 8 小时之前
3 天 5 小时之前
5 天 3 小时之前
5 天 10 小时之前
5 天 23 小时之前
6 天 5 小时之前
6 天 9 小时之前