首页> 外文会议>2015 International Conference on Field Programmable Technology >Using Round-Robin Tracepoints to debug multithreaded HLS circuits on FPGAs
【24h】

Using Round-Robin Tracepoints to debug multithreaded HLS circuits on FPGAs

机译:使用循环跟踪点在FPGA上调试多线程HLS电路

获取原文
获取原文并翻译 | 示例

摘要

High-level synthesis (HLS) for FPGA designs has gained significant traction in recent years. A key component in its adoption is allowing users to debug their hardware systems in the context of the original source code. This is becoming even more challenging as modern HLS tools enable the user to provide multithreaded source code for synthesis to hardware. Although recent work has begun to tackle source-level debugging of HLS circuits, none have addressed doing this in multithreaded circuits. In such systems it may be necessary to observe the behaviour of multiple threads for long run times in order to locate obscure or non-deterministic bugs and performance issues. In this paper we present a trace-based debugging architecture which records values from user-selected tracepoints into on-chip memories during circuit execution. The recorded values can be provided to the user as a cycle-accurate timeline of events to aid them in debugging multithreaded HLS circuits. We present a novel technique to allow multiple hardware threads to share trace buffers, effectively increasing the execution trace that can be recorded. This is accomplished by analyzing the control and data flow graph to determine the maximum rates at which each thread can encounter tracepoints, using this information to select which threads can share trace buffers, and automatically generating round-robin circuitry to arbitrate access to the buffers. Using this technique we are able to obtain an average of 4X improvement in trace length for an 8 thread system. This provides users with a longer timeline of execution and greater visibility into the execution of multithreaded HLS circuits.
机译:近年来,用于FPGA设计的高级综合(HLS)受到了广泛关注。其采用的关键组件是允许用户在原始源代码的上下文中调试其硬件系统。随着现代HLS工具使用户能够提供用于集成到硬件的多线程源代码,这变得更具挑战性。尽管最近的工作已经开始着手解决HLS电路的源代码级调试,但是没有人解决在多线程电路中进行此操作的问题。在这样的系统中,可能有必要长时间观察多个线程的行为,以便定位模糊或不确定的错误和性能问题。在本文中,我们提出了一种基于轨迹的调试架构,该架构在电路执行期间将用户选择的轨迹点的值记录到片上存储器中。可以将记录的值作为事件的周期精确时间轴提供给用户,以帮助他们调试多线程HLS电路。我们提出一种新颖的技术,允许多个硬件线程共享跟踪缓冲区,有效地增加可以记录的执行跟踪。这是通过分析控制和数据流图以确定每个线程可以遇到跟踪点的最大速率,使用此信息选择可以共享跟踪缓冲区的线程并自动生成轮询电路来仲裁对缓冲区的访问来实现的。使用此技术,对于8线程系统,我们能够平均将迹线长度提高4倍。这为用户提供了更长的执行时间,并为多线程HLS电路的执行提供了更大的可视性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号