{"library":"pyslang","title":"pyslang Python Bindings for Slang SystemVerilog Compiler","description":"pyslang provides Python bindings for the `slang` C++ library, a high-performance compiler for SystemVerilog. It enables Python applications to parse, elaborate, and perform advanced static analysis on SystemVerilog code. The current version is 10.0.0. `slang` has a regular release cadence, with major versions often introducing significant LRM compliance updates and performance improvements.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install pyslang"],"cli":null},"imports":["import slang","from slang import Library"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import slang\n\n# 1. Create a library to manage SystemVerilog source files\nlibrary = slang.Library()\n\n# 2. Add SystemVerilog source text. Multiple calls can add more files.\n#    You can also add files from disk using library.addSourceFile('path/to/file.sv')\nsv_code = \"\"\"\nmodule MySimpleModule;\n  initial begin\n    $display(\"Hello from SystemVerilog in Python!\");\n  end\nendmodule;\n\"\"\"\nlibrary.addSourceText(sv_code, fileName='example.sv')\n\n# 3. Get the compiled representation (perform parsing and elaboration)\ncompilation = library.getCompilation()\n\n# 4. Check for any diagnostics (errors or warnings)\ndiagnostics = compilation.getDiagnostics()\n\nif diagnostics:\n    print(\"Compilation completed with diagnostics:\")\n    for diag in diagnostics:\n        print(diag.toString())\nelse:\n    print(\"Compilation successful with no diagnostics.\")\n    # Further operations (e.g., accessing symbols) would go here.\n    # For instance, finding the 'MySimpleModule' definition:\n    # root = compilation.getRoot()\n    # module = root.lookupName('MySimpleModule')","lang":"python","description":"This quickstart demonstrates how to initialize the `slang` library, add SystemVerilog source code, trigger compilation, and check for any errors or warnings. The `slang` library is primarily a compiler and analysis tool.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}