@Vengineerの戯言 : Twitter SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
はじめに
今日は、一昨日(SymbiFlow)と昨日(OpenFPGA)で使われているツールである VTR : Verilog to Routing について、調べてみました。
VTR
- ODIN II : ODIN II is the HDL compiler of the VTR flow
- ABC : ABC optimizes BLIF circuits
- VPR : Versatile Place and Route (VPR)
- FASM : FPGA Assembly (genfasm)
のツールから構成されています。
ちょっと古いのがこちら => VPR and T-VPack: Versatile Packing, Placement and Routing for FPGAs
VPR is a placement and routing tool for array-based FPGAs, and T-VPack is a logic block packing (clustering) program. VPR was written to allow circuits to be placed and routed on a wide variety of FPGAs to facilitate comparisons of different architectures. It takes two input files, a netlist describing the circuit to be placed and routed, and a description of the FPGA architecture. Optionally, one can also input a placement file to VPR if one desires that an existing placement be routed only.
VPR : Versatile Place and Route
メインとなるのが、VPRです。VPRは、
- Pack
- Place
- Route
- Analysis
のフローにて実行されます。
VPR の最初の論文は、1997年のFPL97の VPR: A New Packing, Placement and Routing Tool for FPGA Research1ぽいです。 この論文によると、
- Place Circuit or Read in Existing Placement
- Perform either Global or Combined Global / Detailed Routing
の2ステップの図になっていました。
2020年のプレゼンテーション資料 では、VPR 8.0:[Verilog to Routing (VTR): A Flexible Open-Source CAD Flow to Explore and Target Diverse FPGA Architectures] (https://www.eecg.utoronto.ca/~vaughn/papers/vlsi_soc_2020_vtr.pdf)になっています。
Placeには、Adaptive FPGA Placement Optimization via Reinforcement Learning, MLCAD2019が、 Routeには、AIR: A Fast but Lazy Timing-Driven FPGA Router, ASPDAC2020が、 導入されているようです。
おわりに
VPRの最初の論文が1997年なので24年も同じ研究を続けているのって、凄いですね。。。
VPRの開発者のVaughn Betz さんの博士論文(1998年)、Architecture and CAD for Speed and Area Optimization of FPGAs Advisor : Johnathon Rose -san
FPGA Architectures: An Overview
SPEED AND AREA TRADE-OFFS IN CLUSTER-BASED FPGA ARCHITECTURES