diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index d36325a..a72dfa2 100644 Binary files a/.doctrees/api.doctree and b/.doctrees/api.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 1d5d328..80c106b 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/transactron.lib.doctree b/.doctrees/transactron.lib.doctree index a62648e..21e7e55 100644 Binary files a/.doctrees/transactron.lib.doctree and b/.doctrees/transactron.lib.doctree differ diff --git a/api.html b/api.html index 60ad4ed..0b6eef5 100644 --- a/api.html +++ b/api.html @@ -175,7 +175,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

diff --git a/development-environment.html b/development-environment.html index 7d6e681..bf9ff2f 100644 --- a/development-environment.html +++ b/development-environment.html @@ -181,7 +181,7 @@

tprof.py

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

diff --git a/genindex.html b/genindex.html index d2e34b4..d38a616 100644 --- a/genindex.html +++ b/genindex.html @@ -205,6 +205,8 @@

_

  • (transactron.lib.transformers.MethodProduct method)
  • (transactron.lib.transformers.MethodTryProduct method) +
  • +
  • (transactron.lib.transformers.NonexclusiveWrapper method)
  • (transactron.lib.transformers.Unifier method)
  • @@ -1150,10 +1152,10 @@

    N

  • (transactron.profiler.RunStat attribute)
  • - - + +
  • NonexclusiveWrapper (class in transactron.lib.transformers) +
  • @@ -1985,7 +1989,7 @@

    W

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/index.html b/index.html index aa56586..a811e98 100644 --- a/index.html +++ b/index.html @@ -129,7 +129,7 @@

    Transactron

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/modules.html b/modules.html index 519a8e2..f12047e 100644 --- a/modules.html +++ b/modules.html @@ -161,7 +161,7 @@

    transactron

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/objects.inv b/objects.inv index 8a97e80..35b40d9 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 4e5baed..a33df0f 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -363,7 +363,7 @@

    Python Module Index

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/search.html b/search.html index 1a1871e..52686d8 100644 --- a/search.html +++ b/search.html @@ -91,7 +91,7 @@

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/searchindex.js b/searchindex.js index a9d87dc..c32ee9b 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "development-environment", "index", "modules", "transactions", "transactron", "transactron.cmd", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "development-environment.md", "index.md", "modules.rst", "transactions.md", "transactron.rst", "transactron.cmd.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "Development environment", "Transactron", "transactron", "Documentation for Transactron", "transactron package", "transactron.cmd package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 1, 2, 3], "subpackag": [0, 3], "cmd": [0, 3, 5], "submodul": [0, 3], "tprof": [0, 2, 3, 5], "modul": [0, 1, 3, 4], "content": [0, 3], "core": [0, 3, 5, 8, 9, 10], "bodi": [0, 3, 4, 5, 8, 9], "kei": [0, 3, 5, 6, 8, 10], "manag": [0, 1, 3, 4, 5, 8, 10], "method": [0, 1, 2, 3, 5, 8, 9, 10, 11], "schedul": [0, 2, 3, 5, 8, 11], "sugar": [0, 3, 5, 11], "tmodul": [0, 3, 4, 5, 8], "transact": [0, 1, 2, 3, 5, 8, 11], "transaction_bas": [0, 3, 5], "lib": [0, 3, 5, 7, 9, 10, 11], "adapt": [0, 3, 4, 5, 9], "alloc": [0, 3, 5], "button": [0, 3, 5], "connector": [0, 3, 5], "depend": [0, 3, 4, 5, 11], "fifo": [0, 3, 4, 5, 7], "log": [0, 1, 3, 5, 10], "metric": [0, 3, 5, 10], "reqr": [0, 3, 5], "simultan": [0, 3, 4, 5, 7], "storag": [0, 3, 5], "transform": [0, 3, 5], "test": [0, 2, 3, 5, 7, 8, 10, 11], "function": [0, 3, 4, 5, 7, 8, 10], "infrastructur": [0, 3, 5], "input_gener": [0, 3, 5], "method_mock": [0, 3, 5], "profil": [0, 1, 3, 6], "testbenchio": [0, 3, 5], "tick_count": [0, 3, 5], "util": [0, 3, 5, 8], "assign": [0, 3, 4, 5, 7], "data_repr": [0, 3, 5], "debug_sign": [0, 3, 5, 7, 8, 9], "depcach": [0, 3, 5], "gen": [0, 3, 5], "idgen": [0, 3, 5], "transactron_help": [0, 3, 5], "graph": [0, 1, 3, 7], "trace": [0, 1, 3], "In": [1, 4, 5, 7, 8, 9, 10, 11], "order": [1, 2, 7, 8, 11], "prepar": [1, 5], "pleas": [1, 4], "follow": [1, 4, 8, 9, 10], "step": [1, 4], "below": [1, 8], "instal": 1, "python": [1, 4, 7, 8, 9, 10], "3": [1, 5, 7, 10], "11": 1, "interpret": [1, 8, 10], "pip": 1, "option": [1, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [1, 4, 7, 8, 9, 10, 11], "virtual": 1, "python3": 1, "m": [1, 4, 7, 8, 11], "venv": 1, "project": [1, 4, 7], "directori": 1, "activ": [1, 7, 8, 9, 11], "gener": [1, 5, 7, 8, 9, 10, 11], "bin": 1, "all": [1, 4, 5, 7, 8, 9, 10, 11], "requir": [1, 4, 5, 7], "librari": [1, 2, 8], "pip3": 1, "dev": 1, "precommit": 1, "hook": [1, 5, 8], "pre": 1, "commit": 1, "thi": [1, 4, 5, 7, 8, 9, 10, 11], "automat": [1, 9, 10, 11], "linter": 1, "befor": [1, 4, 7, 8], "ar": [1, 4, 5, 7, 8, 9, 10, 11], "pytest": 1, "thing": [1, 4, 8, 10], "know": 1, "To": [1, 8, 10], "speed": 1, "multipl": [1, 4, 7, 8, 9, 10, 11], "worker": 1, "thread": 1, "can": [1, 4, 5, 7, 8, 9, 10, 11], "n": [1, 7, 11], "auto": 1, "onli": [1, 4, 5, 7, 8, 9, 10, 11], "some": [1, 4, 7, 8], "k": [1, 8], "express": [1, 4, 8], "format": [1, 4, 5, 7, 8, 10, 11], "i": [1, 4, 5, 7, 8, 9, 10, 11], "describ": [1, 5, 7, 8, 9], "doc": 1, "abl": [1, 8], "read": [1, 4, 7, 8, 10, 11], "standard": [1, 8, 9, 11], "output": [1, 7, 8, 9, 11], "even": [1, 4, 7, 8], "success": [1, 9], "": [1, 4, 5, 7, 8, 10, 11], "custom": [1, 8, 11], "transactron": 1, "file": [1, 10], "readabl": [1, 8], "gtkwave": [1, 10], "The": [1, 2, 5, 7, 8, 9, 10, 11], "save": [1, 5, 8, 10], "__traces__": 1, "execut": [1, 4, 5, 7, 8, 9], "name": [1, 4, 5, 7, 8, 9, 10, 11], "__profiles__": 1, "filter": [1, 8], "allow": [1, 4, 7, 8, 9, 11], "contain": [1, 4, 7, 8, 10, 11], "number": [1, 5, 7, 8, 9, 10, 11], "which": [1, 4, 5, 7, 8, 9, 10, 11], "ci": 1, "also": [1, 4, 8, 9], "intend": [1, 7, 11], "local": 1, "thei": [1, 4, 7, 8], "check": [1, 7, 10], "code": [1, 4, 5, 8, 10], "type": [1, 7, 8, 9, 10, 11], "It": [1, 4, 5, 7, 8, 9, 10, 11], "should": [1, 4, 7, 8, 9, 10, 11], "subcommand": 1, "filenam": 1, "main": [1, 6], "avail": [1, 8], "reformat": 1, "black": 1, "check_format": 1, "verifi": 1, "flake8": 1, "check_typ": 1, "pyright": 1, "same": [1, 4, 7, 8, 9, 10, 11], "when": [1, 4, 7, 8, 9, 10, 11], "confront": 1, "would": [1, 4, 8, 10], "messag": [1, 8], "from": [1, 4, 5, 7, 8, 9, 10, 11], "you": [1, 7, 8, 11], "mai": [1, 8, 10], "diff": 1, "wai": [1, 4, 7, 8, 10, 11], "displai": 1, "chang": [1, 4, 8, 9, 10, 11], "appli": [1, 5, 7, 9, 11], "chose": 1, "help": [1, 8], "locat": [1, 5, 7, 8, 10], "issu": [1, 4, 8], "document": [1, 2], "sphinx": 1, "html": 1, "build": [1, 8], "process": [1, 8, 9], "present": [1, 4, 8, 10], "them": [1, 4, 7, 8, 10, 11], "run_test": 1, "__profile__": 1, "profile_fil": 1, "json": [1, 10], "inform": [1, 5, 8, 10], "about": [1, 5, 8, 10], "default": [1, 4, 5, 7, 8, 10, 11], "For": [1, 4, 5, 7, 8, 10, 11], "one": [1, 4, 7, 8, 9, 10, 11], "mode": 1, "column": 1, "have": [1, 4, 7, 8, 9, 10, 11], "mean": [1, 7, 8], "question": [1, 4], "togeth": [1, 4, 7], "differenti": 1, "between": [1, 4, 7, 8, 9, 10, 11], "ident": [1, 8, 11], "differ": [1, 7, 8, 9, 10, 11], "sourc": [1, 5, 7, 8], "line": 1, "where": [1, 4, 7, 8, 9, 10], "wa": [1, 4, 5, 7, 8, 9, 10], "declar": [1, 4, 8, 9], "further": [1, 8], "disambigu": 1, "lock": [1, 4, 5, 8], "show": 1, "cycl": [1, 4, 5, 7, 8, 9, 11], "caller": [1, 4, 5, 7, 8], "call": [1, 4, 5, 7, 8, 9, 10, 11], "fals": [1, 4, 5, 8, 10, 11], "condit": [1, 4, 5, 7, 8], "could": [1, 4, 8, 9], "forc": 1, "wait": [1, 7, 9], "anoth": [1, 4, 7, 8, 9], "conflict": [1, 2, 5, 7], "given": [1, 4, 5, 7, 8, 9, 10, 11], "produc": [1, 7], "each": [1, 4, 5, 7, 8, 9, 10, 11], "tree": [1, 5, 8], "counter": [1, 8], "root": [1, 5], "count": [1, 7, 8, 11], "an": [1, 4, 5, 7, 8, 9, 10, 11], "invert": 1, "leav": 1, "children": 1, "node": [1, 6], "field": [1, 4, 5, 7, 8, 10], "how": [1, 7, 8], "mani": [1, 4, 5, 7, 8, 9, 10], "respons": [1, 7, 8], "other": [1, 4, 5, 7, 8, 11], "sort": [1, 11], "select": [1, 8, 11], "row": 1, "regular": 1, "loc": 1, "develop": [2, 8], "environ": 2, "set": [2, 7, 8, 9, 10, 11], "up": [2, 8, 10], "run": [2, 4, 5, 7, 8, 9, 11], "us": [2, 4, 7, 8, 9, 10, 11], "script": 2, "lint": 2, "sh": 2, "build_doc": 2, "py": [2, 9], "introduct": 2, "basic": [2, 8], "usag": 2, "implement": [2, 8, 10, 11], "argument": [2, 7, 8, 9, 10, 11], "pass": [2, 7, 8, 9, 10], "convent": 2, "definit": [2, 7, 9], "return": [2, 7, 8, 10, 11], "valu": [2, 5, 7, 8, 9, 10, 11], "readi": [2, 5, 7, 8, 11], "signal": [2, 5, 7, 8, 9, 10, 11], "advanc": [2, 9], "concept": 2, "special": [2, 8], "combin": [2, 7, 8, 9, 10], "domain": [2, 7, 11], "nest": [2, 8, 11], "api": 2, "amaranth": [4, 5, 7, 8, 9, 10, 11], "connect": [4, 7, 8, 11], "complex": [4, 8, 11], "inspir": 4, "bluespec": 4, "program": 4, "languag": 4, "see": [4, 7, 8, 11], "wiki": 4, "compil": 4, "idea": 4, "interfac": [4, 7, 8, 11], "hardwar": [4, 8], "A": [4, 5, 7, 8, 9, 10, 11], "state": [4, 7, 8, 9], "oper": [4, 7, 8, 11], "perform": [4, 7, 8, 9, 10, 11], "singl": [4, 7, 8, 9, 10, 11], "clock": [4, 5, 7, 8, 9], "atom": 4, "either": [4, 7, 8, 9, 10, 11], "its": [4, 7, 8, 9, 10, 11], "entrieti": 4, "doe": [4, 11], "defin": [4, 7, 8, 9, 10, 11], "via": [4, 7, 8], "directli": [4, 7, 11], "link": 4, "indirectli": [4, 7], "If": [4, 5, 7, 8, 9, 10, 11], "try": 4, "access": [4, 8, 9, 10], "coordin": 4, "system": [4, 10], "avoid": [4, 11], "commun": 4, "both": [4, 7, 8, 10, 11], "direct": [4, 5, 7, 8, 11], "back": 4, "structur": [4, 5, 7, 8, 10], "record": [4, 7, 8, 10, 11], "simplest": 4, "part": [4, 7, 8], "elaborat": [4, 5, 7, 8, 9, 10], "block": [4, 7, 8, 11], "class": [4, 5, 7, 8, 9, 10, 11], "myth": 4, "def": [4, 7, 11], "elabor": 4, "self": [4, 9, 11], "platform": [4, 5], "includ": [4, 7, 8, 10, 11], "like": [4, 7, 8, 9], "d": [4, 7, 10, 11], "comb": [4, 7, 11], "sig1": 4, "eq": [4, 7, 11], "expr1": 4, "sync": [4, 7, 11], "sig2": 4, "expr2": 4, "result": [4, 8, 9, 10, 11], "arg_expr": 4, "work": [4, 7, 8, 9], "analog": 4, "multiplex": 4, "rememb": [4, 5], "statement": [4, 7, 10], "insid": [4, 7, 8], "alwai": [4, 7, 8, 9, 11], "onc": [4, 7, 8, 11], "As": [4, 8], "typic": [4, 7, 8], "constructor": [4, 7, 10, 11], "myotherth": 4, "__init__": [4, 5, 7, 8, 9, 10, 11], "o": [4, 7, 8, 11], "paramet": [4, 7, 8, 9, 10, 11], "layout": [4, 7, 8, 9, 10], "my_method": [4, 7], "input_layout": 4, "output_layout": 4, "need": [4, 7, 8, 9, 11], "instead": [4, 5, 7, 8, 9, 11], "def_method": [4, 7], "_": [4, 7], "arg": [4, 5, 7, 8, 9, 10, 11], "other_method": 4, "ret_expr": 4, "techniqu": 4, "abov": 4, "conveni": [4, 7, 8], "syntax": [4, 7, 11], "just": [4, 8], "particular": 4, "unnam": 4, "usual": [4, 8, 9], "exampl": [4, 7, 8, 9, 11], "around": [4, 11], "entir": 4, "sometim": 4, "might": [4, 5, 8], "two": [4, 7, 8, 10, 11], "altern": [4, 7, 8], "decid": [4, 9], "best": 4, "easi": [4, 8], "import": 4, "ask": 4, "yourself": 4, "someth": [4, 11], "independ": [4, 8], "so": [4, 5, 7, 8, 11], "mayb": 4, "Or": 4, "extern": [4, 7], "doubt": 4, "prefer": 4, "becaus": [4, 5, 7, 8, 9], "noth": 4, "els": [4, 7], "Such": [4, 8], "adaptertran": [4, 8], "though": 4, "case": [4, 7, 8, 9, 10, 11], "cleaner": 4, "suppos": 4, "we": [4, 9, 11], "input": [4, 7, 8, 9, 11], "foo": [4, 8], "1": [4, 5, 7, 8, 9, 10, 11], "bar": [4, 8], "32": [4, 8], "cleanest": 4, "recommend": 4, "keyword": [4, 7, 8, 9, 10], "foo_expr": 4, "bar_expr": 4, "dict": [4, 5, 7, 8, 9, 10, 11], "final": [4, 7, 11], "rec": 4, "recurs": [4, 5, 6, 10, 11], "take": [4, 7, 8, 9, 10, 11], "layout2": 4, "foobar": 4, "baz": 4, "42": 4, "method2": [4, 8], "One": [4, 8, 11], "baz_expr": 4, "receiv": [4, 7, 8, 9], "method3": 4, "resourc": [4, 7], "request": [4, 5, 7, 8, 9, 11], "bit": [4, 7, 8, 10, 11], "expr": 4, "similar": [4, 7, 8, 11], "mechan": [4, 8], "intern": [4, 7, 8, 11], "risk": [4, 8], "introduc": 4, "loop": [4, 7], "certain": 4, "occas": 4, "possibl": [4, 8, 9, 10], "relax": 4, "e": [4, 8, 9, 10, 11], "g": [4, 8, 9, 10, 11], "framework": 4, "design": [4, 5], "facilit": 4, "re": [4, 7], "provid": [4, 7, 8, 9, 10, 11], "most": [4, 7, 8], "ones": [4, 11], "connecttran": [4, 8], "queue": [4, 8], "write": [4, 7, 8, 11], "plain": [4, 7, 8], "These": 4, "veri": 4, "testbench": [4, 8, 9], "own": [4, 5, 7, 8], "variant": 4, "Its": 4, "role": 4, "improv": 4, "circuit": [4, 7, 8, 10, 11], "omit": [4, 7, 8], "unneed": 4, "done": [4, 7, 8, 9], "ad": [4, 7, 8, 9, 10, 11], "addit": [4, 10], "combinatori": 4, "av_comb": [4, 7], "top_comb": [4, 7, 11], "under": [4, 5, 7], "avoidedif": [4, 7], "guard": [4, 7, 8, 9], "grant": [4, 5, 7, 8, 11], "therefor": 4, "don": [4, 7, 9], "t": [4, 7, 8, 9, 10], "induc": 4, "often": 4, "safe": [4, 10], "do": [4, 7, 8, 9, 11], "switch": [4, 7, 8, 11], "etc": [4, 9], "logic": [4, 8], "belong": [4, 8], "aren": [4, 8], "actual": 4, "were": [4, 9], "manual": [4, 9, 11], "move": [4, 8], "top": [4, 7, 10], "level": [4, 7, 8, 9, 10, 11], "caveat": 4, "normal": [4, 8, 9], "cannot": [4, 7, 8, 9], "exist": [4, 8, 10], "forward": [4, 7, 8], "place": [4, 7, 8], "handl": [4, 7], "make": [4, 5, 9], "consid": [4, 7, 8], "object": [4, 5, 8, 9, 10], "schedule_befor": [4, 7], "after": [4, 8, 11], "first": [4, 7, 8, 9, 10, 11], "first_t_or_m": 4, "other_t_or_m": 4, "lift": 4, "first_m": 4, "other_t": 4, "t1": 4, "t2": 4, "made": 4, "situat": [4, 7], "mutual": [4, 7, 8], "exclus": [4, 7, 8, 11], "similarli": [4, 8], "add_conflict": [4, 7], "ha": [4, 5, 7, 8, 11], "prioriti": [4, 7, 8, 11], "left": [4, 7, 11], "right": [4, 7, 11], "undefin": [4, 7, 8, 11], "add": [4, 7, 8, 9, 10, 11], "other_m": 4, "come": 4, "cost": 4, "increas": [4, 8], "size": [4, 8, 10], "delai": [4, 9], "featur": 4, "consider": 4, "parent": 4, "convers": 4, "true": [4, 5, 7, 8, 9, 10, 11], "doesn": 4, "limit": [4, 8], "impli": 4, "amaranth_ext": [5, 10], "component_interfac": [5, 10], "memori": [5, 7, 8, 10], "shifter": [5, 10], "extract": 5, "base": [5, 7, 8, 9, 10, 11], "intflag": 5, "IN": 5, "inout": 5, "none": [5, 6, 7, 8, 9, 10, 11], "0": [5, 6, 7, 8, 9, 11], "out": [5, 7, 8, 11], "2": [5, 7, 8, 10, 11], "__new__": 5, "protocol": [5, 7, 8], "kwarg": [5, 7, 8, 9, 10, 11], "str": [5, 6, 7, 8, 9, 10, 11], "properti": [5, 7, 9, 11], "owned_nam": 5, "owner": [5, 7], "ownershipgraph": 5, "dump": 5, "fp": 5, "liter": [5, 11], "dot": [5, 8], "elk": 5, "mermaid": 5, "dump_dot": 5, "int": [5, 7, 8, 9, 10, 11], "indent": [5, 8, 10], "dump_elk": 5, "dump_mermaid": 5, "get_hier_nam": 5, "obj": [5, 10], "get": [5, 7, 8, 9, 10, 11], "hierarch": 5, "rais": [5, 8, 9, 10], "keyerror": [5, 8, 10], "yet": [5, 11], "get_nam": 5, "insert_edg": 5, "fr": 5, "insert_nod": 5, "mermaid_direct": 5, "prune": 5, "mark": 5, "empti": [5, 8, 11], "subgraph": 5, "remember_field": 5, "owner_id": 5, "methodsampl": 5, "runtim": [5, 8, 11], "control": [5, 8, 9, 11], "attribut": [5, 7, 8, 10, 11], "bool": [5, 6, 7, 8, 9, 10, 11], "simul": [5, 7, 8, 9], "restor": 5, "analysi": 5, "tool": 5, "data": [5, 7, 8, 9, 10, 11], "refer": [5, 10], "uniqu": [5, 8], "id": 5, "transactions_and_method": 5, "profileinfo": 5, "index": [5, 7, 8, 11], "list": [5, 6, 7, 8, 9, 10, 11], "cycleprofil": 5, "factori": [5, 8, 10], "analyze_method": 5, "runstatnod": [5, 6], "analyze_transact": 5, "static": [5, 7, 8, 9, 10, 11], "decod": [5, 10, 11], "file_nam": [5, 10], "encod": [5, 8, 10, 11], "classmethod": [5, 8, 10], "from_dict": [5, 8, 10], "kv": [5, 8, 10], "union": [5, 8, 9, 10, 11], "float": [5, 8, 9, 10], "infer_miss": [5, 8, 10], "from_json": [5, 8, 10], "byte": [5, 8, 10], "bytearrai": [5, 8, 10], "parse_float": [5, 8, 10], "parse_int": [5, 8, 10], "parse_const": [5, 8, 10], "kw": [5, 8, 10], "schema": [5, 8, 10], "exclud": [5, 8, 10], "context": [5, 7, 8, 9, 10], "load_onli": [5, 8, 10], "dump_onli": [5, 8, 10], "partial": [5, 8, 10], "unknown": [5, 8, 10], "schemaf": [5, 8, 10], "to_dict": [5, 8, 10], "encode_json": [5, 8, 10], "to_json": [5, 8, 10], "skipkei": [5, 8, 10], "ensure_ascii": [5, 8, 10], "check_circular": [5, 8, 10], "allow_nan": [5, 8, 10], "separ": [5, 7, 8, 10], "tupl": [5, 6, 7, 8, 9, 10, 11], "callabl": [5, 6, 7, 8, 9, 10], "sort_kei": [5, 8, 10], "profiledata": [5, 10], "individu": 5, "method_par": 5, "transactions_by_method": 5, "transaction_conflict": 5, "transaction_manag": [5, 7, 9], "transactionmanag": [5, 7, 9], "src_loc": [5, 7, 8, 10], "srcloc": [5, 7, 8], "is_transact": 5, "profilesampl": 5, "transactionsampl": 5, "runstat": [5, 6], "collect": [5, 7, 8, 9, 10, 11], "statist": 5, "disabl": [5, 8, 9], "did": [5, 9], "info": [5, 8], "summar": 5, "stat": 5, "runnabl": [5, 7], "tracingenabl": 5, "tracingfrag": 5, "fragment": [5, 7], "haselabor": [5, 7, 8, 9, 11], "origin": [5, 8], "lose": 5, "too": [5, 8], "difficult": 5, "exact": 5, "copi": 5, "relev": 5, "copyright": 5, "subfrag": 5, "hdl": [5, 7, 8, 9, 10, 11], "_ir": [5, 10], "tracingfragmenttransform": 5, "fragmenttransform": 5, "on_frag": 5, "tracinginst": 5, "instanc": [5, 7, 8, 10, 11], "filter_nod": 6, "regex": 6, "process_stat_tre": 6, "x": [6, 10, 11], "iter": [6, 7, 8, 9, 10, 11], "ret": 6, "depth": [6, 8, 11], "sort_nod": 6, "sort_ord": 6, "adapterbodyparam": [7, 8, 9], "typeddict": 7, "notrequir": 7, "sequenc": [7, 10, 11], "view": [7, 8, 10, 11], "structlayout": [7, 8, 9, 10], "_ast": [7, 8, 9, 10, 11], "enum": [7, 8, 9, 10, 11], "valuecast": [7, 8, 9, 10, 11], "abc": [7, 8, 9, 10, 11], "map": [7, 8, 9, 10, 11], "assignarg": [7, 10], "nonexclus": [7, 8], "single_cal": [7, 8], "transactionbas": 7, "unpack": [7, 8, 9], "bodyparam": 7, "ctrl_path": 7, "ctrlpath": 7, "path": [7, 8], "def_count": 7, "classvar": 7, "def_ord": 7, "method_cal": 7, "defaultdict": 7, "method_us": 7, "peek": [7, 8], "stack": [7, 8, 10], "validate_argu": [7, 8, 9], "transactionmanagerkei": 7, "simplekei": [7, 8, 9, 10], "transactioncompon": 7, "transactionmodul": 7, "compon": [7, 8, 11], "transactroncompon": 7, "wrapper": [7, 8], "support": [7, 8, 11], "wrap": [7, 11], "synthesi": 7, "port": [7, 8, 10, 11], "extend": [7, 11], "abstractcompon": 7, "dependency_manag": [7, 9], "dependencymanag": [7, 8, 9, 10], "new": [7, 8, 10, 11], "care": [7, 8], "never": 7, "cc_schedul": 7, "methodmap": [7, 8], "tbodi": 7, "_dsl": 7, "eager_deterministic_cc_schedul": 7, "_rec": [7, 8, 10, 11], "signalbundl": [7, 8, 10, 11], "print_info": 7, "cgr": 7, "porder": 7, "cc": 7, "method_map": 7, "visual_graph": 7, "store": [7, 8, 9, 10, 11], "dependencycontext": [7, 10], "serv": [7, 8], "simultena": 7, "rest": 7, "must": [7, 8, 10, 11], "non": [7, 8, 9], "except": [7, 9, 10], "behavior": [7, 8, 10, 11], "combination": 7, "transfer": [7, 8], "time": [7, 8, 9], "data_out": [7, 8, 11], "data_in": [7, 8, 11], "effect": [7, 8, 9], "current": [7, 11], "methodstruct": [7, 8], "shape": [7, 8, 10, 11], "rang": [7, 8, 9, 10, 11], "shapecast": [7, 8, 10, 11], "forwardref": [7, 8, 9, 10], "shapelik": [7, 8, 9, 10, 11], "layoutlist": [7, 8, 9, 10], "hint": [7, 11], "infer": 7, "variabl": [7, 11], "frame": [7, 8], "deep": [7, 8], "taken": [7, 8], "const": [7, 8, 9, 10], "d1": [7, 8], "d0": 7, "action": [7, 8, 10], "indic": [7, 8, 11], "By": [7, 8], "combinationi": 7, "valuelik": [7, 8, 9, 11], "whether": [7, 8, 11], "those": 7, "instanti": 7, "accept": [7, 8, 10], "third": [7, 8], "vector": [7, 11], "whose": 7, "th": [7, 8, 11], "happen": [7, 9], "still": [7, 8], "error": [7, 8, 10], "thrown": 7, "my_sum_method": 7, "arg1": 7, "8": [7, 8], "arg2": 7, "sum": [7, 8], "16": 7, "layout_in": [7, 8], "layout_out": [7, 8], "construct": [7, 8, 11], "blueprint": 7, "freshli": 7, "proxi": 7, "methoddir": 7, "gr": 7, "transactiongraph": 7, "transactiongraphcc": 7, "priorityord": 7, "eager": 7, "subsystem": [7, 11], "isn": 7, "fair": 7, "start": [7, 8, 11], "lowest": 7, "highest": [7, 11], "concurr": 7, "arbitr": [7, 11], "agent": [7, 11], "vertic": 7, "edg": [7, 8, 9], "linear": 7, "consist": 7, "constraint": 7, "trivial_roundrobin_cc_schedul": 7, "simpl": [7, 8, 10, 11], "round": [7, 10, 11], "robin": [7, 11], "mainli": 7, "purpos": [7, 8], "decor": [7, 9], "eleg": 7, "correspond": [7, 8, 9, 11], "dictionari": [7, 8], "go": 7, "detail": [7, 8], "lambda": [7, 9], "over": [7, 8, 9], "easili": [7, 8], "expect": 7, "least": [7, 9, 11], "equival": [7, 8, 9, 11], "len": [7, 8, 11], "form": [7, 8], "three": 7, "parametr": 7, "my_filter_read_method": 7, "ready_list": 7, "head": [7, 8], "modulelik": [7, 8, 11], "everi": [7, 8, 9], "reduc": 7, "amount": [7, 9, 11], "useless": 7, "multplex": 7, "due": [7, 8], "while": [7, 9], "unguard": 7, "length": [7, 8, 9, 10, 11], "keep": 7, "relat": [7, 8, 10], "synchron": [7, 8, 9], "cond": [7, 8], "pattern": 7, "elif": 7, "fsm": 7, "init": [7, 8], "next": [7, 9, 11], "noreturn": 7, "repres": [7, 8, 11], "task": 7, "regularli": 7, "last": [7, 8, 11], "met": 7, "explicit": 7, "implicit": 7, "aris": 7, "pair": [7, 8, 11], "want": [7, 9, 11], "priorit": 7, "_t": 7, "end": [7, 8, 11], "regist": [7, 8, 10], "reason": 7, "common": [7, 8, 10], "independent_list": 7, "relationbas": 7, "without": [7, 8, 10], "simultaneous_altern": 7, "howev": [7, 8], "simultaneous_list": 7, "adapterbas": [8, 9], "mock": [8, 9], "en": [8, 9], "valid": [8, 9, 10, 11], "descript": [8, 10], "with_validate_argu": [8, 9], "update_arg": 8, "ifac": 8, "expos": [8, 10], "priorityencoderalloc": 8, "superscalar": 8, "identifi": 8, "dealloc": 8, "continu": [8, 9], "fresh": 8, "littl": 8, "free": 8, "entri": [8, 10, 11], "total": 8, "mask": [8, 11], "treat": 8, "reset": 8, "clickin": 8, "click": 8, "interact": 8, "fpga": 8, "On": 8, "rise": 8, "btn": 8, "enabl": [8, 9, 10, 11], "dat": 8, "retriev": 8, "clickout": 8, "led": 8, "put": 8, "flow": [8, 11], "revers": 8, "possibli": 8, "rev_layout": 8, "second": [8, 11], "vice": 8, "versa": 8, "compat": 8, "method1": 8, "respect": 8, "full": 8, "fulfil": 8, "fifo_typ": 8, "syncfifo": 8, "fifotyp": 8, "conform": 8, "overflow": 8, "buffer": [8, 11], "No": 8, "until": [8, 9], "clear": [8, 10], "manytooneconnecttran": 8, "get_result": 8, "put_result": 8, "pipe": 8, "halfwai": 8, "locali": 8, "critic": [8, 9], "cut": 8, "comparison": 8, "clean": 8, "dependencykei": [8, 10], "u": [8, 10], "concret": [8, 10], "frozen": [8, 10], "lock_on_get": [8, 10], "specifi": [8, 10], "alreadi": [8, 10, 11], "get_depend": [8, 10], "cach": [8, 10], "subsequ": [8, 10], "empty_valid": [8, 10], "ani": [8, 9, 10, 11], "caus": [8, 10], "abstract": [8, 10], "add_depend": [8, 10], "give": [8, 10], "kind": [8, 10], "track": [8, 10], "across": [8, 10], "multpl": [8, 10], "get_optional_depend": [8, 10], "gettabl": [8, 10], "otherwis": [8, 10, 11], "listkei": [8, 10], "dependeci": [8, 10], "more": [8, 9, 10, 11], "than": [8, 10, 11], "default_valu": [8, 10], "unifierkei": 8, "unifi": 8, "wish": 8, "basicfifo": 8, "element": 8, "front": 8, "delet": 8, "semaphor": 8, "max_count": 8, "widefifo": 8, "per": 8, "denot": 8, "maximum": 8, "insert": 8, "remov": 8, "arraylayout": 8, "less": [8, 11], "enough": 8, "slot": 8, "read_width": 8, "write_width": 8, "max": 8, "written": 8, "assum": [8, 10], "equal": [8, 11], "hardwarelogg": 8, "intuit": 8, "logger": 8, "softwar": 8, "anywher": 8, "parallel": 8, "natur": [8, 11], "trigger": [8, 9, 10], "shall": 8, "report": 8, "evalu": [8, 9], "print": 8, "dure": [8, 9], "arbitrari": 8, "exactli": 8, "string": [8, 9], "organ": 8, "namespac": 8, "hierarchi": 8, "period": 8, "much": 8, "frontend": 8, "upper": 8, "icach": 8, "bpu": 8, "sub": 8, "There": 8, "backend": 8, "fu": 8, "jumpbranch": 8, "assert": [8, 9, 11], "src_loc_at": [8, 11], "find": 8, "bug": 8, "hard": 8, "detect": 8, "termin": 8, "turn": 8, "warn": 8, "board": 8, "debug": [8, 10], "sever": 8, "semant": 8, "server": 8, "pep": 8, "3101": 8, "look": 8, "fail": 8, "logkei": 8, "logrecord": 8, "loglevel": 8, "alia": 8, "logrecordinfo": [8, 10], "event": 8, "being": [8, 10, 11], "logger_nam": [8, 10], "format_str": [8, 10], "agnost": 8, "serial": 8, "outsid": 8, "templat": 8, "get_log_record": 8, "namespace_regexp": [8, 9], "bigger": 8, "minimum": 8, "regexp": 8, "get_trigger_bit": 8, "high": [8, 11], "whenev": 8, "fifolatencymeasur": 8, "measur": 8, "durat": 8, "latenc": 8, "finish": 8, "exponenti": 8, "histogram": 8, "fully_qualified_nam": 8, "slots_numb": 8, "max_lat": 8, "fulli": 8, "qualifi": 8, "human": 8, "width": [8, 10, 11], "bucket": 8, "metrics_en": 8, "previou": 8, "stop": 8, "oldest": 8, "hardwaremetricsmanag": 8, "compos": 8, "get_metr": 8, "hwmetric": 8, "get_register_valu": 8, "metric_nam": 8, "reg_nam": 8, "hold": 8, "load": [8, 10], "min": 8, "hwcounter": 8, "width_bit": 8, "incr": 8, "hwexphistogram": 8, "distribut": 8, "sampl": [8, 9], "through": 8, "observ": 8, "configur": 8, "5": [8, 9], "4": [8, 10], "inf": 8, "addition": 8, "bucket_count": 8, "sample_width": 8, "registers_width": 8, "max_valu": 8, "calcul": 8, "metricmodel": 8, "add_regist": 8, "reg": [8, 10], "hwmetricregist": 8, "inherit": [8, 11], "initi": 8, "hwmetricsenabledkei": 8, "theirs": 8, "synthes": 8, "compris": 8, "dedic": 8, "specif": 8, "determin": [8, 10], "user": 8, "join": 8, "metricregistermodel": 8, "associ": 8, "fundament": 8, "singular": 8, "among": 8, "reman": 8, "brief": 8, "taggedcount": 8, "tag": 8, "At": 8, "dynam": [8, 11], "integ": [8, 9, 10], "neg": [8, 9, 10], "ok": 8, "hot": [8, 11], "optim": 8, "tag_width": 8, "one_hot": 8, "underli": 8, "taggedlatencymeasur": 8, "argumentstoresultszipp": 8, "zip": 8, "calle": 8, "asymmetri": 8, "long": 8, "correctli": 8, "rate": 8, "reach": [8, 11], "capac": 8, "topologi": 8, "peek_arg": 8, "write_arg": 8, "args_layout": 8, "write_result": 8, "results_layout": 8, "latest": 8, "client": 8, "somethig": 8, "deseri": 8, "proper": 8, "serialize_in": 8, "serialized_req_method": 8, "serialize_out": 8, "serialized_resp_method": 8, "port_count": 8, "resist": 8, "pipelin": 8, "nonblock": 8, "overlap": 8, "branch": 8, "boolean": 8, "catch": 8, "negat": [8, 10], "influenc": 8, "cond1": 8, "cond2": 8, "asyncmemorybank": 8, "asynchron": 8, "granular": [8, 11], "addr": 8, "data_layout": [8, 10], "address": [8, 11], "appropri": 8, "read_port": 8, "write_port": [8, 11], "memory_typ": 8, "amaranth_typ": 8, "abstractmemoryconstructor": 8, "whole": 8, "split": 8, "accord": [8, 10], "contentaddressablememori": 8, "addres": 8, "short": 8, "cam": 8, "predefin": [8, 9], "fed": 8, "compar": 8, "hit": 8, "push": 8, "behaviour": 8, "nondestruct": 8, "updat": [8, 11], "address_layout": 8, "entries_numb": 8, "layoutlik": 8, "memorybank": 8, "read_req": 8, "read_resp": 8, "transpar": 8, "cattran": 8, "concaten": 8, "src1": 8, "src2": 8, "dst": 8, "collector": 8, "target": 8, "method_list": 8, "connectandmaptran": 8, "behav": 8, "modifi": 8, "i_fun": 8, "recorddict": 8, "o_fun": 8, "methodfilt": 8, "zero": [8, 11], "desir": [8, 11], "use_condit": 8, "drawback": 8, "simultaneu": 8, "bidirect": 8, "i_transform": 8, "o_transform": 8, "unmodifi": 8, "methodproduct": 8, "product": 8, "comput": [8, 10], "methodtryproduct": 8, "tri": 8, "succeed": [8, 9], "data_const_to_dict": 9, "c": [9, 11], "pysimsimul": 9, "max_cycl": 9, "100000": 9, "add_transaction_modul": 9, "traces_fil": 9, "clk_period": 9, "1e": 9, "06": 9, "indefinit": 9, "simpletestcircuit": 9, "_t_haselabor": 9, "dut": 9, "testcasewithsimul": 9, "add_mock": 9, "sim": 9, "val": [9, 10], "methodmock": 9, "fixture_initialize_testing_env": 9, "async": 9, "random_wait": 9, "simulatorcontext": 9, "max_cycle_cnt": 9, "min_cycle_cnt": 9, "random": 9, "random_wait_geom": 9, "prob": 9, "till": 9, "probabl": 9, "reinitialize_fixtur": 9, "run_simul": 9, "tick": 9, "cycle_cnt": 9, "opnop": 9, "generate_based_on_layout": 9, "searchstrategi": 9, "recordintdict": 9, "generate_method_input": 9, "generate_nops_in_list": 9, "max_nop": 9, "generate_list": 9, "generate_process_input": 9, "elem_count": 9, "generate_shrinkable_list": 9, "trick": 9, "http": 9, "github": 9, "com": 9, "hypothesiswork": 9, "hypothesi": 9, "blob": 9, "6867da71beae0e4ed004b54b92ef7c74d0722815": 9, "src": 9, "l143": 9, "insert_nop": 9, "draw": 9, "drawfn": 9, "lst": 9, "make_logging_process": 9, "on_error": 9, "parse_logging_level": 9, "pars": 9, "represent": [9, 10, 11], "effect_process": 9, "output_process": 9, "validate_arguments_process": 9, "def_method_mock": 9, "tb_getter": 9, "handler": 9, "invok": 9, "discov": 9, "side": 9, "modif": 9, "sure": 9, "defer": 9, "sinc": 9, "eagerli": 9, "profiler_process": 9, "calltrigg": 9, "call_tri": 9, "problem": 9, "But": 9, "_call": 9, "tbio": 9, "kwdata": 9, "succe": 9, "ticktrigg": 9, "until_all_don": 9, "until_don": 9, "act": 9, "await": 9, "focu": 9, "call_do": 9, "call_init": 9, "call_result": 9, "get_call_result": 9, "testbenchcontext": 9, "get_don": 9, "get_output": 9, "sample_output": 9, "sample_outputs_don": 9, "sample_outputs_until_don": 9, "set_en": 9, "set_input": 9, "tickskei": 9, "make_tick_count_process": 9, "assigntyp": 10, "lh": 10, "rh": 10, "assignfield": 10, "lhs_strict": 10, "rhs_strict": 10, "mismatch": 10, "explicitli": 10, "castabl": 10, "item": [10, 11], "subfield": 10, "valueerror": 10, "align_down_to_power_of_two": 10, "num": 10, "power": 10, "down": 10, "align": 10, "align_to_power_of_two": 10, "average_dict_of_list": 10, "bits_from_int": 10, "lower": 10, "int_to_sign": 10, "xlen": 10, "convert": 10, "u2": 10, "sign": 10, "layout_subset": 10, "make_hash": 10, "signed_to_int": 10, "auto_debug_sign": 10, "arrai": 10, "gtkw": 10, "dependentcach": 10, "itself": 10, "posit": [10, 11], "cl": 10, "generatedlog": 10, "verilog": 10, "trigger_loc": 10, "signalhandl": 10, "fields_loc": 10, "generationinfo": 10, "variou": 10, "metrics_loc": 10, "metricinfo": 10, "metadata": 10, "metricloc": 10, "transaction_signals_loc": 10, "transactionsignalsloc": 10, "method_signals_loc": 10, "methodsignalsloc": 10, "profile_data": 10, "generate_verilog": 10, "top_nam": 10, "idgener": 10, "async_mock_def_help": 10, "tb": 10, "func": 10, "dataclass_asdict": 10, "def_help": 10, "tp": 10, "extend_layout": 10, "from_method_layout": 10, "get_caller_class_nam": 10, "get_src_loc": 10, "longest_common_prefix": 10, "seq": 10, "make_layout": 10, "method_def_help": 10, "mock_def_help": 10, "silence_mustus": 10, "binari": 11, "low": 11, "invalid": 11, "graydecod": 11, "grai": 11, "grayencod": 11, "prioritydecod": 11, "priorityencod": 11, "signific": 11, "abstractcomponentinterfac": 11, "abstractinterfac": 11, "abstractsignatur": 11, "flip": 11, "signatur": 11, "cin": 11, "_componentsign": 11, "cout": 11, "componentinterfac": 11, "syntact": 11, "wire": 11, "separetli": 11, "componentsign": 11, "later": 11, "exampleinterfac": 11, "data_width": 11, "subinterfac": 11, "examp": 11, "le": 11, "bu": 11, "super": 11, "flippedcomponentinterfac": 11, "member": 11, "_t_componentinterfac": 11, "moduleconnector": 11, "anonym": 11, "multipriorityencod": 11, "extens": 11, "word": 11, "multi": 11, "input_width": 11, "outputs_count": 11, "indici": 11, "ascend": 11, "begin": 11, "build_tre": 11, "in_sig": 11, "start_idx": 11, "prio_encod": 11, "cnt": 11, "one_hot_sing": 11, "idx": 11, "prio": 11, "been": 11, "create_simpl": 11, "hardcod": 11, "onehotswitch": 11, "match": 11, "style": 11, "benefit": 11, "sig": 11, "onehotcas": 11, "0b01": 11, "0b10": 11, "onehotswitchdynam": 11, "signifi": 11, "ringmultipriorityencod": 11, "flexibl": 11, "circular": 11, "inclus": 11, "roundrobin": 11, "greater": 11, "restart": 11, "enableinsert": 11, "deassert": 11, "stableselectingnetwork": 11, "network": 11, "group": 11, "consecut": 11, "preserv": 11, "divid": 11, "conquer": 11, "algorithm": 11, "properli": 11, "v1": 11, "b": 11, "v2": 11, "now": 11, "shift": 11, "merg": 11, "v": 11, "thu": 11, "log_2": 11, "const_of": 11, "count_leading_zero": 11, "count_trailing_zero": 11, "cyclic_mask": 11, "wide": 11, "flatten_sign": 11, "flatten": 11, "mod_incr": 11, "mod": 11, "popcount": 11, "shape_of": 11, "multireadmemori": 11, "basemultiportmemori": 11, "multiportilvtmemori": 11, "multiport": 11, "live": 11, "tabl": 11, "built": 11, "ilvt": 11, "xor": 11, "bank": 11, "logarithm": 11, "multiportxormemori": 11, "correct": 11, "generic_shift_left": 11, "value1": 11, "value2": 11, "offset": 11, "fill": 11, "space": 11, "shift_left": 11, "rotate_left": 11, "generic_shift_right": 11, "shift_right": 11, "rotate_right": 11, "generic_shift_vec_left": 11, "data1": 11, "_t_valuecast": 11, "data2": 11, "shift_vec_left": 11, "rotate_vec_left": 11, "generic_shift_vec_right": 11, "shift_vec_right": 11, "rotate_vec_right": 11, "rotat": 11, "placehold": 11}, "objects": {"": [[5, 0, 0, "-", "transactron"]], "transactron": [[6, 0, 0, "-", "cmd"], [7, 0, 0, "-", "core"], [5, 0, 0, "-", "graph"], [8, 0, 0, "-", "lib"], [5, 0, 0, "-", "profiler"], [9, 0, 0, "-", "testing"], [5, 0, 0, "-", "tracing"], [10, 0, 0, "-", "utils"]], "transactron.cmd": [[6, 0, 0, "-", "tprof"]], "transactron.cmd.tprof": [[6, 1, 1, "", "filter_nodes"], [6, 1, 1, "", "main"], [6, 1, 1, "", "process_stat_tree"], [6, 1, 1, "", "sort_node"]], "transactron.core": [[7, 0, 0, "-", "body"], [7, 0, 0, "-", "keys"], [7, 0, 0, "-", "manager"], [7, 0, 0, "-", "method"], [7, 0, 0, "-", "schedulers"], [7, 0, 0, "-", "sugar"], [7, 0, 0, "-", "tmodule"], [7, 0, 0, "-", "transaction"], [7, 0, 0, "-", "transaction_base"]], "transactron.core.body": [[7, 2, 1, "", "AdapterBodyParams"], [7, 2, 1, "", "Body"], [7, 2, 1, "", "BodyParams"]], "transactron.core.body.AdapterBodyParams": [[7, 3, 1, "", "combiner"], [7, 3, 1, "", "nonexclusive"], [7, 3, 1, "", "single_caller"]], "transactron.core.body.Body": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "context"], [7, 3, 1, "", "ctrl_path"], [7, 3, 1, "", "def_counter"], [7, 3, 1, "", "def_order"], [7, 4, 1, "", "get"], [7, 3, 1, "", "method_calls"], [7, 3, 1, "", "method_uses"], [7, 4, 1, "", "peek"], [7, 3, 1, "", "stack"]], "transactron.core.body.BodyParams": [[7, 3, 1, "", "combiner"], [7, 3, 1, "", "nonexclusive"], [7, 3, 1, "", "single_caller"], [7, 3, 1, "", "validate_arguments"]], "transactron.core.keys": [[7, 2, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[7, 4, 1, "", "__init__"]], "transactron.core.manager": [[7, 2, 1, "", "TransactionComponent"], [7, 2, 1, "", "TransactionManager"], [7, 2, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionComponent": [[7, 4, 1, "", "__init__"]], "transactron.core.manager.TransactionManager": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "debug_signals"], [7, 4, 1, "", "print_info"], [7, 4, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "context"]], "transactron.core.method": [[7, 2, 1, "", "Method"], [7, 2, 1, "", "MethodDir"], [7, 2, 1, "", "Methods"]], "transactron.core.method.Method": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "body"], [7, 4, 1, "", "debug_signals"], [7, 5, 1, "", "layout_in"], [7, 5, 1, "", "layout_out"], [7, 4, 1, "", "like"], [7, 4, 1, "", "proxy"]], "transactron.core.method.MethodDir": [[7, 3, 1, "", "PROVIDED"], [7, 3, 1, "", "REQUIRED"]], "transactron.core.method.Methods": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "debug_signals"], [7, 5, 1, "", "layout_in"], [7, 5, 1, "", "layout_out"]], "transactron.core.schedulers": [[7, 1, 1, "", "eager_deterministic_cc_scheduler"], [7, 1, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[7, 1, 1, "", "def_method"], [7, 1, 1, "", "def_methods"]], "transactron.core.tmodule": [[7, 2, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[7, 4, 1, "", "AvoidedIf"], [7, 4, 1, "", "Case"], [7, 4, 1, "", "Default"], [7, 4, 1, "", "Elif"], [7, 4, 1, "", "Else"], [7, 4, 1, "", "FSM"], [7, 4, 1, "", "If"], [7, 4, 1, "", "State"], [7, 4, 1, "", "Switch"], [7, 4, 1, "", "__init__"], [7, 5, 1, "", "ctrl_path"], [7, 5, 1, "", "next"]], "transactron.core.transaction": [[7, 2, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "body"], [7, 4, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[7, 2, 1, "", "Priority"], [7, 2, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[7, 3, 1, "", "LEFT"], [7, 3, 1, "", "RIGHT"], [7, 3, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "add_conflict"], [7, 3, 1, "", "independent_list"], [7, 3, 1, "", "relations"], [7, 4, 1, "", "schedule_before"], [7, 4, 1, "", "simultaneous"], [7, 4, 1, "", "simultaneous_alternatives"], [7, 3, 1, "", "simultaneous_list"], [7, 3, 1, "", "src_loc"]], "transactron.graph": [[5, 2, 1, "", "Direction"], [5, 2, 1, "", "Owned"], [5, 2, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[5, 3, 1, "", "IN"], [5, 3, 1, "", "INOUT"], [5, 3, 1, "", "NONE"], [5, 3, 1, "", "OUT"], [5, 4, 1, "", "__new__"]], "transactron.graph.Owned": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "name"], [5, 5, 1, "", "owned_name"], [5, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "dump"], [5, 4, 1, "", "dump_dot"], [5, 4, 1, "", "dump_elk"], [5, 4, 1, "", "dump_mermaid"], [5, 4, 1, "", "get_hier_name"], [5, 4, 1, "", "get_name"], [5, 4, 1, "", "insert_edge"], [5, 4, 1, "", "insert_node"], [5, 3, 1, "", "mermaid_direction"], [5, 4, 1, "", "prune"], [5, 4, 1, "", "remember"], [5, 4, 1, "", "remember_field"]], "transactron.lib": [[8, 0, 0, "-", "adapters"], [8, 0, 0, "-", "allocators"], [8, 0, 0, "-", "buttons"], [8, 0, 0, "-", "connectors"], [8, 0, 0, "-", "dependencies"], [8, 0, 0, "-", "fifo"], [8, 0, 0, "-", "logging"], [8, 0, 0, "-", "metrics"], [8, 0, 0, "-", "reqres"], [8, 0, 0, "-", "simultaneous"], [8, 0, 0, "-", "storage"], [8, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[8, 2, 1, "", "Adapter"], [8, 2, 1, "", "AdapterBase"], [8, 2, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "create"], [8, 4, 1, "", "set"], [8, 4, 1, "", "update_args"]], "transactron.lib.adapters.AdapterBase": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "data_in"], [8, 3, 1, "", "data_out"], [8, 4, 1, "", "debug_signals"], [8, 3, 1, "", "done"], [8, 3, 1, "", "en"]], "transactron.lib.adapters.AdapterTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.allocators": [[8, 2, 1, "", "PriorityEncoderAllocator"]], "transactron.lib.allocators.PriorityEncoderAllocator": [[8, 4, 1, "", "__init__"]], "transactron.lib.buttons": [[8, 2, 1, "", "ClickIn"], [8, 2, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[8, 4, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors": [[8, 2, 1, "", "Connect"], [8, 2, 1, "", "ConnectTrans"], [8, 2, 1, "", "FIFO"], [8, 2, 1, "", "Forwarder"], [8, 2, 1, "", "ManyToOneConnectTrans"], [8, 2, 1, "", "Pipe"]], "transactron.lib.connectors.Connect": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.Pipe": [[8, 4, 1, "", "__init__"]], "transactron.lib.dependencies": [[8, 2, 1, "", "DependencyKey"], [8, 2, 1, "", "DependencyManager"], [8, 2, 1, "", "ListKey"], [8, 2, 1, "", "SimpleKey"], [8, 2, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[8, 3, 1, "", "cache"], [8, 4, 1, "", "combine"], [8, 3, 1, "", "empty_valid"], [8, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add_dependency"], [8, 4, 1, "", "get_dependency"], [8, 4, 1, "", "get_optional_dependency"]], "transactron.lib.dependencies.ListKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[8, 2, 1, "", "BasicFifo"], [8, 2, 1, "", "Semaphore"], [8, 2, 1, "", "WideFifo"]], "transactron.lib.fifo.BasicFifo": [[8, 4, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[8, 4, 1, "", "__init__"]], "transactron.lib.fifo.WideFifo": [[8, 4, 1, "", "__init__"]], "transactron.lib.logging": [[8, 2, 1, "", "HardwareLogger"], [8, 2, 1, "", "LogKey"], [8, 3, 1, "", "LogLevel"], [8, 2, 1, "", "LogRecord"], [8, 2, 1, "", "LogRecordInfo"], [8, 1, 1, "", "get_log_records"], [8, 1, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "assertion"], [8, 4, 1, "", "debug"], [8, 4, 1, "", "error"], [8, 4, 1, "", "info"], [8, 4, 1, "", "log"], [8, 4, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[8, 4, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "fields"], [8, 3, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "format"], [8, 3, 1, "", "format_str"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "level"], [8, 3, 1, "", "location"], [8, 3, 1, "", "logger_name"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"]], "transactron.lib.metrics": [[8, 2, 1, "", "FIFOLatencyMeasurer"], [8, 2, 1, "", "HardwareMetricsManager"], [8, 2, 1, "", "HwCounter"], [8, 2, 1, "", "HwExpHistogram"], [8, 2, 1, "", "HwMetric"], [8, 2, 1, "", "HwMetricsEnabledKey"], [8, 2, 1, "", "MetricModel"], [8, 2, 1, "", "MetricRegisterModel"], [8, 2, 1, "", "TaggedCounter"], [8, 2, 1, "", "TaggedLatencyMeasurer"]], "transactron.lib.metrics.FIFOLatencyMeasurer": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "metrics_enabled"], [8, 4, 1, "", "start"], [8, 4, 1, "", "stop"]], "transactron.lib.metrics.HardwareMetricsManager": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "debug_signals"], [8, 4, 1, "", "get_metrics"], [8, 4, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add_registers"], [8, 4, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "default_value"], [8, 3, 1, "", "empty_valid"], [8, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.MetricModel": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "description"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "fully_qualified_name"], [8, 3, 1, "", "regs"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "description"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "name"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"], [8, 3, 1, "", "width"]], "transactron.lib.metrics.TaggedCounter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "incr"]], "transactron.lib.metrics.TaggedLatencyMeasurer": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "metrics_enabled"], [8, 4, 1, "", "start"], [8, 4, 1, "", "stop"]], "transactron.lib.reqres": [[8, 2, 1, "", "ArgumentsToResultsZipper"], [8, 2, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[8, 4, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[8, 4, 1, "", "__init__"]], "transactron.lib.simultaneous": [[8, 1, 1, "", "condition"]], "transactron.lib.storage": [[8, 2, 1, "", "AsyncMemoryBank"], [8, 2, 1, "", "ContentAddressableMemory"], [8, 2, 1, "", "MemoryBank"]], "transactron.lib.storage.AsyncMemoryBank": [[8, 4, 1, "", "__init__"]], "transactron.lib.storage.ContentAddressableMemory": [[8, 4, 1, "", "__init__"]], "transactron.lib.storage.MemoryBank": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers": [[8, 2, 1, "", "CatTrans"], [8, 2, 1, "", "Collector"], [8, 2, 1, "", "ConnectAndMapTrans"], [8, 2, 1, "", "MethodFilter"], [8, 2, 1, "", "MethodMap"], [8, 2, 1, "", "MethodProduct"], [8, 2, 1, "", "MethodTryProduct"], [8, 2, 1, "", "Transformer"], [8, 2, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[8, 3, 1, "", "method"], [8, 4, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "method"]], "transactron.profiler": [[5, 2, 1, "", "MethodSamples"], [5, 2, 1, "", "Profile"], [5, 2, 1, "", "ProfileData"], [5, 2, 1, "", "ProfileInfo"], [5, 2, 1, "", "ProfileSamples"], [5, 2, 1, "", "RunStat"], [5, 2, 1, "", "RunStatNode"], [5, 2, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "run"]], "transactron.profiler.Profile": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "analyze_methods"], [5, 4, 1, "", "analyze_transactions"], [5, 3, 1, "", "cycles"], [5, 4, 1, "", "decode"], [5, 4, 1, "", "encode"], [5, 4, 1, "", "from_dict"], [5, 4, 1, "", "from_json"], [5, 4, 1, "", "schema"], [5, 4, 1, "", "to_dict"], [5, 4, 1, "", "to_json"], [5, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "make"], [5, 3, 1, "", "method_parents"], [5, 3, 1, "", "transaction_conflicts"], [5, 3, 1, "", "transactions_and_methods"], [5, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "from_dict"], [5, 4, 1, "", "from_json"], [5, 3, 1, "", "is_transaction"], [5, 3, 1, "", "name"], [5, 4, 1, "", "schema"], [5, 3, 1, "", "src_loc"], [5, 4, 1, "", "to_dict"], [5, 4, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "methods"], [5, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "locked"], [5, 4, 1, "", "make"], [5, 3, 1, "", "name"], [5, 3, 1, "", "run"], [5, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "callers"], [5, 4, 1, "", "make"], [5, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "grant"], [5, 3, 1, "", "request"], [5, 3, 1, "", "runnable"]], "transactron.testing": [[9, 0, 0, "-", "functions"], [9, 0, 0, "-", "infrastructure"], [9, 0, 0, "-", "input_generation"], [9, 0, 0, "-", "logging"], [9, 0, 0, "-", "method_mock"], [9, 0, 0, "-", "profiler"], [9, 0, 0, "-", "testbenchio"], [9, 0, 0, "-", "tick_count"]], "transactron.testing.functions": [[9, 1, 1, "", "data_const_to_dict"]], "transactron.testing.infrastructure": [[9, 2, 1, "", "PysimSimulator"], [9, 2, 1, "", "SimpleTestCircuit"], [9, 2, 1, "", "TestCaseWithSimulator"]], "transactron.testing.infrastructure.PysimSimulator": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "debug_signals"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[9, 4, 1, "", "add_mock"], [9, 3, 1, "", "dependency_manager"], [9, 4, 1, "", "fixture_initialize_testing_env"], [9, 4, 1, "", "random_wait"], [9, 4, 1, "", "random_wait_geom"], [9, 4, 1, "", "reinitialize_fixtures"], [9, 4, 1, "", "run_simulation"], [9, 4, 1, "", "tick"]], "transactron.testing.input_generation": [[9, 2, 1, "", "OpNOP"], [9, 1, 1, "", "generate_based_on_layout"], [9, 1, 1, "", "generate_method_input"], [9, 1, 1, "", "generate_nops_in_list"], [9, 1, 1, "", "generate_process_input"], [9, 1, 1, "", "generate_shrinkable_list"], [9, 1, 1, "", "insert_nops"]], "transactron.testing.logging": [[9, 1, 1, "", "make_logging_process"], [9, 1, 1, "", "parse_logging_level"]], "transactron.testing.method_mock": [[9, 2, 1, "", "MethodMock"], [9, 1, 1, "", "def_method_mock"]], "transactron.testing.method_mock.MethodMock": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "effect"], [9, 4, 1, "", "effect_process"], [9, 4, 1, "", "output_process"], [9, 4, 1, "", "validate_arguments_process"]], "transactron.testing.profiler": [[9, 1, 1, "", "profiler_process"]], "transactron.testing.testbenchio": [[9, 2, 1, "", "CallTrigger"], [9, 2, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.CallTrigger": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "call"], [9, 4, 1, "", "sample"], [9, 4, 1, "", "until_all_done"], [9, 4, 1, "", "until_done"]], "transactron.testing.testbenchio.TestbenchIO": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "call"], [9, 4, 1, "", "call_do"], [9, 4, 1, "", "call_init"], [9, 4, 1, "", "call_result"], [9, 4, 1, "", "call_try"], [9, 4, 1, "", "disable"], [9, 5, 1, "", "done"], [9, 4, 1, "", "enable"], [9, 4, 1, "", "get_call_result"], [9, 4, 1, "", "get_done"], [9, 4, 1, "", "get_outputs"], [9, 5, 1, "", "outputs"], [9, 4, 1, "", "sample_outputs"], [9, 4, 1, "", "sample_outputs_done"], [9, 4, 1, "", "sample_outputs_until_done"], [9, 4, 1, "", "set_enable"], [9, 4, 1, "", "set_inputs"]], "transactron.testing.tick_count": [[9, 2, 1, "", "TicksKey"], [9, 1, 1, "", "make_tick_count_process"]], "transactron.testing.tick_count.TicksKey": [[9, 4, 1, "", "__init__"]], "transactron.tracing": [[5, 2, 1, "", "TracingEnabler"], [5, 2, 1, "", "TracingFragment"], [5, 2, 1, "", "TracingFragmentTransformer"], [5, 2, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[5, 4, 1, "", "get"], [5, 4, 1, "", "prepare"], [5, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[5, 4, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[5, 4, 1, "", "get"]], "transactron.utils": [[11, 0, 0, "-", "amaranth_ext"], [10, 0, 0, "-", "assign"], [10, 0, 0, "-", "data_repr"], [10, 0, 0, "-", "debug_signals"], [10, 0, 0, "-", "depcache"], [10, 0, 0, "-", "dependencies"], [10, 0, 0, "-", "gen"], [10, 0, 0, "-", "idgen"], [10, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[11, 0, 0, "-", "coding"], [11, 0, 0, "-", "component_interface"], [11, 0, 0, "-", "elaboratables"], [11, 0, 0, "-", "functions"], [11, 0, 0, "-", "memory"], [11, 0, 0, "-", "shifter"]], "transactron.utils.amaranth_ext.coding": [[11, 2, 1, "", "Decoder"], [11, 2, 1, "", "Encoder"], [11, 2, 1, "", "GrayDecoder"], [11, 2, 1, "", "GrayEncoder"], [11, 2, 1, "", "PriorityDecoder"], [11, 2, 1, "", "PriorityEncoder"]], "transactron.utils.amaranth_ext.coding.Decoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.Encoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayDecoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayEncoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.PriorityEncoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface": [[11, 2, 1, "", "AbstractComponentInterface"], [11, 2, 1, "", "CIn"], [11, 2, 1, "", "COut"], [11, 2, 1, "", "ComponentInterface"], [11, 2, 1, "", "FlippedComponentInterface"]], "transactron.utils.amaranth_ext.component_interface.AbstractComponentInterface": [[11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.component_interface.CIn": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface.COut": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface.ComponentInterface": [[11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.component_interface.FlippedComponentInterface": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.elaboratables": [[11, 2, 1, "", "ModuleConnector"], [11, 2, 1, "", "MultiPriorityEncoder"], [11, 1, 1, "", "OneHotSwitch"], [11, 1, 1, "", "OneHotSwitchDynamic"], [11, 2, 1, "", "RingMultiPriorityEncoder"], [11, 2, 1, "", "RoundRobin"], [11, 2, 1, "", "Scheduler"], [11, 2, 1, "", "StableSelectingNetwork"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.MultiPriorityEncoder": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "build_tree"], [11, 4, 1, "", "create"], [11, 4, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RingMultiPriorityEncoder": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "create"], [11, 4, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.StableSelectingNetwork": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[11, 1, 1, "", "const_of"], [11, 1, 1, "", "count_leading_zeros"], [11, 1, 1, "", "count_trailing_zeros"], [11, 1, 1, "", "cyclic_mask"], [11, 1, 1, "", "flatten_signals"], [11, 1, 1, "", "mod_incr"], [11, 1, 1, "", "popcount"], [11, 1, 1, "", "shape_of"]], "transactron.utils.amaranth_ext.memory": [[11, 2, 1, "", "MultiReadMemory"], [11, 2, 1, "", "MultiportILVTMemory"], [11, 2, 1, "", "MultiportXORMemory"]], "transactron.utils.amaranth_ext.memory.MultiReadMemory": [[11, 4, 1, "", "write_port"]], "transactron.utils.amaranth_ext.memory.MultiportXORMemory": [[11, 4, 1, "", "write_port"]], "transactron.utils.amaranth_ext.shifter": [[11, 1, 1, "", "generic_shift_left"], [11, 1, 1, "", "generic_shift_right"], [11, 1, 1, "", "generic_shift_vec_left"], [11, 1, 1, "", "generic_shift_vec_right"], [11, 1, 1, "", "rotate_left"], [11, 1, 1, "", "rotate_right"], [11, 1, 1, "", "rotate_vec_left"], [11, 1, 1, "", "rotate_vec_right"], [11, 1, 1, "", "shift_left"], [11, 1, 1, "", "shift_right"], [11, 1, 1, "", "shift_vec_left"], [11, 1, 1, "", "shift_vec_right"]], "transactron.utils.assign": [[10, 2, 1, "", "AssignType"], [10, 1, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[10, 3, 1, "", "ALL"], [10, 3, 1, "", "COMMON"], [10, 3, 1, "", "LHS"], [10, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[10, 1, 1, "", "align_down_to_power_of_two"], [10, 1, 1, "", "align_to_power_of_two"], [10, 1, 1, "", "average_dict_of_lists"], [10, 1, 1, "", "bits_from_int"], [10, 1, 1, "", "data_layout"], [10, 1, 1, "", "int_to_signed"], [10, 1, 1, "", "layout_subset"], [10, 1, 1, "", "make_hashable"], [10, 1, 1, "", "neg"], [10, 1, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[10, 1, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[10, 2, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "get"]], "transactron.utils.dependencies": [[10, 2, 1, "", "DependencyContext"], [10, 2, 1, "", "DependencyKey"], [10, 2, 1, "", "DependencyManager"], [10, 2, 1, "", "ListKey"], [10, 2, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "get"], [10, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[10, 3, 1, "", "cache"], [10, 4, 1, "", "combine"], [10, 3, 1, "", "empty_valid"], [10, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "add_dependency"], [10, 4, 1, "", "get_dependency"], [10, 4, 1, "", "get_optional_dependency"]], "transactron.utils.dependencies.ListKey": [[10, 4, 1, "", "combine"], [10, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[10, 4, 1, "", "combine"], [10, 3, 1, "", "default_value"]], "transactron.utils.gen": [[10, 2, 1, "", "GeneratedLog"], [10, 2, 1, "", "GenerationInfo"], [10, 2, 1, "", "MetricLocation"], [10, 1, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "fields_location"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"], [10, 3, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "decode"], [10, 4, 1, "", "encode"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 3, 1, "", "logs"], [10, 3, 1, "", "method_signals_location"], [10, 3, 1, "", "metrics_location"], [10, 3, 1, "", "profile_data"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"], [10, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 3, 1, "", "regs"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"]], "transactron.utils.idgen": [[10, 2, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[10, 4, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[10, 1, 1, "", "async_mock_def_helper"], [10, 1, 1, "", "dataclass_asdict"], [10, 1, 1, "", "def_helper"], [10, 1, 1, "", "extend_layout"], [10, 1, 1, "", "from_method_layout"], [10, 1, 1, "", "get_caller_class_name"], [10, 1, 1, "", "get_src_loc"], [10, 1, 1, "", "longest_common_prefix"], [10, 1, 1, "", "make_layout"], [10, 1, 1, "", "method_def_helper"], [10, 1, 1, "", "mock_def_helper"], [10, 1, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "transactron": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "develop": 1, "environ": 1, "set": 1, "up": 1, "run": 1, "test": [1, 9], "us": 1, "script": 1, "lint": 1, "sh": 1, "build_doc": 1, "tprof": [1, 6], "py": 1, "document": 4, "introduct": 4, "basic": 4, "usag": 4, "implement": 4, "transact": [4, 7], "method": [4, 7], "argument": 4, "pass": 4, "convent": 4, "definit": 4, "return": 4, "valu": 4, "readi": 4, "signal": 4, "The": 4, "librari": 4, "advanc": 4, "concept": 4, "special": 4, "combin": 4, "domain": 4, "schedul": [4, 7], "order": 4, "conflict": 4, "nest": 4, "packag": [5, 6, 7, 8, 9, 10, 11], "subpackag": [5, 10], "submodul": [5, 6, 7, 8, 9, 10, 11], "graph": 5, "modul": [5, 6, 7, 8, 9, 10, 11], "profil": [5, 9], "trace": 5, "content": [5, 6, 7, 8, 9, 10, 11], "cmd": 6, "core": 7, "bodi": 7, "kei": 7, "manag": 7, "sugar": 7, "tmodul": 7, "transaction_bas": 7, "lib": 8, "adapt": 8, "alloc": 8, "button": 8, "connector": 8, "depend": [8, 10], "fifo": 8, "log": [8, 9], "metric": 8, "reqr": 8, "simultan": 8, "storag": 8, "transform": 8, "function": [9, 11], "infrastructur": 9, "input_gener": 9, "method_mock": 9, "testbenchio": 9, "tick_count": 9, "util": [10, 11], "assign": 10, "data_repr": 10, "debug_sign": 10, "depcach": 10, "gen": 10, "idgen": 10, "transactron_help": 10, "amaranth_ext": 11, "code": 11, "component_interfac": 11, "elaborat": 11, "memori": 11, "shifter": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "development-environment", "index", "modules", "transactions", "transactron", "transactron.cmd", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "development-environment.md", "index.md", "modules.rst", "transactions.md", "transactron.rst", "transactron.cmd.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "Development environment", "Transactron", "transactron", "Documentation for Transactron", "transactron package", "transactron.cmd package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 1, 2, 3], "subpackag": [0, 3], "cmd": [0, 3, 5], "submodul": [0, 3], "tprof": [0, 2, 3, 5], "modul": [0, 1, 3, 4], "content": [0, 3], "core": [0, 3, 5, 8, 9, 10], "bodi": [0, 3, 4, 5, 8, 9], "kei": [0, 3, 5, 6, 8, 10], "manag": [0, 1, 3, 4, 5, 8, 10], "method": [0, 1, 2, 3, 5, 8, 9, 10, 11], "schedul": [0, 2, 3, 5, 8, 11], "sugar": [0, 3, 5, 11], "tmodul": [0, 3, 4, 5, 8], "transact": [0, 1, 2, 3, 5, 8, 11], "transaction_bas": [0, 3, 5], "lib": [0, 3, 5, 7, 9, 10, 11], "adapt": [0, 3, 4, 5, 9], "alloc": [0, 3, 5], "button": [0, 3, 5], "connector": [0, 3, 5], "depend": [0, 3, 4, 5, 11], "fifo": [0, 3, 4, 5, 7], "log": [0, 1, 3, 5, 10], "metric": [0, 3, 5, 10], "reqr": [0, 3, 5], "simultan": [0, 3, 4, 5, 7], "storag": [0, 3, 5], "transform": [0, 3, 5], "test": [0, 2, 3, 5, 7, 8, 10, 11], "function": [0, 3, 4, 5, 7, 8, 10], "infrastructur": [0, 3, 5], "input_gener": [0, 3, 5], "method_mock": [0, 3, 5], "profil": [0, 1, 3, 6], "testbenchio": [0, 3, 5], "tick_count": [0, 3, 5], "util": [0, 3, 5, 8], "assign": [0, 3, 4, 5, 7], "data_repr": [0, 3, 5], "debug_sign": [0, 3, 5, 7, 8, 9], "depcach": [0, 3, 5], "gen": [0, 3, 5], "idgen": [0, 3, 5], "transactron_help": [0, 3, 5], "graph": [0, 1, 3, 7, 8], "trace": [0, 1, 3], "In": [1, 4, 5, 7, 8, 9, 10, 11], "order": [1, 2, 7, 8, 11], "prepar": [1, 5], "pleas": [1, 4], "follow": [1, 4, 8, 9, 10], "step": [1, 4], "below": [1, 8], "instal": 1, "python": [1, 4, 7, 8, 9, 10], "3": [1, 5, 7, 10], "11": 1, "interpret": [1, 8, 10], "pip": 1, "option": [1, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [1, 4, 7, 8, 9, 10, 11], "virtual": 1, "python3": 1, "m": [1, 4, 7, 8, 11], "venv": 1, "project": [1, 4, 7], "directori": 1, "activ": [1, 7, 8, 9, 11], "gener": [1, 5, 7, 8, 9, 10, 11], "bin": 1, "all": [1, 4, 5, 7, 8, 9, 10, 11], "requir": [1, 4, 5, 7], "librari": [1, 2, 8], "pip3": 1, "dev": 1, "precommit": 1, "hook": [1, 5, 8], "pre": 1, "commit": 1, "thi": [1, 4, 5, 7, 8, 9, 10, 11], "automat": [1, 9, 10, 11], "linter": 1, "befor": [1, 4, 7, 8], "ar": [1, 4, 5, 7, 8, 9, 10, 11], "pytest": 1, "thing": [1, 4, 8, 10], "know": 1, "To": [1, 8, 10], "speed": 1, "multipl": [1, 4, 7, 8, 9, 10, 11], "worker": 1, "thread": 1, "can": [1, 4, 5, 7, 8, 9, 10, 11], "n": [1, 7, 11], "auto": 1, "onli": [1, 4, 5, 7, 8, 9, 10, 11], "some": [1, 4, 7, 8], "k": [1, 8], "express": [1, 4, 8], "format": [1, 4, 5, 7, 8, 10, 11], "i": [1, 4, 5, 7, 8, 9, 10, 11], "describ": [1, 5, 7, 8, 9], "doc": 1, "abl": [1, 8], "read": [1, 4, 7, 8, 10, 11], "standard": [1, 8, 9, 11], "output": [1, 7, 8, 9, 11], "even": [1, 4, 7, 8], "success": [1, 9], "": [1, 4, 5, 7, 8, 10, 11], "custom": [1, 8, 11], "transactron": 1, "file": [1, 10], "readabl": [1, 8], "gtkwave": [1, 10], "The": [1, 2, 5, 7, 8, 9, 10, 11], "save": [1, 5, 8, 10], "__traces__": 1, "execut": [1, 4, 5, 7, 8, 9], "name": [1, 4, 5, 7, 8, 9, 10, 11], "__profiles__": 1, "filter": [1, 8], "allow": [1, 4, 7, 8, 9, 11], "contain": [1, 4, 7, 8, 10, 11], "number": [1, 5, 7, 8, 9, 10, 11], "which": [1, 4, 5, 7, 8, 9, 10, 11], "ci": 1, "also": [1, 4, 8, 9], "intend": [1, 7, 11], "local": 1, "thei": [1, 4, 7, 8], "check": [1, 7, 10], "code": [1, 4, 5, 8, 10], "type": [1, 7, 8, 9, 10, 11], "It": [1, 4, 5, 7, 8, 9, 10, 11], "should": [1, 4, 7, 8, 9, 10, 11], "subcommand": 1, "filenam": 1, "main": [1, 6], "avail": [1, 8], "reformat": 1, "black": 1, "check_format": 1, "verifi": 1, "flake8": 1, "check_typ": 1, "pyright": 1, "same": [1, 4, 7, 8, 9, 10, 11], "when": [1, 4, 7, 8, 9, 10, 11], "confront": 1, "would": [1, 4, 8, 10], "messag": [1, 8], "from": [1, 4, 5, 7, 8, 9, 10, 11], "you": [1, 7, 8, 11], "mai": [1, 8, 10], "diff": 1, "wai": [1, 4, 7, 8, 10, 11], "displai": 1, "chang": [1, 4, 8, 9, 10, 11], "appli": [1, 5, 7, 9, 11], "chose": 1, "help": [1, 8], "locat": [1, 5, 7, 8, 10], "issu": [1, 4, 8], "document": [1, 2], "sphinx": 1, "html": 1, "build": [1, 8], "process": [1, 8, 9], "present": [1, 4, 8, 10], "them": [1, 4, 7, 8, 10, 11], "run_test": 1, "__profile__": 1, "profile_fil": 1, "json": [1, 10], "inform": [1, 5, 8, 10], "about": [1, 5, 8, 10], "default": [1, 4, 5, 7, 8, 10, 11], "For": [1, 4, 5, 7, 8, 10, 11], "one": [1, 4, 7, 8, 9, 10, 11], "mode": 1, "column": 1, "have": [1, 4, 7, 8, 9, 10, 11], "mean": [1, 7, 8], "question": [1, 4], "togeth": [1, 4, 7], "differenti": 1, "between": [1, 4, 7, 8, 9, 10, 11], "ident": [1, 8, 11], "differ": [1, 7, 8, 9, 10, 11], "sourc": [1, 5, 7, 8], "line": 1, "where": [1, 4, 7, 8, 9, 10], "wa": [1, 4, 5, 7, 8, 9, 10], "declar": [1, 4, 8, 9], "further": [1, 8], "disambigu": 1, "lock": [1, 4, 5, 8], "show": 1, "cycl": [1, 4, 5, 7, 8, 9, 11], "caller": [1, 4, 5, 7, 8], "call": [1, 4, 5, 7, 8, 9, 10, 11], "fals": [1, 4, 5, 8, 10, 11], "condit": [1, 4, 5, 7, 8], "could": [1, 4, 8, 9], "forc": 1, "wait": [1, 7, 9], "anoth": [1, 4, 7, 8, 9], "conflict": [1, 2, 5, 7], "given": [1, 4, 5, 7, 8, 9, 10, 11], "produc": [1, 7], "each": [1, 4, 5, 7, 8, 9, 10, 11], "tree": [1, 5, 8], "counter": [1, 8], "root": [1, 5], "count": [1, 7, 8, 11], "an": [1, 4, 5, 7, 8, 9, 10, 11], "invert": 1, "leav": 1, "children": 1, "node": [1, 6], "field": [1, 4, 5, 7, 8, 10], "how": [1, 7, 8], "mani": [1, 4, 5, 7, 8, 9, 10], "respons": [1, 7, 8], "other": [1, 4, 5, 7, 8, 11], "sort": [1, 11], "select": [1, 8, 11], "row": 1, "regular": 1, "loc": 1, "develop": [2, 8], "environ": 2, "set": [2, 7, 8, 9, 10, 11], "up": [2, 8, 10], "run": [2, 4, 5, 7, 8, 9, 11], "us": [2, 4, 7, 8, 9, 10, 11], "script": 2, "lint": 2, "sh": 2, "build_doc": 2, "py": [2, 9], "introduct": 2, "basic": [2, 8], "usag": 2, "implement": [2, 8, 10, 11], "argument": [2, 7, 8, 9, 10, 11], "pass": [2, 7, 8, 9, 10], "convent": 2, "definit": [2, 7, 9], "return": [2, 7, 8, 10, 11], "valu": [2, 5, 7, 8, 9, 10, 11], "readi": [2, 5, 7, 8, 11], "signal": [2, 5, 7, 8, 9, 10, 11], "advanc": [2, 9], "concept": 2, "special": [2, 8], "combin": [2, 7, 8, 9, 10], "domain": [2, 7, 11], "nest": [2, 8, 11], "api": 2, "amaranth": [4, 5, 7, 8, 9, 10, 11], "connect": [4, 7, 8, 11], "complex": [4, 8, 11], "inspir": 4, "bluespec": 4, "program": 4, "languag": 4, "see": [4, 7, 8, 11], "wiki": 4, "compil": 4, "idea": 4, "interfac": [4, 7, 8, 11], "hardwar": [4, 8], "A": [4, 5, 7, 8, 9, 10, 11], "state": [4, 7, 8, 9], "oper": [4, 7, 8, 11], "perform": [4, 7, 8, 9, 10, 11], "singl": [4, 7, 8, 9, 10, 11], "clock": [4, 5, 7, 8, 9], "atom": 4, "either": [4, 7, 8, 9, 10, 11], "its": [4, 7, 8, 9, 10, 11], "entrieti": 4, "doe": [4, 11], "defin": [4, 7, 8, 9, 10, 11], "via": [4, 7, 8], "directli": [4, 7, 11], "link": 4, "indirectli": [4, 7], "If": [4, 5, 7, 8, 9, 10, 11], "try": 4, "access": [4, 8, 9, 10], "coordin": 4, "system": [4, 10], "avoid": [4, 11], "commun": 4, "both": [4, 7, 8, 10, 11], "direct": [4, 5, 7, 8, 11], "back": 4, "structur": [4, 5, 7, 8, 10], "record": [4, 7, 8, 10, 11], "simplest": 4, "part": [4, 7, 8], "elaborat": [4, 5, 7, 8, 9, 10], "block": [4, 7, 8, 11], "class": [4, 5, 7, 8, 9, 10, 11], "myth": 4, "def": [4, 7, 11], "elabor": 4, "self": [4, 9, 11], "platform": [4, 5], "includ": [4, 7, 8, 10, 11], "like": [4, 7, 8, 9], "d": [4, 7, 10, 11], "comb": [4, 7, 11], "sig1": 4, "eq": [4, 7, 11], "expr1": 4, "sync": [4, 7, 11], "sig2": 4, "expr2": 4, "result": [4, 8, 9, 10, 11], "arg_expr": 4, "work": [4, 7, 8, 9], "analog": 4, "multiplex": 4, "rememb": [4, 5], "statement": [4, 7, 10], "insid": [4, 7, 8], "alwai": [4, 7, 8, 9, 11], "onc": [4, 7, 8, 11], "As": [4, 8], "typic": [4, 7, 8], "constructor": [4, 7, 10, 11], "myotherth": 4, "__init__": [4, 5, 7, 8, 9, 10, 11], "o": [4, 7, 8, 11], "paramet": [4, 7, 8, 9, 10, 11], "layout": [4, 7, 8, 9, 10], "my_method": [4, 7], "input_layout": 4, "output_layout": 4, "need": [4, 7, 8, 9, 11], "instead": [4, 5, 7, 8, 9, 11], "def_method": [4, 7], "_": [4, 7], "arg": [4, 5, 7, 8, 9, 10, 11], "other_method": 4, "ret_expr": 4, "techniqu": 4, "abov": 4, "conveni": [4, 7, 8], "syntax": [4, 7, 11], "just": [4, 8], "particular": 4, "unnam": 4, "usual": [4, 8, 9], "exampl": [4, 7, 8, 9, 11], "around": [4, 8, 11], "entir": 4, "sometim": 4, "might": [4, 5, 8], "two": [4, 7, 8, 10, 11], "altern": [4, 7, 8], "decid": [4, 9], "best": 4, "easi": [4, 8], "import": 4, "ask": 4, "yourself": 4, "someth": [4, 11], "independ": [4, 8], "so": [4, 5, 7, 8, 11], "mayb": 4, "Or": 4, "extern": [4, 7, 8], "doubt": 4, "prefer": 4, "becaus": [4, 5, 7, 8, 9], "noth": 4, "els": [4, 7], "Such": [4, 8], "adaptertran": [4, 8], "though": 4, "case": [4, 7, 8, 9, 10, 11], "cleaner": 4, "suppos": 4, "we": [4, 9, 11], "input": [4, 7, 8, 9, 11], "foo": [4, 8], "1": [4, 5, 7, 8, 9, 10, 11], "bar": [4, 8], "32": [4, 8], "cleanest": 4, "recommend": 4, "keyword": [4, 7, 8, 9, 10], "foo_expr": 4, "bar_expr": 4, "dict": [4, 5, 7, 8, 9, 10, 11], "final": [4, 7, 11], "rec": 4, "recurs": [4, 5, 6, 10, 11], "take": [4, 7, 8, 9, 10, 11], "layout2": 4, "foobar": 4, "baz": 4, "42": 4, "method2": [4, 8], "One": [4, 8, 11], "baz_expr": 4, "receiv": [4, 7, 8, 9], "method3": 4, "resourc": [4, 7], "request": [4, 5, 7, 8, 9, 11], "bit": [4, 7, 8, 10, 11], "expr": 4, "similar": [4, 7, 8, 11], "mechan": [4, 8], "intern": [4, 7, 8, 11], "risk": [4, 8], "introduc": 4, "loop": [4, 7], "certain": 4, "occas": 4, "possibl": [4, 8, 9, 10], "relax": 4, "e": [4, 8, 9, 10, 11], "g": [4, 8, 9, 10, 11], "framework": 4, "design": [4, 5], "facilit": 4, "re": [4, 7], "provid": [4, 7, 8, 9, 10, 11], "most": [4, 7, 8], "ones": [4, 11], "connecttran": [4, 8], "queue": [4, 8], "write": [4, 7, 8, 11], "plain": [4, 7, 8], "These": 4, "veri": 4, "testbench": [4, 8, 9], "own": [4, 5, 7, 8], "variant": 4, "Its": 4, "role": 4, "improv": 4, "circuit": [4, 7, 8, 10, 11], "omit": [4, 7, 8], "unneed": 4, "done": [4, 7, 8, 9], "ad": [4, 7, 8, 9, 10, 11], "addit": [4, 10], "combinatori": 4, "av_comb": [4, 7], "top_comb": [4, 7, 11], "under": [4, 5, 7], "avoidedif": [4, 7], "guard": [4, 7, 8, 9], "grant": [4, 5, 7, 8, 11], "therefor": 4, "don": [4, 7, 9], "t": [4, 7, 8, 9, 10], "induc": 4, "often": 4, "safe": [4, 10], "do": [4, 7, 8, 9, 11], "switch": [4, 7, 8, 11], "etc": [4, 9], "logic": [4, 8], "belong": [4, 8], "aren": [4, 8], "actual": 4, "were": [4, 9], "manual": [4, 9, 11], "move": [4, 8], "top": [4, 7, 10], "level": [4, 7, 8, 9, 10, 11], "caveat": 4, "normal": [4, 8, 9], "cannot": [4, 7, 8, 9], "exist": [4, 8, 10], "forward": [4, 7, 8], "place": [4, 7, 8], "handl": [4, 7], "make": [4, 5, 9], "consid": [4, 7, 8], "object": [4, 5, 8, 9, 10], "schedule_befor": [4, 7], "after": [4, 8, 11], "first": [4, 7, 8, 9, 10, 11], "first_t_or_m": 4, "other_t_or_m": 4, "lift": 4, "first_m": 4, "other_t": 4, "t1": 4, "t2": 4, "made": 4, "situat": [4, 7], "mutual": [4, 7, 8], "exclus": [4, 7, 8, 11], "similarli": [4, 8], "add_conflict": [4, 7], "ha": [4, 5, 7, 8, 11], "prioriti": [4, 7, 8, 11], "left": [4, 7, 11], "right": [4, 7, 11], "undefin": [4, 7, 8, 11], "add": [4, 7, 8, 9, 10, 11], "other_m": 4, "come": 4, "cost": 4, "increas": [4, 8], "size": [4, 8, 10], "delai": [4, 9], "featur": 4, "consider": 4, "parent": 4, "convers": 4, "true": [4, 5, 7, 8, 9, 10, 11], "doesn": 4, "limit": [4, 8], "impli": 4, "amaranth_ext": [5, 10], "component_interfac": [5, 10], "memori": [5, 7, 8, 10], "shifter": [5, 10], "extract": 5, "base": [5, 7, 8, 9, 10, 11], "intflag": 5, "IN": 5, "inout": 5, "none": [5, 6, 7, 8, 9, 10, 11], "0": [5, 6, 7, 8, 9, 11], "out": [5, 7, 8, 11], "2": [5, 7, 8, 10, 11], "__new__": 5, "protocol": [5, 7, 8], "kwarg": [5, 7, 8, 9, 10, 11], "str": [5, 6, 7, 8, 9, 10, 11], "properti": [5, 7, 9, 11], "owned_nam": 5, "owner": [5, 7], "ownershipgraph": 5, "dump": 5, "fp": 5, "liter": [5, 11], "dot": [5, 8], "elk": 5, "mermaid": 5, "dump_dot": 5, "int": [5, 7, 8, 9, 10, 11], "indent": [5, 8, 10], "dump_elk": 5, "dump_mermaid": 5, "get_hier_nam": 5, "obj": [5, 10], "get": [5, 7, 8, 9, 10, 11], "hierarch": 5, "rais": [5, 8, 9, 10], "keyerror": [5, 8, 10], "yet": [5, 11], "get_nam": 5, "insert_edg": 5, "fr": 5, "insert_nod": 5, "mermaid_direct": 5, "prune": 5, "mark": 5, "empti": [5, 8, 11], "subgraph": 5, "remember_field": 5, "owner_id": 5, "methodsampl": 5, "runtim": [5, 8, 11], "control": [5, 8, 9, 11], "attribut": [5, 7, 8, 10, 11], "bool": [5, 6, 7, 8, 9, 10, 11], "simul": [5, 7, 8, 9], "restor": 5, "analysi": 5, "tool": 5, "data": [5, 7, 8, 9, 10, 11], "refer": [5, 10], "uniqu": [5, 8], "id": 5, "transactions_and_method": 5, "profileinfo": 5, "index": [5, 7, 8, 11], "list": [5, 6, 7, 8, 9, 10, 11], "cycleprofil": 5, "factori": [5, 8, 10], "analyze_method": 5, "runstatnod": [5, 6], "analyze_transact": 5, "static": [5, 7, 8, 9, 10, 11], "decod": [5, 10, 11], "file_nam": [5, 10], "encod": [5, 8, 10, 11], "classmethod": [5, 8, 10], "from_dict": [5, 8, 10], "kv": [5, 8, 10], "union": [5, 8, 9, 10, 11], "float": [5, 8, 9, 10], "infer_miss": [5, 8, 10], "from_json": [5, 8, 10], "byte": [5, 8, 10], "bytearrai": [5, 8, 10], "parse_float": [5, 8, 10], "parse_int": [5, 8, 10], "parse_const": [5, 8, 10], "kw": [5, 8, 10], "schema": [5, 8, 10], "exclud": [5, 8, 10], "context": [5, 7, 8, 9, 10], "load_onli": [5, 8, 10], "dump_onli": [5, 8, 10], "partial": [5, 8, 10], "unknown": [5, 8, 10], "schemaf": [5, 8, 10], "to_dict": [5, 8, 10], "encode_json": [5, 8, 10], "to_json": [5, 8, 10], "skipkei": [5, 8, 10], "ensure_ascii": [5, 8, 10], "check_circular": [5, 8, 10], "allow_nan": [5, 8, 10], "separ": [5, 7, 8, 10], "tupl": [5, 6, 7, 8, 9, 10, 11], "callabl": [5, 6, 7, 8, 9, 10], "sort_kei": [5, 8, 10], "profiledata": [5, 10], "individu": 5, "method_par": 5, "transactions_by_method": 5, "transaction_conflict": 5, "transaction_manag": [5, 7, 9], "transactionmanag": [5, 7, 9], "src_loc": [5, 7, 8, 10], "srcloc": [5, 7, 8], "is_transact": 5, "profilesampl": 5, "transactionsampl": 5, "runstat": [5, 6], "collect": [5, 7, 8, 9, 10, 11], "statist": 5, "disabl": [5, 8, 9], "did": [5, 9], "info": [5, 8], "summar": 5, "stat": 5, "runnabl": [5, 7], "tracingenabl": 5, "tracingfrag": 5, "fragment": [5, 7], "haselabor": [5, 7, 8, 9, 11], "origin": [5, 8], "lose": 5, "too": [5, 8], "difficult": 5, "exact": 5, "copi": 5, "relev": 5, "copyright": 5, "subfrag": 5, "hdl": [5, 7, 8, 9, 10, 11], "_ir": [5, 10], "tracingfragmenttransform": 5, "fragmenttransform": 5, "on_frag": 5, "tracinginst": 5, "instanc": [5, 7, 8, 10, 11], "filter_nod": 6, "regex": 6, "process_stat_tre": 6, "x": [6, 10, 11], "iter": [6, 7, 8, 9, 10, 11], "ret": 6, "depth": [6, 8, 11], "sort_nod": 6, "sort_ord": 6, "adapterbodyparam": [7, 8, 9], "typeddict": 7, "notrequir": 7, "sequenc": [7, 10, 11], "view": [7, 8, 10, 11], "structlayout": [7, 8, 9, 10], "_ast": [7, 8, 9, 10, 11], "enum": [7, 8, 9, 10, 11], "valuecast": [7, 8, 9, 10, 11], "abc": [7, 8, 9, 10, 11], "map": [7, 8, 9, 10, 11], "assignarg": [7, 10], "nonexclus": [7, 8], "single_cal": [7, 8], "transactionbas": 7, "unpack": [7, 8, 9], "bodyparam": 7, "ctrl_path": 7, "ctrlpath": 7, "path": [7, 8], "def_count": 7, "classvar": 7, "def_ord": 7, "method_cal": 7, "defaultdict": 7, "method_us": 7, "peek": [7, 8], "stack": [7, 8, 10], "validate_argu": [7, 8, 9], "transactionmanagerkei": 7, "simplekei": [7, 8, 9, 10], "transactioncompon": 7, "transactionmodul": 7, "compon": [7, 8, 11], "transactroncompon": 7, "wrapper": [7, 8], "support": [7, 8, 11], "wrap": [7, 11], "synthesi": 7, "port": [7, 8, 10, 11], "extend": [7, 11], "abstractcompon": 7, "dependency_manag": [7, 9], "dependencymanag": [7, 8, 9, 10], "new": [7, 8, 10, 11], "care": [7, 8], "never": [7, 8], "cc_schedul": 7, "methodmap": [7, 8], "tbodi": 7, "_dsl": 7, "eager_deterministic_cc_schedul": 7, "_rec": [7, 8, 10, 11], "signalbundl": [7, 8, 10, 11], "print_info": 7, "cgr": 7, "porder": 7, "cc": 7, "method_map": 7, "visual_graph": 7, "store": [7, 8, 9, 10, 11], "dependencycontext": [7, 10], "serv": [7, 8], "simultena": 7, "rest": 7, "must": [7, 8, 10, 11], "non": [7, 8, 9], "except": [7, 9, 10], "behavior": [7, 8, 10, 11], "combination": 7, "transfer": [7, 8], "time": [7, 8, 9], "data_out": [7, 8, 11], "data_in": [7, 8, 11], "effect": [7, 8, 9], "current": [7, 11], "methodstruct": [7, 8], "shape": [7, 8, 10, 11], "rang": [7, 8, 9, 10, 11], "shapecast": [7, 8, 10, 11], "forwardref": [7, 8, 9, 10], "shapelik": [7, 8, 9, 10, 11], "layoutlist": [7, 8, 9, 10], "hint": [7, 11], "infer": 7, "variabl": [7, 11], "frame": [7, 8], "deep": [7, 8], "taken": [7, 8], "const": [7, 8, 9, 10], "d1": [7, 8], "d0": 7, "action": [7, 8, 10], "indic": [7, 8, 11], "By": [7, 8], "combinationi": 7, "valuelik": [7, 8, 9, 11], "whether": [7, 8, 11], "those": 7, "instanti": 7, "accept": [7, 8, 10], "third": [7, 8], "vector": [7, 11], "whose": 7, "th": [7, 8, 11], "happen": [7, 9], "still": [7, 8], "error": [7, 8, 10], "thrown": 7, "my_sum_method": 7, "arg1": 7, "8": [7, 8], "arg2": 7, "sum": [7, 8], "16": 7, "layout_in": [7, 8], "layout_out": [7, 8], "construct": [7, 8, 11], "blueprint": 7, "freshli": 7, "proxi": 7, "methoddir": 7, "gr": 7, "transactiongraph": 7, "transactiongraphcc": 7, "priorityord": 7, "eager": 7, "subsystem": [7, 11], "isn": 7, "fair": 7, "start": [7, 8, 11], "lowest": 7, "highest": [7, 11], "concurr": 7, "arbitr": [7, 11], "agent": [7, 11], "vertic": 7, "edg": [7, 8, 9], "linear": 7, "consist": 7, "constraint": 7, "trivial_roundrobin_cc_schedul": 7, "simpl": [7, 8, 10, 11], "round": [7, 10, 11], "robin": [7, 11], "mainli": 7, "purpos": [7, 8], "decor": [7, 9], "eleg": 7, "correspond": [7, 8, 9, 11], "dictionari": [7, 8], "go": 7, "detail": [7, 8], "lambda": [7, 9], "over": [7, 8, 9], "easili": [7, 8], "expect": 7, "least": [7, 9, 11], "equival": [7, 8, 9, 11], "len": [7, 8, 11], "form": [7, 8], "three": 7, "parametr": 7, "my_filter_read_method": 7, "ready_list": 7, "head": [7, 8], "modulelik": [7, 8, 11], "everi": [7, 8, 9], "reduc": 7, "amount": [7, 9, 11], "useless": 7, "multplex": 7, "due": [7, 8], "while": [7, 9], "unguard": 7, "length": [7, 8, 9, 10, 11], "keep": 7, "relat": [7, 8, 10], "synchron": [7, 8, 9], "cond": [7, 8], "pattern": 7, "elif": 7, "fsm": 7, "init": [7, 8], "next": [7, 9, 11], "noreturn": 7, "repres": [7, 8, 11], "task": 7, "regularli": 7, "last": [7, 8, 11], "met": 7, "explicit": 7, "implicit": 7, "aris": 7, "pair": [7, 8, 11], "want": [7, 9, 11], "priorit": 7, "_t": 7, "end": [7, 8, 11], "regist": [7, 8, 10], "reason": [7, 8], "common": [7, 8, 10], "independent_list": 7, "relationbas": 7, "without": [7, 8, 10], "simultaneous_altern": 7, "howev": [7, 8], "simultaneous_list": 7, "adapterbas": [8, 9], "mock": [8, 9], "en": [8, 9], "valid": [8, 9, 10, 11], "descript": [8, 10], "with_validate_argu": [8, 9], "update_arg": 8, "ifac": 8, "expos": [8, 10], "priorityencoderalloc": 8, "superscalar": 8, "identifi": 8, "dealloc": 8, "continu": [8, 9], "fresh": 8, "littl": 8, "free": 8, "entri": [8, 10, 11], "total": 8, "mask": [8, 11], "treat": 8, "reset": 8, "clickin": 8, "click": 8, "interact": 8, "fpga": 8, "On": 8, "rise": 8, "btn": 8, "enabl": [8, 9, 10, 11], "dat": 8, "retriev": 8, "clickout": 8, "led": 8, "put": 8, "flow": [8, 11], "revers": 8, "possibli": 8, "rev_layout": 8, "second": [8, 11], "vice": 8, "versa": 8, "compat": 8, "method1": 8, "respect": 8, "full": 8, "fulfil": 8, "fifo_typ": 8, "syncfifo": 8, "fifotyp": 8, "conform": 8, "overflow": 8, "buffer": [8, 11], "No": 8, "until": [8, 9], "clear": [8, 10], "manytooneconnecttran": 8, "get_result": 8, "put_result": 8, "pipe": 8, "halfwai": 8, "locali": 8, "critic": [8, 9], "cut": 8, "comparison": 8, "clean": 8, "dependencykei": [8, 10], "u": [8, 10], "concret": [8, 10], "frozen": [8, 10], "lock_on_get": [8, 10], "specifi": [8, 10], "alreadi": [8, 10, 11], "get_depend": [8, 10], "cach": [8, 10], "subsequ": [8, 10], "empty_valid": [8, 10], "ani": [8, 9, 10, 11], "caus": [8, 10], "abstract": [8, 10], "add_depend": [8, 10], "give": [8, 10], "kind": [8, 10], "track": [8, 10], "across": [8, 10], "multpl": [8, 10], "get_optional_depend": [8, 10], "gettabl": [8, 10], "otherwis": [8, 10, 11], "listkei": [8, 10], "dependeci": [8, 10], "more": [8, 9, 10, 11], "than": [8, 10, 11], "default_valu": [8, 10], "unifierkei": 8, "unifi": 8, "wish": 8, "basicfifo": 8, "element": 8, "front": 8, "delet": 8, "semaphor": 8, "max_count": 8, "widefifo": 8, "per": 8, "denot": 8, "maximum": 8, "insert": 8, "remov": 8, "arraylayout": 8, "less": [8, 11], "enough": 8, "slot": 8, "read_width": 8, "write_width": 8, "max": 8, "written": 8, "assum": [8, 10], "equal": [8, 11], "hardwarelogg": 8, "intuit": 8, "logger": 8, "softwar": 8, "anywher": 8, "parallel": 8, "natur": [8, 11], "trigger": [8, 9, 10], "shall": 8, "report": 8, "evalu": [8, 9], "print": 8, "dure": [8, 9], "arbitrari": 8, "exactli": 8, "string": [8, 9], "organ": 8, "namespac": 8, "hierarchi": 8, "period": 8, "much": 8, "frontend": 8, "upper": 8, "icach": 8, "bpu": 8, "sub": 8, "There": 8, "backend": 8, "fu": 8, "jumpbranch": 8, "assert": [8, 9, 11], "src_loc_at": [8, 11], "find": 8, "bug": 8, "hard": 8, "detect": 8, "termin": 8, "turn": 8, "warn": 8, "board": 8, "debug": [8, 10], "sever": 8, "semant": 8, "server": 8, "pep": 8, "3101": 8, "look": 8, "fail": 8, "logkei": 8, "logrecord": 8, "loglevel": 8, "alia": 8, "logrecordinfo": [8, 10], "event": 8, "being": [8, 10, 11], "logger_nam": [8, 10], "format_str": [8, 10], "agnost": 8, "serial": 8, "outsid": 8, "templat": 8, "get_log_record": 8, "namespace_regexp": [8, 9], "bigger": 8, "minimum": 8, "regexp": 8, "get_trigger_bit": 8, "high": [8, 11], "whenev": 8, "fifolatencymeasur": 8, "measur": 8, "durat": 8, "latenc": 8, "finish": 8, "exponenti": 8, "histogram": 8, "fully_qualified_nam": 8, "slots_numb": 8, "max_lat": 8, "fulli": 8, "qualifi": 8, "human": 8, "width": [8, 10, 11], "bucket": 8, "metrics_en": 8, "previou": 8, "stop": 8, "oldest": 8, "hardwaremetricsmanag": 8, "compos": 8, "get_metr": 8, "hwmetric": 8, "get_register_valu": 8, "metric_nam": 8, "reg_nam": 8, "hold": 8, "load": [8, 10], "min": 8, "hwcounter": 8, "width_bit": 8, "incr": 8, "hwexphistogram": 8, "distribut": 8, "sampl": [8, 9], "through": 8, "observ": 8, "configur": 8, "5": [8, 9], "4": [8, 10], "inf": 8, "addition": 8, "bucket_count": 8, "sample_width": 8, "registers_width": 8, "max_valu": 8, "calcul": 8, "metricmodel": 8, "add_regist": 8, "reg": [8, 10], "hwmetricregist": 8, "inherit": [8, 11], "initi": 8, "hwmetricsenabledkei": 8, "theirs": 8, "synthes": 8, "compris": 8, "dedic": 8, "specif": 8, "determin": [8, 10], "user": 8, "join": 8, "metricregistermodel": 8, "associ": 8, "fundament": 8, "singular": 8, "among": 8, "reman": 8, "brief": 8, "taggedcount": 8, "tag": 8, "At": 8, "dynam": [8, 11], "integ": [8, 9, 10], "neg": [8, 9, 10], "ok": 8, "hot": [8, 11], "optim": 8, "tag_width": 8, "one_hot": 8, "underli": 8, "taggedlatencymeasur": 8, "argumentstoresultszipp": 8, "zip": 8, "calle": 8, "asymmetri": 8, "long": 8, "correctli": 8, "rate": 8, "reach": [8, 11], "capac": 8, "topologi": 8, "peek_arg": 8, "write_arg": 8, "args_layout": 8, "write_result": 8, "results_layout": 8, "latest": 8, "client": 8, "somethig": 8, "deseri": 8, "proper": 8, "serialize_in": 8, "serialized_req_method": 8, "serialize_out": 8, "serialized_resp_method": 8, "port_count": 8, "resist": 8, "pipelin": 8, "nonblock": 8, "overlap": 8, "branch": 8, "boolean": 8, "catch": 8, "negat": [8, 10], "influenc": 8, "cond1": 8, "cond2": 8, "asyncmemorybank": 8, "asynchron": 8, "granular": [8, 11], "addr": 8, "data_layout": [8, 10], "address": [8, 11], "appropri": 8, "read_port": 8, "write_port": [8, 11], "memory_typ": 8, "amaranth_typ": 8, "abstractmemoryconstructor": 8, "whole": 8, "split": 8, "accord": [8, 10], "contentaddressablememori": 8, "addres": 8, "short": 8, "cam": 8, "predefin": [8, 9], "fed": 8, "compar": 8, "hit": 8, "push": 8, "behaviour": 8, "nondestruct": 8, "updat": [8, 11], "address_layout": 8, "entries_numb": 8, "layoutlik": 8, "memorybank": 8, "read_req": 8, "read_resp": 8, "transpar": 8, "cattran": 8, "concaten": 8, "src1": 8, "src2": 8, "dst": 8, "collector": 8, "target": 8, "method_list": 8, "connectandmaptran": 8, "behav": 8, "modifi": 8, "i_fun": 8, "recorddict": 8, "o_fun": 8, "methodfilt": 8, "zero": [8, 11], "desir": [8, 11], "use_condit": 8, "drawback": 8, "simultaneu": 8, "bidirect": 8, "i_transform": 8, "o_transform": 8, "unmodifi": 8, "methodproduct": 8, "product": 8, "comput": [8, 10], "methodtryproduct": 8, "tri": 8, "succeed": [8, 9], "nonexclusivewrapp": 8, "data_const_to_dict": 9, "c": [9, 11], "pysimsimul": 9, "max_cycl": 9, "100000": 9, "add_transaction_modul": 9, "traces_fil": 9, "clk_period": 9, "1e": 9, "06": 9, "indefinit": 9, "simpletestcircuit": 9, "_t_haselabor": 9, "dut": 9, "testcasewithsimul": 9, "add_mock": 9, "sim": 9, "val": [9, 10], "methodmock": 9, "fixture_initialize_testing_env": 9, "async": 9, "random_wait": 9, "simulatorcontext": 9, "max_cycle_cnt": 9, "min_cycle_cnt": 9, "random": 9, "random_wait_geom": 9, "prob": 9, "till": 9, "probabl": 9, "reinitialize_fixtur": 9, "run_simul": 9, "tick": 9, "cycle_cnt": 9, "opnop": 9, "generate_based_on_layout": 9, "searchstrategi": 9, "recordintdict": 9, "generate_method_input": 9, "generate_nops_in_list": 9, "max_nop": 9, "generate_list": 9, "generate_process_input": 9, "elem_count": 9, "generate_shrinkable_list": 9, "trick": 9, "http": 9, "github": 9, "com": 9, "hypothesiswork": 9, "hypothesi": 9, "blob": 9, "6867da71beae0e4ed004b54b92ef7c74d0722815": 9, "src": 9, "l143": 9, "insert_nop": 9, "draw": 9, "drawfn": 9, "lst": 9, "make_logging_process": 9, "on_error": 9, "parse_logging_level": 9, "pars": 9, "represent": [9, 10, 11], "effect_process": 9, "output_process": 9, "validate_arguments_process": 9, "def_method_mock": 9, "tb_getter": 9, "handler": 9, "invok": 9, "discov": 9, "side": 9, "modif": 9, "sure": 9, "defer": 9, "sinc": 9, "eagerli": 9, "profiler_process": 9, "calltrigg": 9, "call_tri": 9, "problem": 9, "But": 9, "_call": 9, "tbio": 9, "kwdata": 9, "succe": 9, "ticktrigg": 9, "until_all_don": 9, "until_don": 9, "act": 9, "await": 9, "focu": 9, "call_do": 9, "call_init": 9, "call_result": 9, "get_call_result": 9, "testbenchcontext": 9, "get_don": 9, "get_output": 9, "sample_output": 9, "sample_outputs_don": 9, "sample_outputs_until_don": 9, "set_en": 9, "set_input": 9, "tickskei": 9, "make_tick_count_process": 9, "assigntyp": 10, "lh": 10, "rh": 10, "assignfield": 10, "lhs_strict": 10, "rhs_strict": 10, "mismatch": 10, "explicitli": 10, "castabl": 10, "item": [10, 11], "subfield": 10, "valueerror": 10, "align_down_to_power_of_two": 10, "num": 10, "power": 10, "down": 10, "align": 10, "align_to_power_of_two": 10, "average_dict_of_list": 10, "bits_from_int": 10, "lower": 10, "int_to_sign": 10, "xlen": 10, "convert": 10, "u2": 10, "sign": 10, "layout_subset": 10, "make_hash": 10, "signed_to_int": 10, "auto_debug_sign": 10, "arrai": 10, "gtkw": 10, "dependentcach": 10, "itself": 10, "posit": [10, 11], "cl": 10, "generatedlog": 10, "verilog": 10, "trigger_loc": 10, "signalhandl": 10, "fields_loc": 10, "generationinfo": 10, "variou": 10, "metrics_loc": 10, "metricinfo": 10, "metadata": 10, "metricloc": 10, "transaction_signals_loc": 10, "transactionsignalsloc": 10, "method_signals_loc": 10, "methodsignalsloc": 10, "profile_data": 10, "generate_verilog": 10, "top_nam": 10, "idgener": 10, "async_mock_def_help": 10, "tb": 10, "func": 10, "dataclass_asdict": 10, "def_help": 10, "tp": 10, "extend_layout": 10, "from_method_layout": 10, "get_caller_class_nam": 10, "get_src_loc": 10, "longest_common_prefix": 10, "seq": 10, "make_layout": 10, "method_def_help": 10, "mock_def_help": 10, "silence_mustus": 10, "binari": 11, "low": 11, "invalid": 11, "graydecod": 11, "grai": 11, "grayencod": 11, "prioritydecod": 11, "priorityencod": 11, "signific": 11, "abstractcomponentinterfac": 11, "abstractinterfac": 11, "abstractsignatur": 11, "flip": 11, "signatur": 11, "cin": 11, "_componentsign": 11, "cout": 11, "componentinterfac": 11, "syntact": 11, "wire": 11, "separetli": 11, "componentsign": 11, "later": 11, "exampleinterfac": 11, "data_width": 11, "subinterfac": 11, "examp": 11, "le": 11, "bu": 11, "super": 11, "flippedcomponentinterfac": 11, "member": 11, "_t_componentinterfac": 11, "moduleconnector": 11, "anonym": 11, "multipriorityencod": 11, "extens": 11, "word": 11, "multi": 11, "input_width": 11, "outputs_count": 11, "indici": 11, "ascend": 11, "begin": 11, "build_tre": 11, "in_sig": 11, "start_idx": 11, "prio_encod": 11, "cnt": 11, "one_hot_sing": 11, "idx": 11, "prio": 11, "been": 11, "create_simpl": 11, "hardcod": 11, "onehotswitch": 11, "match": 11, "style": 11, "benefit": 11, "sig": 11, "onehotcas": 11, "0b01": 11, "0b10": 11, "onehotswitchdynam": 11, "signifi": 11, "ringmultipriorityencod": 11, "flexibl": 11, "circular": 11, "inclus": 11, "roundrobin": 11, "greater": 11, "restart": 11, "enableinsert": 11, "deassert": 11, "stableselectingnetwork": 11, "network": 11, "group": 11, "consecut": 11, "preserv": 11, "divid": 11, "conquer": 11, "algorithm": 11, "properli": 11, "v1": 11, "b": 11, "v2": 11, "now": 11, "shift": 11, "merg": 11, "v": 11, "thu": 11, "log_2": 11, "const_of": 11, "count_leading_zero": 11, "count_trailing_zero": 11, "cyclic_mask": 11, "wide": 11, "flatten_sign": 11, "flatten": 11, "mod_incr": 11, "mod": 11, "popcount": 11, "shape_of": 11, "multireadmemori": 11, "basemultiportmemori": 11, "multiportilvtmemori": 11, "multiport": 11, "live": 11, "tabl": 11, "built": 11, "ilvt": 11, "xor": 11, "bank": 11, "logarithm": 11, "multiportxormemori": 11, "correct": 11, "generic_shift_left": 11, "value1": 11, "value2": 11, "offset": 11, "fill": 11, "space": 11, "shift_left": 11, "rotate_left": 11, "generic_shift_right": 11, "shift_right": 11, "rotate_right": 11, "generic_shift_vec_left": 11, "data1": 11, "_t_valuecast": 11, "data2": 11, "shift_vec_left": 11, "rotate_vec_left": 11, "generic_shift_vec_right": 11, "shift_vec_right": 11, "rotate_vec_right": 11, "rotat": 11, "placehold": 11}, "objects": {"": [[5, 0, 0, "-", "transactron"]], "transactron": [[6, 0, 0, "-", "cmd"], [7, 0, 0, "-", "core"], [5, 0, 0, "-", "graph"], [8, 0, 0, "-", "lib"], [5, 0, 0, "-", "profiler"], [9, 0, 0, "-", "testing"], [5, 0, 0, "-", "tracing"], [10, 0, 0, "-", "utils"]], "transactron.cmd": [[6, 0, 0, "-", "tprof"]], "transactron.cmd.tprof": [[6, 1, 1, "", "filter_nodes"], [6, 1, 1, "", "main"], [6, 1, 1, "", "process_stat_tree"], [6, 1, 1, "", "sort_node"]], "transactron.core": [[7, 0, 0, "-", "body"], [7, 0, 0, "-", "keys"], [7, 0, 0, "-", "manager"], [7, 0, 0, "-", "method"], [7, 0, 0, "-", "schedulers"], [7, 0, 0, "-", "sugar"], [7, 0, 0, "-", "tmodule"], [7, 0, 0, "-", "transaction"], [7, 0, 0, "-", "transaction_base"]], "transactron.core.body": [[7, 2, 1, "", "AdapterBodyParams"], [7, 2, 1, "", "Body"], [7, 2, 1, "", "BodyParams"]], "transactron.core.body.AdapterBodyParams": [[7, 3, 1, "", "combiner"], [7, 3, 1, "", "nonexclusive"], [7, 3, 1, "", "single_caller"]], "transactron.core.body.Body": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "context"], [7, 3, 1, "", "ctrl_path"], [7, 3, 1, "", "def_counter"], [7, 3, 1, "", "def_order"], [7, 4, 1, "", "get"], [7, 3, 1, "", "method_calls"], [7, 3, 1, "", "method_uses"], [7, 4, 1, "", "peek"], [7, 3, 1, "", "stack"]], "transactron.core.body.BodyParams": [[7, 3, 1, "", "combiner"], [7, 3, 1, "", "nonexclusive"], [7, 3, 1, "", "single_caller"], [7, 3, 1, "", "validate_arguments"]], "transactron.core.keys": [[7, 2, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[7, 4, 1, "", "__init__"]], "transactron.core.manager": [[7, 2, 1, "", "TransactionComponent"], [7, 2, 1, "", "TransactionManager"], [7, 2, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionComponent": [[7, 4, 1, "", "__init__"]], "transactron.core.manager.TransactionManager": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "debug_signals"], [7, 4, 1, "", "print_info"], [7, 4, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "context"]], "transactron.core.method": [[7, 2, 1, "", "Method"], [7, 2, 1, "", "MethodDir"], [7, 2, 1, "", "Methods"]], "transactron.core.method.Method": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "body"], [7, 4, 1, "", "debug_signals"], [7, 5, 1, "", "layout_in"], [7, 5, 1, "", "layout_out"], [7, 4, 1, "", "like"], [7, 4, 1, "", "proxy"]], "transactron.core.method.MethodDir": [[7, 3, 1, "", "PROVIDED"], [7, 3, 1, "", "REQUIRED"]], "transactron.core.method.Methods": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "debug_signals"], [7, 5, 1, "", "layout_in"], [7, 5, 1, "", "layout_out"]], "transactron.core.schedulers": [[7, 1, 1, "", "eager_deterministic_cc_scheduler"], [7, 1, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[7, 1, 1, "", "def_method"], [7, 1, 1, "", "def_methods"]], "transactron.core.tmodule": [[7, 2, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[7, 4, 1, "", "AvoidedIf"], [7, 4, 1, "", "Case"], [7, 4, 1, "", "Default"], [7, 4, 1, "", "Elif"], [7, 4, 1, "", "Else"], [7, 4, 1, "", "FSM"], [7, 4, 1, "", "If"], [7, 4, 1, "", "State"], [7, 4, 1, "", "Switch"], [7, 4, 1, "", "__init__"], [7, 5, 1, "", "ctrl_path"], [7, 5, 1, "", "next"]], "transactron.core.transaction": [[7, 2, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "body"], [7, 4, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[7, 2, 1, "", "Priority"], [7, 2, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[7, 3, 1, "", "LEFT"], [7, 3, 1, "", "RIGHT"], [7, 3, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[7, 4, 1, "", "__init__"], [7, 4, 1, "", "add_conflict"], [7, 3, 1, "", "independent_list"], [7, 3, 1, "", "relations"], [7, 4, 1, "", "schedule_before"], [7, 4, 1, "", "simultaneous"], [7, 4, 1, "", "simultaneous_alternatives"], [7, 3, 1, "", "simultaneous_list"], [7, 3, 1, "", "src_loc"]], "transactron.graph": [[5, 2, 1, "", "Direction"], [5, 2, 1, "", "Owned"], [5, 2, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[5, 3, 1, "", "IN"], [5, 3, 1, "", "INOUT"], [5, 3, 1, "", "NONE"], [5, 3, 1, "", "OUT"], [5, 4, 1, "", "__new__"]], "transactron.graph.Owned": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "name"], [5, 5, 1, "", "owned_name"], [5, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "dump"], [5, 4, 1, "", "dump_dot"], [5, 4, 1, "", "dump_elk"], [5, 4, 1, "", "dump_mermaid"], [5, 4, 1, "", "get_hier_name"], [5, 4, 1, "", "get_name"], [5, 4, 1, "", "insert_edge"], [5, 4, 1, "", "insert_node"], [5, 3, 1, "", "mermaid_direction"], [5, 4, 1, "", "prune"], [5, 4, 1, "", "remember"], [5, 4, 1, "", "remember_field"]], "transactron.lib": [[8, 0, 0, "-", "adapters"], [8, 0, 0, "-", "allocators"], [8, 0, 0, "-", "buttons"], [8, 0, 0, "-", "connectors"], [8, 0, 0, "-", "dependencies"], [8, 0, 0, "-", "fifo"], [8, 0, 0, "-", "logging"], [8, 0, 0, "-", "metrics"], [8, 0, 0, "-", "reqres"], [8, 0, 0, "-", "simultaneous"], [8, 0, 0, "-", "storage"], [8, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[8, 2, 1, "", "Adapter"], [8, 2, 1, "", "AdapterBase"], [8, 2, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "create"], [8, 4, 1, "", "set"], [8, 4, 1, "", "update_args"]], "transactron.lib.adapters.AdapterBase": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "data_in"], [8, 3, 1, "", "data_out"], [8, 4, 1, "", "debug_signals"], [8, 3, 1, "", "done"], [8, 3, 1, "", "en"]], "transactron.lib.adapters.AdapterTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.allocators": [[8, 2, 1, "", "PriorityEncoderAllocator"]], "transactron.lib.allocators.PriorityEncoderAllocator": [[8, 4, 1, "", "__init__"]], "transactron.lib.buttons": [[8, 2, 1, "", "ClickIn"], [8, 2, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[8, 4, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors": [[8, 2, 1, "", "Connect"], [8, 2, 1, "", "ConnectTrans"], [8, 2, 1, "", "FIFO"], [8, 2, 1, "", "Forwarder"], [8, 2, 1, "", "ManyToOneConnectTrans"], [8, 2, 1, "", "Pipe"]], "transactron.lib.connectors.Connect": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.connectors.Pipe": [[8, 4, 1, "", "__init__"]], "transactron.lib.dependencies": [[8, 2, 1, "", "DependencyKey"], [8, 2, 1, "", "DependencyManager"], [8, 2, 1, "", "ListKey"], [8, 2, 1, "", "SimpleKey"], [8, 2, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[8, 3, 1, "", "cache"], [8, 4, 1, "", "combine"], [8, 3, 1, "", "empty_valid"], [8, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add_dependency"], [8, 4, 1, "", "get_dependency"], [8, 4, 1, "", "get_optional_dependency"]], "transactron.lib.dependencies.ListKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[8, 4, 1, "", "combine"], [8, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[8, 2, 1, "", "BasicFifo"], [8, 2, 1, "", "Semaphore"], [8, 2, 1, "", "WideFifo"]], "transactron.lib.fifo.BasicFifo": [[8, 4, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[8, 4, 1, "", "__init__"]], "transactron.lib.fifo.WideFifo": [[8, 4, 1, "", "__init__"]], "transactron.lib.logging": [[8, 2, 1, "", "HardwareLogger"], [8, 2, 1, "", "LogKey"], [8, 3, 1, "", "LogLevel"], [8, 2, 1, "", "LogRecord"], [8, 2, 1, "", "LogRecordInfo"], [8, 1, 1, "", "get_log_records"], [8, 1, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "assertion"], [8, 4, 1, "", "debug"], [8, 4, 1, "", "error"], [8, 4, 1, "", "info"], [8, 4, 1, "", "log"], [8, 4, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[8, 4, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "fields"], [8, 3, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "format"], [8, 3, 1, "", "format_str"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "level"], [8, 3, 1, "", "location"], [8, 3, 1, "", "logger_name"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"]], "transactron.lib.metrics": [[8, 2, 1, "", "FIFOLatencyMeasurer"], [8, 2, 1, "", "HardwareMetricsManager"], [8, 2, 1, "", "HwCounter"], [8, 2, 1, "", "HwExpHistogram"], [8, 2, 1, "", "HwMetric"], [8, 2, 1, "", "HwMetricsEnabledKey"], [8, 2, 1, "", "MetricModel"], [8, 2, 1, "", "MetricRegisterModel"], [8, 2, 1, "", "TaggedCounter"], [8, 2, 1, "", "TaggedLatencyMeasurer"]], "transactron.lib.metrics.FIFOLatencyMeasurer": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "metrics_enabled"], [8, 4, 1, "", "start"], [8, 4, 1, "", "stop"]], "transactron.lib.metrics.HardwareMetricsManager": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "debug_signals"], [8, 4, 1, "", "get_metrics"], [8, 4, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "add_registers"], [8, 4, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "default_value"], [8, 3, 1, "", "empty_valid"], [8, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.MetricModel": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "description"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "fully_qualified_name"], [8, 3, 1, "", "regs"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "description"], [8, 4, 1, "", "from_dict"], [8, 4, 1, "", "from_json"], [8, 3, 1, "", "name"], [8, 4, 1, "", "schema"], [8, 4, 1, "", "to_dict"], [8, 4, 1, "", "to_json"], [8, 3, 1, "", "width"]], "transactron.lib.metrics.TaggedCounter": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "incr"]], "transactron.lib.metrics.TaggedLatencyMeasurer": [[8, 4, 1, "", "__init__"], [8, 4, 1, "", "metrics_enabled"], [8, 4, 1, "", "start"], [8, 4, 1, "", "stop"]], "transactron.lib.reqres": [[8, 2, 1, "", "ArgumentsToResultsZipper"], [8, 2, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[8, 4, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[8, 4, 1, "", "__init__"]], "transactron.lib.simultaneous": [[8, 1, 1, "", "condition"]], "transactron.lib.storage": [[8, 2, 1, "", "AsyncMemoryBank"], [8, 2, 1, "", "ContentAddressableMemory"], [8, 2, 1, "", "MemoryBank"]], "transactron.lib.storage.AsyncMemoryBank": [[8, 4, 1, "", "__init__"]], "transactron.lib.storage.ContentAddressableMemory": [[8, 4, 1, "", "__init__"]], "transactron.lib.storage.MemoryBank": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers": [[8, 2, 1, "", "CatTrans"], [8, 2, 1, "", "Collector"], [8, 2, 1, "", "ConnectAndMapTrans"], [8, 2, 1, "", "MethodFilter"], [8, 2, 1, "", "MethodMap"], [8, 2, 1, "", "MethodProduct"], [8, 2, 1, "", "MethodTryProduct"], [8, 2, 1, "", "NonexclusiveWrapper"], [8, 2, 1, "", "Transformer"], [8, 2, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.NonexclusiveWrapper": [[8, 4, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[8, 3, 1, "", "method"], [8, 4, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[8, 4, 1, "", "__init__"], [8, 3, 1, "", "method"]], "transactron.profiler": [[5, 2, 1, "", "MethodSamples"], [5, 2, 1, "", "Profile"], [5, 2, 1, "", "ProfileData"], [5, 2, 1, "", "ProfileInfo"], [5, 2, 1, "", "ProfileSamples"], [5, 2, 1, "", "RunStat"], [5, 2, 1, "", "RunStatNode"], [5, 2, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "run"]], "transactron.profiler.Profile": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "analyze_methods"], [5, 4, 1, "", "analyze_transactions"], [5, 3, 1, "", "cycles"], [5, 4, 1, "", "decode"], [5, 4, 1, "", "encode"], [5, 4, 1, "", "from_dict"], [5, 4, 1, "", "from_json"], [5, 4, 1, "", "schema"], [5, 4, 1, "", "to_dict"], [5, 4, 1, "", "to_json"], [5, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "make"], [5, 3, 1, "", "method_parents"], [5, 3, 1, "", "transaction_conflicts"], [5, 3, 1, "", "transactions_and_methods"], [5, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[5, 4, 1, "", "__init__"], [5, 4, 1, "", "from_dict"], [5, 4, 1, "", "from_json"], [5, 3, 1, "", "is_transaction"], [5, 3, 1, "", "name"], [5, 4, 1, "", "schema"], [5, 3, 1, "", "src_loc"], [5, 4, 1, "", "to_dict"], [5, 4, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "methods"], [5, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "locked"], [5, 4, 1, "", "make"], [5, 3, 1, "", "name"], [5, 3, 1, "", "run"], [5, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "callers"], [5, 4, 1, "", "make"], [5, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[5, 4, 1, "", "__init__"], [5, 3, 1, "", "grant"], [5, 3, 1, "", "request"], [5, 3, 1, "", "runnable"]], "transactron.testing": [[9, 0, 0, "-", "functions"], [9, 0, 0, "-", "infrastructure"], [9, 0, 0, "-", "input_generation"], [9, 0, 0, "-", "logging"], [9, 0, 0, "-", "method_mock"], [9, 0, 0, "-", "profiler"], [9, 0, 0, "-", "testbenchio"], [9, 0, 0, "-", "tick_count"]], "transactron.testing.functions": [[9, 1, 1, "", "data_const_to_dict"]], "transactron.testing.infrastructure": [[9, 2, 1, "", "PysimSimulator"], [9, 2, 1, "", "SimpleTestCircuit"], [9, 2, 1, "", "TestCaseWithSimulator"]], "transactron.testing.infrastructure.PysimSimulator": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "debug_signals"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[9, 4, 1, "", "add_mock"], [9, 3, 1, "", "dependency_manager"], [9, 4, 1, "", "fixture_initialize_testing_env"], [9, 4, 1, "", "random_wait"], [9, 4, 1, "", "random_wait_geom"], [9, 4, 1, "", "reinitialize_fixtures"], [9, 4, 1, "", "run_simulation"], [9, 4, 1, "", "tick"]], "transactron.testing.input_generation": [[9, 2, 1, "", "OpNOP"], [9, 1, 1, "", "generate_based_on_layout"], [9, 1, 1, "", "generate_method_input"], [9, 1, 1, "", "generate_nops_in_list"], [9, 1, 1, "", "generate_process_input"], [9, 1, 1, "", "generate_shrinkable_list"], [9, 1, 1, "", "insert_nops"]], "transactron.testing.logging": [[9, 1, 1, "", "make_logging_process"], [9, 1, 1, "", "parse_logging_level"]], "transactron.testing.method_mock": [[9, 2, 1, "", "MethodMock"], [9, 1, 1, "", "def_method_mock"]], "transactron.testing.method_mock.MethodMock": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "effect"], [9, 4, 1, "", "effect_process"], [9, 4, 1, "", "output_process"], [9, 4, 1, "", "validate_arguments_process"]], "transactron.testing.profiler": [[9, 1, 1, "", "profiler_process"]], "transactron.testing.testbenchio": [[9, 2, 1, "", "CallTrigger"], [9, 2, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.CallTrigger": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "call"], [9, 4, 1, "", "sample"], [9, 4, 1, "", "until_all_done"], [9, 4, 1, "", "until_done"]], "transactron.testing.testbenchio.TestbenchIO": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "call"], [9, 4, 1, "", "call_do"], [9, 4, 1, "", "call_init"], [9, 4, 1, "", "call_result"], [9, 4, 1, "", "call_try"], [9, 4, 1, "", "disable"], [9, 5, 1, "", "done"], [9, 4, 1, "", "enable"], [9, 4, 1, "", "get_call_result"], [9, 4, 1, "", "get_done"], [9, 4, 1, "", "get_outputs"], [9, 5, 1, "", "outputs"], [9, 4, 1, "", "sample_outputs"], [9, 4, 1, "", "sample_outputs_done"], [9, 4, 1, "", "sample_outputs_until_done"], [9, 4, 1, "", "set_enable"], [9, 4, 1, "", "set_inputs"]], "transactron.testing.tick_count": [[9, 2, 1, "", "TicksKey"], [9, 1, 1, "", "make_tick_count_process"]], "transactron.testing.tick_count.TicksKey": [[9, 4, 1, "", "__init__"]], "transactron.tracing": [[5, 2, 1, "", "TracingEnabler"], [5, 2, 1, "", "TracingFragment"], [5, 2, 1, "", "TracingFragmentTransformer"], [5, 2, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[5, 4, 1, "", "get"], [5, 4, 1, "", "prepare"], [5, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[5, 4, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[5, 4, 1, "", "get"]], "transactron.utils": [[11, 0, 0, "-", "amaranth_ext"], [10, 0, 0, "-", "assign"], [10, 0, 0, "-", "data_repr"], [10, 0, 0, "-", "debug_signals"], [10, 0, 0, "-", "depcache"], [10, 0, 0, "-", "dependencies"], [10, 0, 0, "-", "gen"], [10, 0, 0, "-", "idgen"], [10, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[11, 0, 0, "-", "coding"], [11, 0, 0, "-", "component_interface"], [11, 0, 0, "-", "elaboratables"], [11, 0, 0, "-", "functions"], [11, 0, 0, "-", "memory"], [11, 0, 0, "-", "shifter"]], "transactron.utils.amaranth_ext.coding": [[11, 2, 1, "", "Decoder"], [11, 2, 1, "", "Encoder"], [11, 2, 1, "", "GrayDecoder"], [11, 2, 1, "", "GrayEncoder"], [11, 2, 1, "", "PriorityDecoder"], [11, 2, 1, "", "PriorityEncoder"]], "transactron.utils.amaranth_ext.coding.Decoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.Encoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayDecoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayEncoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.PriorityEncoder": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface": [[11, 2, 1, "", "AbstractComponentInterface"], [11, 2, 1, "", "CIn"], [11, 2, 1, "", "COut"], [11, 2, 1, "", "ComponentInterface"], [11, 2, 1, "", "FlippedComponentInterface"]], "transactron.utils.amaranth_ext.component_interface.AbstractComponentInterface": [[11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.component_interface.CIn": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface.COut": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.component_interface.ComponentInterface": [[11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.component_interface.FlippedComponentInterface": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "flipped"], [11, 5, 1, "", "signature"]], "transactron.utils.amaranth_ext.elaboratables": [[11, 2, 1, "", "ModuleConnector"], [11, 2, 1, "", "MultiPriorityEncoder"], [11, 1, 1, "", "OneHotSwitch"], [11, 1, 1, "", "OneHotSwitchDynamic"], [11, 2, 1, "", "RingMultiPriorityEncoder"], [11, 2, 1, "", "RoundRobin"], [11, 2, 1, "", "Scheduler"], [11, 2, 1, "", "StableSelectingNetwork"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.MultiPriorityEncoder": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "build_tree"], [11, 4, 1, "", "create"], [11, 4, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RingMultiPriorityEncoder": [[11, 4, 1, "", "__init__"], [11, 4, 1, "", "create"], [11, 4, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.StableSelectingNetwork": [[11, 4, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[11, 1, 1, "", "const_of"], [11, 1, 1, "", "count_leading_zeros"], [11, 1, 1, "", "count_trailing_zeros"], [11, 1, 1, "", "cyclic_mask"], [11, 1, 1, "", "flatten_signals"], [11, 1, 1, "", "mod_incr"], [11, 1, 1, "", "popcount"], [11, 1, 1, "", "shape_of"]], "transactron.utils.amaranth_ext.memory": [[11, 2, 1, "", "MultiReadMemory"], [11, 2, 1, "", "MultiportILVTMemory"], [11, 2, 1, "", "MultiportXORMemory"]], "transactron.utils.amaranth_ext.memory.MultiReadMemory": [[11, 4, 1, "", "write_port"]], "transactron.utils.amaranth_ext.memory.MultiportXORMemory": [[11, 4, 1, "", "write_port"]], "transactron.utils.amaranth_ext.shifter": [[11, 1, 1, "", "generic_shift_left"], [11, 1, 1, "", "generic_shift_right"], [11, 1, 1, "", "generic_shift_vec_left"], [11, 1, 1, "", "generic_shift_vec_right"], [11, 1, 1, "", "rotate_left"], [11, 1, 1, "", "rotate_right"], [11, 1, 1, "", "rotate_vec_left"], [11, 1, 1, "", "rotate_vec_right"], [11, 1, 1, "", "shift_left"], [11, 1, 1, "", "shift_right"], [11, 1, 1, "", "shift_vec_left"], [11, 1, 1, "", "shift_vec_right"]], "transactron.utils.assign": [[10, 2, 1, "", "AssignType"], [10, 1, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[10, 3, 1, "", "ALL"], [10, 3, 1, "", "COMMON"], [10, 3, 1, "", "LHS"], [10, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[10, 1, 1, "", "align_down_to_power_of_two"], [10, 1, 1, "", "align_to_power_of_two"], [10, 1, 1, "", "average_dict_of_lists"], [10, 1, 1, "", "bits_from_int"], [10, 1, 1, "", "data_layout"], [10, 1, 1, "", "int_to_signed"], [10, 1, 1, "", "layout_subset"], [10, 1, 1, "", "make_hashable"], [10, 1, 1, "", "neg"], [10, 1, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[10, 1, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[10, 2, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "get"]], "transactron.utils.dependencies": [[10, 2, 1, "", "DependencyContext"], [10, 2, 1, "", "DependencyKey"], [10, 2, 1, "", "DependencyManager"], [10, 2, 1, "", "ListKey"], [10, 2, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "get"], [10, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[10, 3, 1, "", "cache"], [10, 4, 1, "", "combine"], [10, 3, 1, "", "empty_valid"], [10, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "add_dependency"], [10, 4, 1, "", "get_dependency"], [10, 4, 1, "", "get_optional_dependency"]], "transactron.utils.dependencies.ListKey": [[10, 4, 1, "", "combine"], [10, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[10, 4, 1, "", "combine"], [10, 3, 1, "", "default_value"]], "transactron.utils.gen": [[10, 2, 1, "", "GeneratedLog"], [10, 2, 1, "", "GenerationInfo"], [10, 2, 1, "", "MetricLocation"], [10, 1, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[10, 4, 1, "", "__init__"], [10, 3, 1, "", "fields_location"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"], [10, 3, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "decode"], [10, 4, 1, "", "encode"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 3, 1, "", "logs"], [10, 3, 1, "", "method_signals_location"], [10, 3, 1, "", "metrics_location"], [10, 3, 1, "", "profile_data"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"], [10, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[10, 4, 1, "", "__init__"], [10, 4, 1, "", "from_dict"], [10, 4, 1, "", "from_json"], [10, 3, 1, "", "regs"], [10, 4, 1, "", "schema"], [10, 4, 1, "", "to_dict"], [10, 4, 1, "", "to_json"]], "transactron.utils.idgen": [[10, 2, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[10, 4, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[10, 1, 1, "", "async_mock_def_helper"], [10, 1, 1, "", "dataclass_asdict"], [10, 1, 1, "", "def_helper"], [10, 1, 1, "", "extend_layout"], [10, 1, 1, "", "from_method_layout"], [10, 1, 1, "", "get_caller_class_name"], [10, 1, 1, "", "get_src_loc"], [10, 1, 1, "", "longest_common_prefix"], [10, 1, 1, "", "make_layout"], [10, 1, 1, "", "method_def_helper"], [10, 1, 1, "", "mock_def_helper"], [10, 1, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "transactron": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "develop": 1, "environ": 1, "set": 1, "up": 1, "run": 1, "test": [1, 9], "us": 1, "script": 1, "lint": 1, "sh": 1, "build_doc": 1, "tprof": [1, 6], "py": 1, "document": 4, "introduct": 4, "basic": 4, "usag": 4, "implement": 4, "transact": [4, 7], "method": [4, 7], "argument": 4, "pass": 4, "convent": 4, "definit": 4, "return": 4, "valu": 4, "readi": 4, "signal": 4, "The": 4, "librari": 4, "advanc": 4, "concept": 4, "special": 4, "combin": 4, "domain": 4, "schedul": [4, 7], "order": 4, "conflict": 4, "nest": 4, "packag": [5, 6, 7, 8, 9, 10, 11], "subpackag": [5, 10], "submodul": [5, 6, 7, 8, 9, 10, 11], "graph": 5, "modul": [5, 6, 7, 8, 9, 10, 11], "profil": [5, 9], "trace": 5, "content": [5, 6, 7, 8, 9, 10, 11], "cmd": 6, "core": 7, "bodi": 7, "kei": 7, "manag": 7, "sugar": 7, "tmodul": 7, "transaction_bas": 7, "lib": 8, "adapt": 8, "alloc": 8, "button": 8, "connector": 8, "depend": [8, 10], "fifo": 8, "log": [8, 9], "metric": 8, "reqr": 8, "simultan": 8, "storag": 8, "transform": 8, "function": [9, 11], "infrastructur": 9, "input_gener": 9, "method_mock": 9, "testbenchio": 9, "tick_count": 9, "util": [10, 11], "assign": 10, "data_repr": 10, "debug_sign": 10, "depcach": 10, "gen": 10, "idgen": 10, "transactron_help": 10, "amaranth_ext": 11, "code": 11, "component_interfac": 11, "elaborat": 11, "memori": 11, "shifter": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/transactions.html b/transactions.html index 06bee84..0f1fc28 100644 --- a/transactions.html +++ b/transactions.html @@ -400,7 +400,7 @@

    Transaction and method nesting

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.cmd.html b/transactron.cmd.html index 3dd16ae..c2d77cc 100644 --- a/transactron.cmd.html +++ b/transactron.cmd.html @@ -118,7 +118,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.core.html b/transactron.core.html index eb97088..1e8ff11 100644 --- a/transactron.core.html +++ b/transactron.core.html @@ -1020,7 +1020,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.html b/transactron.html index 72fd51c..133dd30 100644 --- a/transactron.html +++ b/transactron.html @@ -760,7 +760,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.lib.html b/transactron.lib.html index 784561e..f9f5c0d 100644 --- a/transactron.lib.html +++ b/transactron.lib.html @@ -2264,6 +2264,22 @@

    Submodules +
    +class transactron.lib.transformers.NonexclusiveWrapper
    +

    Bases: Elaboratable, Transformer

    +

    Nonexclusive wrapper around a method.

    +

    Useful when you can assume, for external reasons, that a given method will +never be called more than once in a given clock cycle - even when the +call graph indicates it could.

    +

    Possible use case is unifying parallel pipelines with the same latency.

    +
    +
    +__init__(target: Method)
    +
    + +
    +
    class transactron.lib.transformers.Transformer
    @@ -2333,7 +2349,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.testing.html b/transactron.testing.html index b4711dd..5760cdc 100644 --- a/transactron.testing.html +++ b/transactron.testing.html @@ -528,7 +528,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.utils.amaranth_ext.html b/transactron.utils.amaranth_ext.html index 7644200..a2d4a2c 100644 --- a/transactron.utils.amaranth_ext.html +++ b/transactron.utils.amaranth_ext.html @@ -1177,7 +1177,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.

    diff --git a/transactron.utils.html b/transactron.utils.html index 95cf3d1..55bbaa0 100644 --- a/transactron.utils.html +++ b/transactron.utils.html @@ -836,7 +836,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:20 2025-02-05. + Last updated on 17:49 2025-02-06.