{"library":"magma-lang","title":"Magma-lang","description":"Magma-lang is an embedded domain-specific language (eDSL) in Python for designing and generating hardware circuits. It enables hierarchical and compositional circuit design, targeting various hardware description languages like Verilog. The current version is 3.0.2, with active development incorporating community feedback and feature enhancements.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install magma-lang"],"cli":{"name":"magma","version":"/usr/local/lib/python3.11/site-packages/ast_tools/immutable_ast.py:10: UserWarning: /usr/local/lib/python3.11/site-packages/ast_tools/immutable_ast.py generated for (3, 9)does not match system version (3, 11)"}},"imports":["from magma import Circuit","from magma import Bit, In, Out","from magma.simulator import PythonSimulator","from magma import Circuit"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import magma\nfrom magma import Circuit, In, Out, Bit\nfrom magma.simulator import PythonSimulator\n\n# Define a simple 2-input AND gate circuit\nclass And2(Circuit):\n    name = \"And2\"\n    io = In(a=Bit, b=Bit), Out(o=Bit)\n    def definition(self):\n        # Use the @= operator for wiring\n        self.o @= self.a & self.b\n\n# Instantiate the circuit\nand_gate = And2()\n\n# Print a representation of the circuit\nprint(f\"Defined circuit: {and_gate.name}\")\n\n# Simulate the circuit\nsimulator = PythonSimulator(and_gate)\n\n# Test case: 1 AND 0\nsimulator.set_value(and_gate.a, 1)\nsimulator.set_value(and_gate.b, 0)\nsimulator.evaluate()\nresult_1_0 = simulator.get_value(and_gate.o)\nprint(f\"1 AND 0 = {result_1_0}\") # Expected: 0\n\n# Test case: 1 AND 1\nsimulator.set_value(and_gate.a, 1)\nsimulator.set_value(and_gate.b, 1)\nsimulator.evaluate()\nresult_1_1 = simulator.get_value(and_gate.o)\nprint(f\"1 AND 1 = {result_1_1}\") # Expected: 1\n","lang":"python","description":"This example defines a basic 2-input AND gate using Magma's class-based circuit definition and then simulates its behavior using the PythonSimulator.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}