GPU 设计加速工具

我们看到的 GPU 芯片通常要经过五个步骤,分别为:

需求、规格、设计、实现、流片

除了软硬件协同设计、硬件敏捷设计等方法学、收费的 EDA 工具之外,有没有其他的开源工具可以加速其中的若干流程。

QEMU

QEMU

QEMU is a generic and open source machine emulator and virtualizer.

libsystemctlm-soc

You do not need to interface directly with Remote-Port. Xilinx provides abstractions for SystemC/TLM-2.0 that encapsulate your SystemC/TLM-2.0 module, allowing it to connect to remote QEMU instances. These modules use Remote-Port. SystemC/TLM-2.0 users can, therefore, treat QEMU as any other standard SystemC/TLM-2.0 module. These abstractions are in the libsystemctlm-soc repository. For an example of wrapping your SystemC application, see the SystemC/TLM-2.0 co-simulation demonstration.

ug1169-xilinx-qemu.pdf • 查看器 • AMD 自适应计算文档门户

SystemC

systemc.org

SystemC™ addresses the need for a system design and verification language that spans hardware and software. It is a language built in standard C++ by extending the language with the use of class libraries. The language is particularly suited to model system's partitioning, to evaluate and verify the assignment of blocks to either hardware or software implementations, and to architect and measure the interactions between and among functional blocks. Leading companies in the intellectual property (IP), electronic design automation (EDA), semiconductor, electronic systems, and embedded software industries currently use SystemC for architectural exploration, to deliver high-performance hardware blocks at various levels of abstraction and to develop virtual platforms for hardware/software co-design. SystemC has been standardized by the Open SystemC Initiative (OSCI) and Accellera Systems Initiative and ratified as IEEE Std. 1666™-2011.

架构探索,快速建模。很好、很强大!

Chisel

Chisel/FIRRTL: Home (chisel-lang.org)

The Constructing Hardware in a Scala Embedded Language (Chisel) is an open-source hardware description language (HDL) used to describe digital electronics and circuits at the register-transfer level that facilitates advanced circuit generation and design reuse for both ASIC and FPGA digital logic designs.

Chisel adds hardware construction primitives to the Scala programming language, providing designers with the power of a modern programming language to write complex, parameterizable circuit generators that produce synthesizable Verilog. This generator methodology enables the creation of re-usable components and libraries, such as the FIFO queue and arbiters in the Chisel Standard Library, raising the level of abstraction in design while retaining fine-grained control.

For more information on the benefits of Chisel see: “What benefits does Chisel offer over classic Hardware Description Languages?”

Chisel is powered by FIRRTL (Flexible Intermediate Representation for RTL), a hardware compiler framework implemented by LLVM CIRCT.

揭秘“香山”:高性能开源RISC-V处理器 | 对话中科院计算所包云岗研究员 | Shilicon Talk第一期_哔哩哔哩_bilibili

香山团队说用着很爽,可以一试!

Verilator

Veripool

Welcome to Verilator, the fastest Verilog/SystemVerilog simulator.

  • Accepts Verilog or SystemVerilog

  • Performs lint code-quality checks

  • Compiles into multithreaded C++, or SystemC

  • Creates XML to front-end your own tools

使用 SystemC 对 GPU 建模,其中的模块 A 建模完成后将其使用硬件描述语言实现,实现完成后将其集成到 SystemC 模型中,替换原先的模块 A,迅速验证模块 A 的功能。这个过程需要用到 Verilator。

Verilog-mode

Verilog-Mode · Veripool

Verilog-mode.el is the extremely popular free Verilog mode for Emacs which provides context-sensitive highlighting, auto indenting, and provides macro expansion capabilities to greatly reduce Verilog coding time. It supports AUTOs and indentation in Emacs for traditional Verilog (1394-2005), the Open Verification Methodology (OVM) and SystemVerilog (1800-2005/1800-2009).

Verilog-mode also allows you to insert AUTOS in non-AUTO designs, so IP interconnect can be easily modified. You can also expand SystemVerilog ".*" port instantiations, to see what ports will be connected by the simulators.

自动连线、自动实例化等功能非常好用。

Verilog-Perl

verilog-perl/README.pod at master · veripool/verilog-perl · GitHub

Modules

Verilog::EditFiles

Split Verilog modules into separate files.

Verilog::Getopt

Get Verilog command line options

Verilog::Language

Verilog language utilities

Verilog::Netlist

Verilog Netlist

Verilog::Netlist::Cell

Instantiated cell within a Verilog Netlist

Verilog::Netlist::ContAssign

ContAssign assignment

Verilog::Netlist::Defparam

Defparam assignment

Verilog::Netlist::File

File containing Verilog code

Verilog::Netlist::Interface

Interface within a Verilog Netlist

Verilog::Netlist::Logger

Error collection and reporting

Verilog::Netlist::ModPort

ModPort within a Verilog Interface

Verilog::Netlist::Module

Module within a Verilog Netlist

Verilog::Netlist::Net

Net for a Verilog Module

Verilog::Netlist::Pin

Pin on a Verilog Cell

Verilog::Netlist::PinSelection

Nets attached to a Verilog Cell's Pins

Verilog::Netlist::Port

Port for a Verilog Module

Verilog::Netlist::Subclass

Common routines for all classes

Verilog::Parser

Parse Verilog language files

Verilog::SigParser

Signal Parsing for Verilog language files

Verilog::Preproc

Preprocess Verilog files

Verilog::Std

SystemVerilog Built-in std Package Definition

该工具正在尝试探索中。

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/52435.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>