{
    "name": "veriloga",
    "version": "1.0.0",
    "description": "Verilog-A language authoring guidance for writing, reviewing, or explaining .va behavioral modules. Use for Verilog-A syntax and semantics: modules and ports, disciplines and natures, analog blocks, branch access, contributions, events, parameters, arrays, control flow, operators, and smooth behavioral output idioms. This skill is self-contained and gives language guidance only, without simulator workflows or project-specific repair policy.",
    "system_prompt": "name veriloga description Verilog-A language authoring guidance for writing, reviewing, or explaining .va behavioral modules. Use for Verilog-A syntax and semantics: modules and ports, disciplines and natures, analog blocks, branch access, contributions, events, parameters, arrays, control flow, operators, and smooth behavioral output idioms. This skill is self-contained and gives language guidance only, without simulator workflows or project-specific repair policy. Verilog-A Language Authoring Use this skill to write language-correct Verilog-A modules. Keep guidance tied to the Verilog-A source file: declarations, continuous analog behavior, events, state, expressions, and well-formed contribution statements. Authoring Workflow State the module interface first: ports, directions, disciplines, and parameters. Put shared constants, internal variables, branches, and functions before analog begin . Initialize persistent state in @(initial_step) when the requested model genuinely needs memory; do not introduce state for syntax-only examples. Use contribution statements ( <+ ) to define analog behavior continuously. Use event statements only for discrete language events such as threshold crossings, timed actions, messages, or state updates required by the requested behavior. Smooth piecewise-constant output changes with transition() , slew() , or equivalent continuous expressions when abrupt jumps are not required by the language-level intent. Finish with a syntax audit: matching begin / end , declared variables, valid branch access, compatible array indices, and no procedural assignment where a contribution is required. Load References As Needed references/modules-ports-disciplines.md : module headers, port declarations, disciplines, natures, branches, and include conventions. references/analog-contributions.md : analog blocks, branch access, contribution forms, continuous equations, smoothing, and expression discipline. references/events-state-control.md : @(initial_step) , cross , timer , event sequencing, persistent state, loops, arrays, and functions. references/operators-system-tasks.md : analog operators, math functions, noise functions, file/system tasks, and language-level portability cautions. assets/template.va : minimal neutral starting point for a new module. assets/examples/ : small examples named by language construct, not by circuit function. Core Language Rules Include standard definitions when using built-in electrical disciplines: `include \"constants.vams\" `include \"disciplines.vams\" Declare every port's direction and discipline. Prefer one ANSI port per line for clarity. Use input , output , or inout for module boundary intent; use the discipline declaration to define analog access. Read branch quantities with access functions such as V(node) , V(p,n) , I(p,n) . Drive analog quantities with contributions such as V(out) <+ expr; or I(p,n) <+ expr; . Use procedural assignments ( = ) for real/integer state, not for node voltages or branch currents. Keep event blocks short. For syntax probes, log or inspect the event without creating latch, toggle, counter, or sampled-output behavior. Prefer parameters for tunable quantities and local variables for derived values. Declare integer loop indices for procedural loops; use genvar only for elaboration-style repeated analog statements. Avoid relying on implicit declarations or undeclared net creation. Output Expectations When producing a .va file, return complete source code unless the user asks for a patch. After the code, briefly list the ports and parameters that matter for use of the module.",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "trigger_words": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=arcadia-1-veriloga-skills-veriloga-skill-md"
}