文章目录
- 题目:A Modular Digital VLSI Flow for High-Productivity SoC Design
- 时间:2018
- 会议:DAC
- 研究机构:Brucek Khailany(英伟达)
1 缩写 & 引用
- GALS: globally asynchronous locally synchronous全局异步局部同步
- OOHLS: objected-oriented high level synthesis
- MatchLib: modular approach to circuits and hardware library
- LI: latency-insensitive
- QoR: Quality of Results
Chisel: Constructing Hardware in a Scala Embedded Language DAC 2012
COSMOS:
Coordination of High-Level Synthesis and Memory Optimization for Hardware Accelerators ACM TECS 2017
2 abstract & introduction
本文介绍是一个高效的数字VLSI设计流程,主要依赖这两个技术:
- 面向对象的HLS:包括latency-insensitive design、hardware component library和HLS设计流程
- 全局异步局部同步:包括per-partition clock generator和模块间异步接口
3 前端设计方法
3.1 背景
提高设计抽象层次的方法有:
- 使用比RTL抽象层次更高的语言,如Chisel
- HLS: 自动化的pipeline
3.2 OOHLS overview
架构模型和testbench用SystemC和C++混合写的,testbench支持STL和Boost库,降低设计和验证门槛的方法是:
- latency-insensitive channel
- MatchLib库
OOHLS的好处有哪些?
- native C++ simulation of synthesizable architectural models with high simulation speed and performance accuracy
- C++模块化,代码复用
- 架构模型和design constraint的解耦合,可以设计空间探索
3.3 latency insensitive(LI) channels
AXI就是与延时不敏感的接口
SystemC想要支持LI channel,需要三点设计特性:
- 支持C++复杂的数据结构,包括模板结构
- 每个模块的接口特性不能变
- SystemC需要支持performance-accurate simulations
本篇论文开发了新的C++ API和库文件,叫Connection,主要贡献包括
- 新颖的API,decouple ports form channel
- sim-accurate模型
- 更好的验证支持,stall injection
3.4 MatchLib
类似软件库的概念,是一个面向对象的硬件库,借助OOHLS的方法
4 back-end design methodology
后端标准的流程包括:
floorplanning, 自动化的布局布线,时钟树综合,静态时间分析,物理验证signoff
对于芯片后端,如果能把大的任务拆成小份,可以复用可以并行化进行肯定好,但是这就要解决top-level timing验证的问题
4.1 fine-grained GALS clocking
每个小块会有自己的局部时钟源,不同的partition之间通过异步FIFO通信,这样就能跨时钟域了
4.2 原型SOC
机器学习原型SOC,验证频率是1.1GHz,CPU控制器是RISC-V,利用了片上网络的结构,可以支持卷积神经网络,k-means聚类,以及其他的图像处理
每个PE支持向量乘、点积和reduction
FPGA可以通过PCI来和FPGA通信