




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
添加自定义 IP 核基本步骤 一、 使用工具和参考链接: PlanAhead,XPS,SDK,ISE。 /blog/3987 /blog/4009 二、自定义 IP 流程简图如下: 三、功能简介: 本次生成的 IP 核只是用来控制一个 LED 灯根据 sdk 工程中对寄存器赋值来亮和灭。 四、步骤: 1、 使用 PlanAhead 创建新工程,打开 PlanAhead14.4,创建新工程,输入工程名称,点击 Next。 注:14.1 版本存在问题,在 windows 系统下使用 PlanAhead14.1 会出现错误,建议升级至 14.4。 2、 选择 RTL Project,在 Do not specify sources at this time 处打钩,暂时不添加源文件。之后,选择所使用的 FPGA 型号。之后会有工程的简单 summary,点 finish 完成。 3、 在工程左侧找到 Add sources,添加 xps 工程。 然后点击红色线框所示,弹出窗口,按下图所示进行设置。 Next 之后,弹出窗口,如下图所示, 单击红色线框按钮,弹出如下图所示窗口,命名其为 system。然后确定!如下图所示。点击 Finish。弹出如图所示的窗口,选择 yes,(此时创建 BSP) 4、 创建 xps 工程。默认选择 PLB System,点击 ok。根据自己的情况设置硬件工程,本例子中设置为单核系统,只选择了最基本的 ddr,bram 和串口三个。在出现整 个硬件 summary 之后点击 finish 完成设置。 5、 添加自定义 IP 核,在 Hardware 中选择 Create or Import Peripheral 添加 IP 核。如下面四个图所示,选择默认选项,在之后添加 IP 核名称,不能和 PlanAhead 以及 xps 工程名相同。 如下面四个图所示,之后选择 PLB 总线,会提示所需要的功能,包括软件 reset,用户寄存器(一般都需要这个),FIFO(看需求),内存空间,中断。本例子中只需要 寄存器即可,如右上图。 之后选择默认即可,然后是添加寄存器数量,根据自己的需要添加,本例子中需要存储 led 灯状态,因此需要一个寄存器。这里面的寄存器都是 32bit。 如下图所示,之后添加所需要的 PLB 总线信号,基本保持默认即可。Next 之后保持默认。 在之后的选项中,如下图所示,第一个是用户逻辑语言选择,如果用 vhdl 则不用打钩,如果需要改成 Verilog 则打钩。第二个和第三个均打钩,让 ise 自动生成 PLB 的 硬件接口和 SDK 中要用到的头文件。完成 IP 核的设置。 6、 编辑 IP 核的硬件逻辑。生成 IP 之后,可以在 xps 工程中看到添加的 IP 核,如下图所示,然后开始编辑它,打开目录 * samplesample.srcssources_1edksystempcoresled_v1_00_adevlprojnav, *是工程的路径。打开.xise 工程文件。我们会在 ise 工程中用到 led.vhd 和 user_logic.v 两个文件,如右图所示。在 user_logic.v 中,先添加需要用到的端口 led1(注,端口名不 能和 IP 核名称相同! ),并定义端口的属性,如下图所示。 如下图所示,系统已经写好一个例程,来给出怎么读取和输入数据。之后就可以根据自己的需要编写相应的硬件逻辑。 编写完成后,上面右图为编写完成后。需要在 led.vdl 文件中配置端口。打开此文件,如下图左图所示,添加端口的名称。 在修改完这三处后,运行仿真,确认没有错误后,可以查看 RTL 原理图,确认端口是否添加。然后保存退出,回到 xps 工程中。在工程中重新扫描,如下图所示。 右键点击左侧生成的 IP 核 LED,选择 View MPD,如果 port 中没有 LED 端口,则手动添加代码:PORT LED = “, DIR = O,并保存。之后添加 IP 核至 xps 工程中。 如下面三个图所示,将 IP 挂在到 PLB 总线上,之后将 LED 的端口设置为外接端口,并命名,这个名字要记下来。然后为 LED 这个 IP 核分配地址。 之后可以退出 xps 工程,回到 PlanAhead 中。 7、 如下图所示,右键点击 system,创建 Top HDL 文件。然后为端口添加 ucf 文件约束,为此端口分配硬件管脚。接着使用 Add Sources 添加约束文件,选择 Add or Create Constraints 添加约束,完成保存即可生成 bit 流文件。 在工程中,生成硬件的 bit 流文件,即可导入至 SDK 中使用了。 之后,将工程导入 SDK,在弹出的窗口中, Launch SDK 打钩。OK 在 SDK 中创建 New Application Project,选择 Memory Tests。Finish。 8、 将硬件信息和头文件导入 SDK。(这部分网上教程没有,需注意) 生成的 bit 流文件在 *samplesample.runsimpl_1download.bit 这个文件即为硬件信息的输出文件,将此文件复制到 *samplesample.sdkSDKSDK_Exportsystem_hw_platform。而 IP 核的头文件在 *samplesample.srcssources_1edksystemdriversled_v1_00_asrc 下面,将这四个文件复制到 *samplesample.sdkSDKSDK_Exporttestledsrc。 #include #include “xparameters.h“ #include “xil_types.h“ #include “xstatus.h“ #include “xil_testmem.h“ #include “platform.h“ #include “memory_config.h“ #include “led.h“ #define BASE_ADDR 0x20000000 int main() unsigned int i; init_platform(); /读取SW 的状态,这个函数是XILINX为我们编写的驱动,包含在头文件led.h中 i = LED_mReadReg(BASE_ADDR,0); xil_printf(“sw state is %x“,i); /将 0x01写入LED 灯 LED_mWriteReg(BASE_ADDR,0x00000000,0x01); cleanup_platform(); retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一活动饰品活动策划方案
- 六一游戏室活动方案
- 六一理财活动方案
- 六一粉丝活动策划方案
- 六一节公司活动策划方案
- 六一节慰问活动策划方案
- 六一走进大自然活动方案
- 六一酒吧活动方案
- 六七十年代学生活动方案
- 六五环境日系列活动方案
- xx县精神病医院建设项目可行性研究报告
- ECMO技术参数要求
- 城市轨道交通供电技术442页完整版教学课件汇总全书电子教案
- 高填深挖路基稳定性监控观测方案
- 安全标准化现场评审所需资料清单(共14页)
- 班组会议运作技巧ppt课件
- 链家房屋买卖合同范本(共10篇)
- 柱上变压器台与设备安装标准
- 技术比武理论复习题(继电保护)
- 锯齿形板式热水冷却器的设计3.
- 科室医疗质量安全管理与持续改进记录本模板.doc
评论
0/150
提交评论