Computer Engineering Resources
  • Computer Engineering Resources
  • Deep dive
    • Accelerators
    • Distributed Systems
    • Electronics
    • FPGA
    • Hardware Design
    • High Performance Computing
    • Hardware-Software Interface
    • Interconnects
    • Interesting Companies
    • Memory and Storage Systems
    • Systems for ML
    • Computer Networks
    • Operating Systems and Virtualization
    • Parallel Computing
    • Performance
    • Processors
    • Programming Resources relevant to Comp Engg.
    • Computer Security
    • Systems
    • Tools and Utilities
Powered by GitBook
On this page
  • 1. Tools
  • 1.1. Performance Analysis
  • 1.2. Profiling
  • 1.3. Benchmarking
  • 1.4. Simulators
  • 1.5. Open Source Tools for Digital Design
  • 1.6. Emulators
  • 2. Utilities
  • 2.1. Hardware Design
  • 3. Misc

Was this helpful?

Edit on Git
  1. Deep dive

Tools and Utilities

PreviousSystems

Last updated 2 months ago

Was this helpful?

1. Tools

1.1. Performance Analysis

1.2. Profiling

1.3. Benchmarking

1.4. Simulators

1.4.1. System

1.4.2. Architectural

1.4.3. Hardware Accelerator (incl. GPU) simulators

1.4.4. Micro-architecture/ISA simulators

1.4.5. Memory Simulators

1.4.6. Interconnect Simulators

1.5. Open Source Tools for Digital Design

1.5.1. Digital/Analog Simulators

1.6. Emulators

2. Utilities

2.1. Hardware Design

3. Misc

- A tool for running small microbenchmarks on recent Intel and AMD x86 CPUs using hardware performance coutners.

- This tool allows automatic analysis of loop kernels using the Execution Cache Memory (ECM) model, the Roofline model and actual benchmarks. kerncraft provides a framework to investigate the data reuse and cache requirements by static code analysis. In combination with the Intel IACA tool kerncraft can give a good overview of both in-core and memory bottlenecks and use that data to apply performance models.

- A portable profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, UPC, Java, Python.

- A high-performance CPU, GPU and memory profiler for Python

- WhyProfiler is a CPU profiler for Jupyter notebook that not only identifies hotspots but can suggest faster alternatives.

- Estimate the cost of running deep learning workloads on cloud GPUs

- Up-to-date information on the features and pricing of GPU cloud providers.

- Hardware-assisted CPU profiling mechanism that offers detailed profiling capabilities.

- Cachegrind is a high-precision tracing profiler. It runs slowly, but collects precise and reproducible profiling data. Cachegrind can also simulate how your program interacts with a machine's cache hierarchy and branch predictor.

- measure memory latencies and b/w, and how they change with increasing load on the system

- Curious Coding's walkthrough on pointer chasing and other memory optimizations

- Pointer chase to reveal memory bandwidth and loaded-latency

- Repository of communication and compute micro-benchmarks as well as full workloads for evaluating training and inference platforms

- Warehouse scale traces captured using DynamoRIO's drmemtrace. The traces are records of instruction and memory accesses as described at Trace Format

- Consistent measurements of accuracy, speed, and efficiency on hardware for ML workloads

- Task-Parallel PARSEC

- Chai is a benchmark suite of Collaborative Heterogeneous Applications for Integrated-architectures. The Chai benchmarks are designed to use the latest features of heterogeneous architectures such as shared virtual memory and system-wide atomics to achieve efficient simultaneous collaboration between host and accelerator devices.

- MachSuite is a benchmark suite intended for accelerator-centric research.

- Distributed Deep Learning Training simulator, developed in collaboration between Georgia Tech, Meta and Intel.

- Structural Simulation Toolkit - Using the supercomputers of today to build the supercomputers of tomorrow

- The gem5 simulator is a modular platform for computer-system architecture research, encompassing system-level architecture as well as processor microarchitecture.

- Tool to enable more efficient gem5 simulations

- Documentation on SLICC

- CPUlator Computer System Simulator designed as a tool for learning assembly-language programming and computer organization

- A fast multiprocessor simulator with detailed power, thermal, and performance models for modern out-of-order multicores.

- Multi2Sim is a heterogeneous system simulator of CPUs and GPUs, used to test and validate new hardware designs before they are physically manufactured.

- A multi-core, parallel, high-speed and accurate x86 simulator.

- zsim is a fast x86-64 simulator with a focus on simulating memory hierarchies and large, heterogeneous systems

- A heterogeneous architecture timing model simulator.

- An analytical tool that takes a set of cache/memory parameters as input and calculates its access time, power, cycle time, and area.

- Architectural simulator that estimates CPU power consumption.

- An accurate and fast thermal model suitable for use in architectural studies.

- SuperScalar simulator is a cycle accurate architectural simulator that models a very wide set of architectures: single processors, CMPs, PIMs, and thread level speculation.

Full-system simulators and their popularity in conferences (table from 2015)

- Simulation framework for simulating and validating programmable accelerators like GPUs

- GPGPU-Sim provides a detailed simulation model of a contemporary GPUs

- FireSim is an open-source cycle-accurate FPGA-accelerated full-system hardware simulation platform that runs on cloud FPGAs

- MGPUSim is a Go based AMD GCN3 GPU simulator based-on the Akita framework.

- SCALE sim is a CNN accelerator simulator, that provides cycle-accurate timing, power/energy, memory bandwidth and trace results for a specified accelerator configuration and neural network architecture.

- Simulation TOol of Neural Network Engines, a cycle-level, highly-modular and highly-extensible simulation framework that can plug into any high-level DNN framework as an accelerator device and perform end-to-end evaluation of flexible accelerator microarchitectures with sparsity support, running complete DNN models.

- ChampSim is a trace-based simulator for a microarchitecture study.

- A Micro-Architectural Side-Channel Toolkit

- Venus is a RISC-V instruction set simulator built for education.

- Ripes is a visual computer architecture simulator and assembly code editor built for the RISC-V ISA.

- WinMIPS64 is an instruction set simulator, and is designed as a replacement for the popular Microsoft Windows utility WinDLX

- RISCV instruction set simulator (ISS) developed for the verification of the Swerv micro-controller. It allows the user to run RISCV code without RISCV hardware.

- Break down x86 SIMD instructions

- Accurately simulate the caching (allocation/hit/miss/replace/evict) behavior of all cache levels found in modern processors

- A validated NVRAM simulator

- A Low-level NVRAM Profiler

- An Architectural Level Main Memory Simulator for Emerging Non-Volatile Memories

- A simple trace-based cache simulator

- A cycle accurate DRAM simulator

- The herd tool allows the user to execute the model with a specific question about the possible final states of the program using ARM consistency memory model.

- A Simulator for Modern NVMe and SATA SSDs

- Variation-Aware model of Memory Power Informed by Real Experiments is an open-source DRAM power model based on an extensive experimental characterization of the power consumption of real DRAM modules.

- Ramulator is a fast and cycle-accurate DRAM simulator [1] that supports a wide array of commercial, as well as academic, DRAM standards

- Animations to illustrate cache behavior

- A cycle-accurate interconnection network simulator

- Dependency-Tracking Trace-Based Network-on-Chip Simulation.

- Network-on-Chip Simulator

- A Simulator for NoC Interconnect Routing and Application Modeling

- Verilator is the fastest free Verilog HDL simulator, and outperforms most commercial simulators

- Icarus Verilog is not aimed at being a simulator in the traditional sense, but a compiler that generates code employed by back-end tools.

- Open source FPGA tooling available under

- GTKWave is a fully featured GTK+ based wave viewer.

- WaveDrom draws your Timing Diagram or Waveform from simple textual description.

- Front-end for Yosys-based formal verification flows

- Formal tools for OSH

- Yosys is a framework for Verilog RTL synthesis.

- A High-Performance Timing Analysis Tool for VLSI Systems

- Fast IC layout and schematic editor capable of reading and writing common EDA formats

- An static random access memory (SRAM) compiler.

- A suite of tools including Qflow covering various aspects of digital design

- the VLSI layout editor, extraction, and DRC tool.

- the circuit drawing and schematic capture tool.

- the switch-level digital circuit simulator.

- the circuit netlist comparison (LVS) and netlist conversion tool.

- the over-the-cell (sea-of-gates) detail router.

- a complete digital synthesis design flow using open-source software and open-source standard cell libraries.

- the printed circuit board layout editor.

- open source spice simulator

- open source mixed-signal simulator supporting Spice and Verilog syntax, also see

- Includes , , , , and other tools.

- Tool to generate register RTL, models, and docs using SystemRDL or JSpec input

- A powerful, innovative and intuitive EDA tool for everyone!

- Asynchronous Circuit Design Toolkit to support the design and implementation of asynchronous logic

- PyMTL is an open-source, Python-based framework for multi-level hardware modeling.

- FPGA IP generator supporting highly-customizable homogeneous FPGA architectures

- This library contains various SystemC/TLM-2.0 modules that enable co-simulation of Xilinx QEMU, SystemC/TLM-2.0 models and RTL.

- focused on developing a complete system-on-chip (SoC) synthesis tool from user specification to GDSII.

- Edalize is a Python Library for interacting with EDA tools.

- A refreshed Python toolbox for building complex digital hardware

- Just-in-time compiler for Verilog

- A collection of classes for pythonic register-transfer level design, simulation, tracing, and testing suitable for teaching and research.

- MyHDL turns Python into a hardware description and verification language

- is an intermediate representation for digital circuit descriptions, together with an accompanying simulator and SystemVerilog/VHDL compiler.

- It is a open source IDE to make FPGA development easier

- Automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, Fault and custom methodology scripts for design exploration and optimization.

- Deep learning toolkit-enabled VLSI placement

- A modular build system for hardware ("make for silicon"). The project philosophy is to "make the complex possible while keeping the simple simple".

- Visualize and simulate digital logic using HDL

- Digital is a easy-to-use digital logic designer and circuit simulator designed for educational purposes.

- Run HDL/HVL code in your browser

- Falstad circuit simulator

- Assembly Practice

- Verilog Practice

- Verilog to waves instantly

- Logic simulator in your browser

-

- open source, SPICE-compatible, high-performance analog circuit simulator, capable of solving extremely large circuit problems by supporting large-scale parallel computing platforms.

- Micro-Cap 12 is an integrated schematic editor and mixed analog/digital simulator that provides an interactive sketch and simulate environment for electronics engineers. Now Open Source.

- Logisim is an educational tool for designing and simulating digital logic circuits.

- An independently developed fork of logisim that's preferred by many

- Another flavour of Logisim after the development of original version was stopped

- Digital Circuit Learning Platform. A free, powerful platform for designing, simulating and explaining digital circuits

- In-browser Verilog design environment

- TinyEMU is a system emulator for the RISC-V and x86 architectures.

- Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.

- A toolbox of 8-bit chip-emulators, helper code and complete embeddable system emulators

- Very simple Von Neumann Architecture Computer. Similar

- a command line debugger that focuses on visualizing how software changes memory. It's able to emulate statically linked i8086 and x86_64-pc-linux-gnu programs

- The FASoC Datasheet Scrubber is a utility that scrubs through large sets of PDF datasheets/documents in order to extract key circuit information.

- SVUT is a very simple flow to create a Verilog/SystemVerilog unit test.

- Create register maps and headers

- Visually dissect and analyze bit strings.

- BitField diagram Renderer

- Provides dot visualizations of chisel/firrtl circuites

- Handy for getting from simulation to spec quickly.

- Python-based IP-XACT parser

- SystemVerilog to Verilog conversion

- System Verilog lint using rust

- HDL Checker is a language server that wraps VHDL/Verilg/SystemVerilog tools that aims to reduce the boilerplate code needed to set things up.

- README embeddable waveforms!

- RgGen is a code generation tool for ASIC/IP/FPGA/RTL engineers. It will automatically generate soruce code related to configuration and status registers (CSR)

- The systemrdl-compiler module implements a generic compiler front-end for Accellera's SystemRDL 2.0 register description language.

- Verilog Fuzzer to test the major simulators and sythesisers by generating random, valid Verilog.

- Useful tools for working with HDL

- Altera Quartus/ Icestorm report parser

- Editable examples of registers

- Verible is a suite of SystemVerilog developer tools, including a parser, style-linter, and formatter.

- This tool takes a SystemVerilog file as input and produces as output the module(s) declared in that file, along with the module(s) instantiated in each one of those module declarations. It uses sv-parser and is adapted from svlint.

- A command-line hex viewer

- Playground for Chisel 3: A Modern Hardware Design Language

- Open application for translating text log files into the VCD (Variable Change Dump) format files. It is supposed to help you to debug your applications and systems

- A Hex Editor for Reverse Engineers, Programmers

VTuneâ„¢ Profiler Performance Analysis Cookbook
nanoBench
Github
kerncraft
TAU Performance System
Scalene
WhyProfiler
CPU Benchmark results
Cost of GPUs in the cloud
Comparison of GPU Cloud Providers: Pricing and Features
ARM SPE
CacheGrind
Utility for Core to Core latency measurements
Intel Memory latency checker
Pointer chasing
Multichase
PARAM
Google Workload Traces
MLPerf
tp-parsec
CHAI
MachSuite
ASTRA-Sim
SST
gem5
Lapidary
SLICC Tutorial
CPULator
ESESC
Multi2Sim
SniperSim
ZSim
MacSim
CACTI
WATTCH
Example
HotSpot
SESC
Accel-Sim
GPGPU Sim
FireSim
MPGPUSim
SCALESim
STONNE
ChampSim
Mastik
Venus
Ripes
WinMIPS64
Whisper
CompilerExplorer
The uops.info Code Analyzer
SIMD Giraffe
PyCacheSim
VANS
LENS
NVMain
Cache simulator
DRAMSim2
ARM Consistency Memory Model
MQSim
VAMPIRE
RAMulator
Intel TSX MESI Cache simulator
BookSim
NetTrace
Source code
Noxim
NIRGAM
Verilator
Icarus Verilog
SymbiFlow
YosysHQ
GTKWave
Wavedrom
SymbiYosys
Upscale Project
Yosys
Open Timer
Glade
OpenRAM
open-source
Open Circuit Design Flow
Magic
XCircuit
IRSIM
Netgen
Qrouter
Qflow
PCB
ngspice
gnucap
GnuCap GitBook
The Open Road Project
OpenSTA
RePlAce
OpenDB
ioPlacer
FastRoute4
Start here
Open Register Design
LibrePCB
ACT Tools Suite
PyMTL
OpenFPGA
LibSystemCTLM
Fully autonomous SoC Synthesis
EDALIZE
Open Source (FOSS) FPGA (EDA) Tooling Interchange Formats + Toolchain parts
nMigen
Cascade
PyRTL
myHDL
LLHD
TerosHDL
OpenLane
DREAMPlace
SiliconCompiler
DigitalJS
Digital
EDA Playground
Electronic Circuit Simulator
ASMBits
HDLBits
8bit Workshop
Logic Design and Circuit Simulator
LogicEmu
Transistor level 6502 Hardware Simulation in Javascript
Visual6502
Xyce
Micro Cap 12
Logisim
LogisimITA
Logisim-Evolution
Antares
MakerChip
TinyEMU
Unicorn
Emulator for Ben Eater's 8bit computer
8bit Chip Emulator
Little Man Computer
RISC
Blinken Lights
Data sheet scrubber
SystemVerilog Unit Test (SVUT)
AirHDL
BitBench
Bitfield
Diagrammer
VCD2Wavedrom
ipyxact
sv2v
svlint
Wavedrom to Verilog
HDL Checker
Wavedrom to ASCII converter
RgGen
System RDL Compiler
Verismith
Jeff's ASIC tools
Static Timing Analysis Diagram Renderer
Bitfield/Register representations
Verible
svinst
Online ARM Assember
Hexyl
Scastie
vcdMaker
ImHex
1. Tools
1.1. Performance Analysis
1.2. Profiling
1.3. Benchmarking
1.4. Simulators
1.4.1. System
1.4.2. Architectural
1.4.3. Hardware Accelerator (incl. GPU) simulators
1.4.4. Micro-architecture/ISA simulators
1.4.5. Memory Simulators
1.4.6. Interconnect Simulators
1.5. Open Source Tools for Digital Design
1.5.1. Digital/Analog Simulators
1.6. Emulators
2. Utilities
2.1. Hardware Design
3. Misc