一种dsp和fpga紧耦合架构的协同验证方法

文档序号:6508755阅读:293来源:国知局
一种dsp和fpga紧耦合架构的协同验证方法
【专利摘要】本发明公开了一种DSP和FPGA紧耦合架构的协同验证方法,DSP模拟器是建立在通用操作系统之上、基于数据流正确的模拟器,主要实现任务调度、中断处理、中断嵌套功能。采用HDL语言的PLI接口将与FPGA交互的接口写成HDL内部命令,以便FPGA与DSP模拟器进行通信。DSP和FPGA之间的通信采用以套接字为基础的CS模式。本发明弥补了指令级DSP模拟器的速度慢的问题,可以简化DSP和FPGA紧耦合验证过程,提高验证效率。
【专利说明】—种DSP和FPGA紧耦合架构的协同验证方法
【技术领域】
[0001]本发明涉及FPGA验证和测试领域,尤其涉及一种DSP和FPGA紧耦合架构的协同验证方法。
【背景技术】
[0002]自FPGA概念的提出以来,FPGA因其现场可编程、配置灵活、并行运行的特征,有了极为迅速的发展和运用。利用FPGA在DSP系统中替代传统的ASIC芯片,分流DSP芯片运算负载的架构,即FPGA和DSP紧耦合架构。
[0003]随着架构的广泛应用,其开发也出现困境,这种架构验证一般使用HDL语言编写测试平台,这样过程控制会受到限制,使验证的困难增加。
[0004]DSP模拟器大部分是基于指令集的模拟,它能够支持外部事件和数据,但是这类模拟器的验证主体一般是DSP软件,提供了对软件调试的支持,而在FPGA和DSP紧耦合架构协同仿真中,测试验证主体是FPGA设计,所以DSP模拟器不需要使用指令级模拟,只要数据流正确就可以;同时这种指令模拟器的仿真速度比较慢,大大降低了协同仿真的速度。
[0005]FPGA仿真是对硬件的仿真,模拟器还要将外部的操作反映到硬件引脚,或与硬件引脚相连的总线上,极少的模拟器能实现这种功能,所以模拟器对外部数据和IO的操作不是很灵活。

【发明内容】

[0006]本发明的目的是克服现有技术的不足,提供一种DSP和FPGA紧耦合架构的协同验证方法。
[0007]本发明的目的是通过以下技术方案来实现的:一种DSP和FPGA紧耦合架构的协同验证方法,包括如下步骤:
(I)在基于数据流正确的DSP模拟器运行主算法的进程和用户DSP任务,并且实现任务处理、任务调度、中断响应、中断嵌套功能。
[0008](2)打开底层操作系统上的套接字服务器端,快速的响应FPGA仿真器发起的连接,如果没有连接就继续监听,如果有连接就根据FPGA的中断和读写以及退出命令进行相应处理。
[0009](3) DSP模拟器对读写缓冲区进行检查,如果是FPGA的读写请求,如果是请求写,将缓冲区的时序信息和数据传给FPGA模拟器,如果是请求读,就接收FPGA模拟器发送的时序信息和数据。
[0010](4)在FPGA仿真器周期性的调用PLI接口编写轮询DSP模拟器命令,查看DSP是否对FPGA有操作,如果写操作就把DSP模拟器数据写入FPGA的指定引脚,如果是读操作就把相应引脚数据传给DSP模拟器。
[0011](5) FPGA模拟器利用PLI接口编写的中断命令在特定的仿真时刻产生中断信号,通过与DSP端的套接字服务器建立连接,将中断信息传给DSP模拟器。[0012](6) DSP模拟器根据中断号进行仲裁,如果中断进程的优先级比当前进程高,执行中断程序,如果优先级低于当前进程就忽略中断。
[0013]本发明的有益效果是,DSP模拟器是建立在通用操作系统之上、基于数据流正确的模拟器,主要实现任务处理、任务调度、中断处理、中断嵌套功能。这样DSP模拟器运行的速度会大幅度提高。采用HDL语言的PLI接口将DSP模拟器的操作反映到FPGA特定的硬件引脚,或与硬件引脚相连的总线上,提高模拟器对外部数据和IO的操作的灵活性。底层的通信使用通用操作系统中的套接字为基础的CS模式,不需要花时间再去编写DSP和FPGA之间数据通信协议,提高验证效率。
【专利附图】

【附图说明】
[0014]图1是DSP和FPGA紧耦合架构的协同验证示意图;
图2是DSP模拟器的服务器端流程图;
图3是DSP模拟器的读写处理流程图;
图4是PLI应用读信息流程图;
图5是PLI应用写信息流程图;
图6是DSP模拟器中断处理流程图;
图7是FPGA中断处理流程图。
【具体实施方式】
[0015]本发明DSP和FPGA紧耦合架构的协同验证方法,包括如下步骤:
(I)在基于数据流正确的DSP模拟器运行主算法的进程和用户DSP任务,并且实现任务处理、任务调度、中断响应、中断嵌套功能。
[0016](2)打开底层操作系统上的套接字服务器端,快速的响应FPGA仿真器发起的连接,如果没有连接就继续监听,如果有连接就根据FPGA的中断和读写以及退出命令进行相应处理。
[0017](3) DSP模拟器对读写缓冲区进行检查,如果是FPGA的读写请求,如果是请求写,将缓冲区的时序信息和数据传给FPGA模拟器,如果是请求读,就接收FPGA模拟器发送的时序信息和数据。
[0018](4)在FPGA仿真器周期性的调用PLI接口编写轮询DSP模拟器命令,查看DSP是否对FPGA有操作,如果写操作就把DSP模拟器数据写入FPGA的指定引脚,如果是读操作就把相应引脚数据传给DSP模拟器。
[0019](5) FPGA模拟器利用PLI接口编写的中断命令在特定的仿真时刻产生中断信号,通过与DSP端的套接字服务器建立连接,将中断信息传给DSP模拟器。
[0020](6) DSP模拟器根据中断号进行仲裁,如果中断进程的优先级比当前进程高,执行中断程序,如果优先级低于当前进程就忽略中断。
[0021]如图1所示,服务器端功能在DSP模拟器中实现,包括就绪表、优先级对应表、读写缓冲、DSP算法进程、初始进程以及通信模块。FPGA模拟器包括HDL设计和PLI应用,PLI应用主要实现仿真结束处理、中断处理、读写处理。两部分的通信是基于Iinux操作系统的套接字,也可以用其他通用操作系统的套接字实现; 如图2所示,DSP模拟器启动后,首先初始化缓、就绪表等数据结构,创建算法进程,建立服务器对套接字端口的侦听,如果是读写I/O进入读写子流程,如果是中断就进入中断子流程,如果是来自FPGA的结束指令,就退出DSP模拟器;
如图3所示,DSP的读写处理过程,收到来自FPGA模拟器的轮询后,服务器端查看读写缓存,是否有读写操作,如果有,就发送读写缓存中地址及数据和读写控制等时序信息,此时如果是读I/O或者总线操作,还要等待数据和读写控制等时序信息返回模拟器,而后读写子流程结束;
如图4所示,PLI应用读时序流程,首先与服务器建立连接,发送轮询DSP模拟器请求。从服务器端发出的读操作及地址,如果没有接收到,进入重发和错误处理。如果接收到就按照读时序要求对总线操作。由于PLI应用执行时仿真处于停止状态,不能直接在同一次调用中读取不同时刻数据,因此一个在数据总线出现正确数据时PLI应用读取数据并发送给DSP模拟器;
如图5所示,PLI应用写时序流程,首先与服务器建立连接,发送轮询DSP模拟器请求。接收到服务器端发出写操作、地址及数据,发送写正确标志。按照写时序要求对总线操作,写入数据。返回模拟器。错误处理采用超时重发方式,重发一定次数后仍没有反馈的,打印错误信息。
[0022]如图6所示,DSP模拟器中断处理程序,首先将主算法设置为优先级最低,和中断算法一起调度。当中断发生,对优先级仲裁。如果中断优先级高于当前进程程优先级,中断当前运行进程,运行中断进程;否则忽略中断信号。中断线程结束,重新调度算法进程,中断子流程结束。
[0023]如图7所示,FPGA模拟器产生中断信号,当中断信号发生时模拟器调用写好的函数,然后自动调用PLI应用与DSP模拟器通信。PLI应用中会创建连接,发送中断信息或终止信息,服务器接收到信息后发送接收正确标志,表明通信成功,返回模拟器。如果不成功,进入重发或错误处理。错误处理采用超时重发方式,重发一定次数后仍没有反馈的,打印错误信息。
【权利要求】
1.一种DSP和FPGA紧耦合架构的协同验证方法,其特征在于,包括如下步骤: (1)在基于数据流正确的DSP模拟器运行主算法的进程和用户DSP任务,并且实现任务处理、任务调度、中断响应、中断嵌套等功能; (2)打开底层操作系统上的套接字服务器端,快速的响应FPGA仿真器发起的连接,如果没有连接就继续监听,如果有连接就根据FPGA的中断和读写以及退出命令进行相应处理; (3)DSP模拟器对读写缓冲区进行检查,如果是FPGA的读写请求,如果是请求写,将缓冲区的时序信息和数据传给FPGA模拟器,如果是请求读,就接收FPGA模拟器发送的时序信息和数据; (4)在FPGA仿真器周期性的调用PLI接口编写轮询DSP模拟器命令,查看DSP是否对FPGA有操作,如果写操作就把DSP模拟器数据写入FPGA的指定引脚,如果是读操作就把相应引脚数据传给DSP模拟器; (5)FPGA模拟器利用PLI接口编写的中断命令在特定的仿真时刻产生中断信号,通过与DSP端的套接字服务器建立连接,将中断信息传给DSP模拟器; (6)DSP模拟器根据中断号进行仲裁,如果中断进程的优先级比当前进程高,执行中断程序,如果优先级低于当前进程就忽略中断。
【文档编号】G06F11/36GK103455401SQ201310372981
【公开日】2013年12月18日 申请日期:2013年8月25日 优先权日:2013年8月25日
【发明者】蔡铭, 黄显晖 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1