[发明专利]一种基于双口RAM的FPGA内部硬核与软核通信的方法在审
申请号: | 201510974101.3 | 申请日: | 2015-12-21 |
公开(公告)号: | CN105653477A | 公开(公告)日: | 2016-06-08 |
发明(设计)人: | 许忠元;张勇;张明;仇志凌;芮国强;葛文海 | 申请(专利权)人: | 南京亚派科技股份有限公司 |
主分类号: | G06F13/16 | 分类号: | G06F13/16 |
代理公司: | 徐州市淮海专利事务所 32205 | 代理人: | 华德明 |
地址: | 210000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 ram fpga 内部 通信 方法 | ||
技术领域
本发明涉及一种基于双口RAM的FPGA内部硬核与软核通信的方法。
背景技术
当前电力电子领域的FPGA中硬核与软和的交换数据,一般使用总线地址映射的方法传递数据有一定的局限性;所以采用双口ram通信方式越来越多的被使用,但是缺少一种合理的通信协议;现有的通信方式,由于存储过程同步,因此,需要实时的中断来处理收到的信息,CPU是使用率过高,对硬件要求也高。
发明内容
本发明要解决的技术问题是现有的双口ram通信方式,需要实时的中断来处理收到的信息,CPU是使用率过高,对硬件要求也高,导致成本高昂。
为解决上述技术问题,本发明采用的技术方案是:一种基于双口RAM的FPGA内部硬核与软核通信的方法,在双口RAM中开辟数据状态区域RAM#1、数据状态区域RAM#2、数据状态区域RAM#3、数据状态区域RAM#4、数据状态区域RAM#5和数据状态区域RAM#6;所述RAM#1用于描述电气量、参数、命令数据的读写状态;硬核、软核通过交互读取这些读写状态来控制双方数据的交换;所述RAM#2用于写入RAM#1中硬核收集的数据,当硬核写入数据到相关RAM#2中,并置位RAM#1中的标志状态后,软核根据RAM#1中的状态读取RAM#2中的数据,并处理此数据;所述RAM#3用于写入软核的命令,并置位RAM#1中的标志状态;硬核根据RAM#1中的状态读取RAM#3中的命令,并执行;所述RAM#4,用于软核硬核信息的修改;1)软核把参数写入RAM#4中,并置位RAM#1中的标志状态;硬核根据RAM#1中的状态读取RAM#4中的参数,并修改参数;2)硬核把参数写入RAM#4中,并置位RAM#1中的标志状态;软核根据RAM#1中的状态读取RAM#4中的参数,查看此参数是否正确,可靠;所述RAM#5,用于写入硬核的故障信息,并置位RAM#1中的标志状态;软核根据RAM#1中的状态读取RAM#5中的故障代码并存储显示;所述RAM#6,用于写入硬核故障发生时的波形信息,并置位RAM#1中的标志状态;软核根据RAM#1中的状态读取RAM#6中的故障代码并存储显示。
本发明的优点是:利用双口ram的特性,在FPGA的软核硬核之间用一种高效,异步,占用资源少的通信方式实现,提供了一种可靠并高效的通信协议,硬核软核只需经常读取RAM#1里面很少的几个标志位,就可以知道整个通信的情况。整个存储过程是一个异步的过程,不需要像其他的通信方式那样,需要实时的中断来处理收到的信息。大大降低了CPU是使用率,节省了更多宝贵的硬件资源。
具体实施方式
本发明一种基于双口RAM的FPGA内部硬核与软核通信的方法,具体步骤如下:
在双口RAM中开辟了一块数据状态的区域RAM#1,用来描述电气量,参数,命令等数据的读写状态;硬核,软核能否方便的读取这些状态来控制双方数据的交换;
RAM#1的地址定义
1.1.1RAM2_state(硬核读/写,软核读/写)
RAM2_state:分为三个状态0,1,2,3。0:软核空闲;1:硬核正在写RAM#2;2:硬核写完RAM#2;3:软核正在读RAM#2;
当硬核200ms发送周期时间到的时候,检测到RAM2_state!=3,就可以向RAM2中写
数据,写之前把RAM2_state设置为1;全部写完后把RAM2_state值2;
软核循环读取RAM2_state,如果RAM2_state为2;则开始读取RAM#2中的数据;读之前把RAM2_state设置为3;全部读完后把RAM2_state设置为0;
软核可以通过判断RAM2_state状态是否能从状态0变成2,判断通信是否中断;
硬核可以通过判断RAM2_state状态是否能从状态2变成0,判断通信是否中断;
1.1.2RAM2_ID(硬核读,软核写)
RAM2_ID里面为某个从模块ID的值;
当硬核向RAM#2中写数据之前需要判断RAM2_ID的值;
1.1.3RAM3_W_ord(硬核读,软核读/写)和RAM3_R_ord(硬核读/写,软核读)RAM3_W_ord,RAM3_R_ord范围就是RAM#3缓冲区大小(0~31);
RAM3_W_ord:命令写指针;
RAM3_R_ord:命令读指针;偏移量:0x300;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京亚派科技股份有限公司,未经南京亚派科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510974101.3/2.html,转载请声明来源钻瓜专利网。