Skip to content
STIMSMITH

D Programming Language

Concept

The D Programming Language (Dlang) is described in the evidence as the implementation language for eUVM, an open-source multicore-enabled Universal Verification Methodology implementation. In that context, D provides garbage collection, C/C++ ABI interoperability, metaprogramming facilities, formatting APIs, slice-copy behavior, dynamic arrays, and concurrency-related semantics used by eUVM and the RISCV-DV port.

First seen 5/25/2026
Last seen 5/25/2026
Evidence 3 chunks
Wiki v1

WIKI

D Programming Language

Overview

The D Programming Language (Dlang) is presented in the evidence primarily through its role as the implementation language for eUVM, an open-source, multicore-enabled implementation of Universal Verification Methodology (UVM). The cited DVCon paper states that eUVM is coded in D and that eUVM inherits an automatic garbage collector from the D Programming Language.[C1]

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

1 connections
eUVM ← uses 100% 2e
eUVM is coded in the D Programming Language.

CITATIONS

8 sources
8 citations — click to expand
[1] eUVM is an open-source multicore-enabled UVM implementation coded in D, and eUVM inherits an automatic garbage collector from D. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[2] Because eUVM is implemented in D, it enables ABI-level compatibility with C/C++, allowing direct calls between C/C++ functions and eUVM testbenches without runtime overhead. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[3] eUVM uses D metaprogramming capabilities including UDAs, CTFE, code introspection, and generative programming; code introspection and CTFE support compile-time constraint parsing and analysis, while UDAs help maintain native memory footprint for randomized data elements. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[4] The RISCV-DV eUVM port refactors parts of the architecture to comply with D Programming Language concurrency semantics and avoids problematic global or static variables in multithreaded access patterns. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[5] eUVM can execute threads on multiple cores, supports forked processes assigned to specified processor threads, and its fork construct returns a configurable Fork object. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[6] In eUVM shallow-copy construction, D object introspection is used to determine an object memory footprint, and a D slice-copy operation results in a single memcopy call. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[7] D provides a format function comparable to SystemVerilog $sformatf and an sformat function that lets users provide scratch memory for formatted output. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[8] The D ~= operator is described as shorthand for appending an object to a dynamic array. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings