使用Vivado HLS创建一个EDK PCore.doc

使用Vivado HLS创建一个EDK PCore.doc

ID:27848276

大小:29.00 KB

页数:6页

时间:2018-12-06

使用Vivado HLS创建一个EDK PCore.doc_第1页
使用Vivado HLS创建一个EDK PCore.doc_第2页
使用Vivado HLS创建一个EDK PCore.doc_第3页
使用Vivado HLS创建一个EDK PCore.doc_第4页
使用Vivado HLS创建一个EDK PCore.doc_第5页
资源描述:

《使用Vivado HLS创建一个EDK PCore.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、使用VivadoHLS创建一个EDKPCore  这篇文章是用来熟悉Xilinx的VivadoHLS(2012.2version)工具的使用的。  由于Zedboard是ARM+FGPA的架构,所以在使用的时候经常会涉及到关于FPGA设计方面的知识,对于像我这样对FPGA一窍不通的人来说,这是一个不可逾越的障碍(至少目前是)。有心想去了解学习一下,然后这一块的知识体系也是异常庞大的,不是短时间可以理的清楚的。要是有一个工具,能够将软件代码直接转换成硬件(HDL语言),而无需学习传统的硬件设计技术,那该多好了!这里,VivadoHLS就是这样一个工具。  这里将一段C代码转

2、换成XilinxEDK工具能够直接使用的IPcore,实现一个简单的8bitadder.  #include“basic.h”#include“ap_interfaces.h”//definesomemacrosforaxibus  voidbasic(chara,charb,char*c){AP_INTERFACE_REG_AXI4_LITE(a,BUS_A,ap_none);  AP_INTERFACE_REG_AXI4_LITE(b,BUS_A,ap_none);  AP_INTERFACE_REG_AXI4_LITE(c,BUS_A,ap_none);  AP_C

3、ONTROL_BUS_AXI(BUS_A);//APcontrolsignaltobeaccessedthroughAXI-Liteif  *c=a+b;}  (1)IOPort  函数中有3个变量:a,b,c。前面两个变量a,b是输入变量,所以它们作为IPcore的输入端口;c变量是输出变量,所以作为IPcore的输出端口。它们会被映射到核中的3个寄存器中。  (2)Handshakesignal  在这个例子中,至少需要3个控制信号:AP_START,AP_IDEL,AP_DONE。这些信号都也会被映射到核的寄存器中,用来控制核的基本操作及状态。AP_START信号用

4、来控制Pcore的开始,AP_DONE信号用来表示操作完成,而AP_DONE用来表示设备空闲状态。  (3)中断控制  与中断相关的寄存器。IER(intrenablereg)、ISR(intrstatusreg)  (4)IPIFandIPIC  这里,通过调用ap_interface.h中的宏来实现AXI-LITE接口。  //ap_interface.h--thisfilecontainsmacrodeclaraTIonsforAutoESLinterfacedirecTIves  //enumofavailableinterfacestypeinAUTOESL  

5、enumAP_AUTO_INTERFACES{  AP_NONE,AP_ACK,AP_VLD,AP_OVLD,AP_HS,AP_CTRL_NONE,AP_CTRL_HS,AP_MEM,AP_FIFO,AP_BUS  };  //GCCpre-processordirecTIvetoinsertpragmasfrommacrocode  #defineSTR(x)#x  #definePRAGMA_L1(x)_Pragma(#x)  #definePRAGMA(x)PRAGMA_L1(x)  #defineAP_INTERFACE(var_name,interface_ty

6、pe){  PRAGMA(APinterfaceinterface_typeport=var_name);  }  #defienAP_INTERFACE_REG(var_name,interface_type){  PRAGMA(APinterfaceinterface_typeport=var_nameregister);  }  //CreateanAXI4Liteinterfaceatthesystemlevellayer  #defineAP_BUS_AXI4_LITE(var_name,bus_name){  PRAGMA(APresourcecor

7、e=AXI_SLAVEvariable=var_namemetadata=STR(-bus_bundlebus_name));  }  //CreatestandardXilinxbusinterfaces  #defineAP_INTERFACE_REG_AXI4_LITE(var_name,bus_name,interface_type){  AP_INTERFACE_REG(var_name,interface_type);//IPIC  AP_BUS_AXI4_LITE(var_name,bus_name);/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。