Skip to main content

Event-driven Verilog-A Simulator — pure-Python behavioral simulation

Project description

EVAS — Event-driven Verilog-A Simulator

PyPI CI Docs License: MIT

A lightweight, pure-Python behavioral simulator for digital/mixed-signal Verilog-A models. Event-driven. No C compiler, no ngspice, no KCL/KVL solver.

📖 Docs: evas.tokenzhang.com  |  中文


If you're a human — install with pip and jump to Quickstart.

If you're an AI agent — copy skills/evas-sim/ into your .claude/skills/ (Claude Code) or equivalent skills directory for your agent framework. The skill file gives you built-in knowledge of EVAS commands, supported Verilog-A features, and common failure modes so you can simulate and debug without guessing.


Installation

pip install evas-sim

Verify:

evas list        # prints all bundled examples

If evas is not on PATH, use python -m evas.

Quickstart

# Run a bundled example
evas run clk_div

# Run with a specific testbench (for multi-TB examples)
evas run digital_basics --tb tb_not_gate.scs

# Simulate your own netlist
evas simulate path/to/tb.scs -o output/mydesign

Output lands in ./output/<name>/ (bundled) or the -o directory (custom). Each run produces tran.csv (waveforms), one or more .png plots, and strobe.txt (log messages).

Bundled Examples

Name Description
clk_div Clock divider
clk_burst_gen Clock burst generator
lfsr Linear feedback shift register
noise_gen Noise signal generator
ramp_gen Ramp signal generator
edge_interval_timer Edge-interval timer
d2b_4b 4-bit thermometer-to-binary decoder
dac_binary_clk_4b 4-bit binary DAC (clocked)
dac_therm_16b 16-bit thermometer DAC
adc_dac_ideal_4b 4-bit ideal ADC + DAC with sample-hold
comparator StrongARM comparator + offset search algorithm
dwa_ptr_gen DWA pointer generator
sar_adc_dac_weighted_8b 8-bit weighted SAR ADC + DAC
digital_basics AND / OR / NOT gates, D flip-flop, inverter chain

Supported Verilog-A

Feature Status
V(node) <+, V(a,b) differential
@(cross(...)), @(above(...)), @(initial_step)
transition() with delay / rise / fall
for, if/else, begin/end, arrays, parameters
`include, `define, `default_transition
SI suffixes, math functions, string parameters
I() <+, ddt(), idt(), q() <+
AC/DC analysis, subcircuit hierarchy, transistors

CSV Output Format

The save statement accepts optional per-signal format hints:

save vin:10e vout:6e clk:2e dout_code:d
Suffix Format
:6e (default) 4.500000e-01
:Nf fixed-point, N decimal places
:d integer

Development

git clone https://github.com/Arcadia-1/EVAS.git
cd EVAS
pip install -e ".[dev]"
pytest tests/ -v

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evas_sim-0.1.2.tar.gz (99.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evas_sim-0.1.2-py3-none-any.whl (135.9 kB view details)

Uploaded Python 3

File details

Details for the file evas_sim-0.1.2.tar.gz.

File metadata

  • Download URL: evas_sim-0.1.2.tar.gz
  • Upload date:
  • Size: 99.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evas_sim-0.1.2.tar.gz
Algorithm Hash digest
SHA256 35eb0d63935eed726bf4445973655108ea74d91d06a8f357daabd7ef1fabfeb5
MD5 68baceb7073ff7eef9d2ff94ff60b1f2
BLAKE2b-256 eb8fc945ff89c6085d7aa998ee372b97c26bafcb63e316bfa72455d7ac1234be

See more details on using hashes here.

Provenance

The following attestation bundles were made for evas_sim-0.1.2.tar.gz:

Publisher: publish.yml on Arcadia-1/EVAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evas_sim-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: evas_sim-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 135.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evas_sim-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 37232b96232f238c41341124bc899c4a891b6f5040eff4d9858af5d08cff1790
MD5 95626c80b4188970748baed0cf615c6d
BLAKE2b-256 06039be27df62e560e1e991a913a47f863b01f6c002062ed2d29cf557d3ff48e

See more details on using hashes here.

Provenance

The following attestation bundles were made for evas_sim-0.1.2-py3-none-any.whl:

Publisher: publish.yml on Arcadia-1/EVAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page