DVT SystemVerilog IDE User Guide
Rev. 24.2.25, 31 October 2024

9.6.4 Predefined Snippets

AI Assistant provides a library of prompt snippets with different intents:

  • Structured information from DVT’s database.

  • Specific code sections from your project.

  • Reusable instructions for the LLM.

Snippets are presented with their full syntax and options. Snippet parts starting with a vertical bar ‘|’ are optional.

@language

  • Languages used in the code selection or in the project (e.g. SystemVerilog, VHDL).

@selected <type:...> | wrap between <prefix:string> <suffix:string>

  • Type options: code, file, container, element, action_block, method, port_list, class, module, interface, package, entity, architecture, configuration.

  • Code sections based on the editor selection or cursor position.

  • The selection will be adjusted to represent the specified type (e.g. the method where the cursor is placed, the entire class or module or the full content of the file).

@usages of selected element | limit to <max:number> | separate with <separator:string> | wrap between <prefix:string> <suffix:string>

@usages of <sym:symbol> | limit to <max:number> | separate with <separator:string> | wrap between <prefix:string> <suffix:string>

  • Code sections with context and the usages of the selected element or specified #symbol.

  • By default, 5 usages will be collected from your project, use limit to <max:number> to change this number.

@examples of <type:...> | limit to <max:number> | separate with <separator:string> | wrap between <prefix:string> <suffix:string>

  • Type options: uvm_agent, uvm_component, uvm_driver, uvm_env, uvm_mem, uvm_monitor, uvm_object, uvm_reg, uvm_reg_adapter, uvm_reg_backdoor, uvm_reg_block, uvm_reg_field, uvm_reg_fifo, uvm_reg_file, uvm_reg_frontdoor, uvm_reg_map, uvm_reg_predictor, uvm_reg_sequence, uvm_scoreboard, uvm_sequence, uvm_sequence_item, uvm_sequencer, uvm_test.

  • Code sections with classes implementing the specified UVM component.

  • By default, 5 examples will be collected from your project, use limit to <max:number> to change this number.

@outline of selected <type:...>

@outline of <symbol:symbol>

  • Type options: file, element, container.

  • Tree structured outline of the selected file/element/container (based on the editor selection or cursor position) or of the specified #symbol.

  • Useful for providing summarized information about specific parts of the project without sending the full source code.

@recent code sections | limit to <max:number> | separate with <separator:string> | wrap between <prefix:string> <suffix:string>

@recent code sections from open editors | limit to <max:number> | separate with <separator:string> | wrap between <prefix:string> <suffix:string>

  • Recently visited code sections from any file or restricted to the currently opened editors.

  • Useful for providing information about the current task based on the code sections recently visited.

  • By default, the last 5 code sections will be provided, use limit to <max:number> to change this number.

@design hierarchy | expand up <up_levels:number> | expand down <down_levels:number>

@verification hierarchy | expand up <up_levels:number> | expand down <down_levels:number>

  • Tree structure representation of the design or verification hierarchy starting from the current editor scope.

@replicate selected pattern <N:number> times

  • Reusable task asking the LLM to replicate the currently selected code pattern N times.

  • Useful for generating repetitive sections of code that follow a pattern (e.g. 1 2 3 … ).

@reply only with code

  • Reusable instruction asking the LLM to reply only with valid code in the language of current code selection or project. It also forbids the LLM to use markdown to format its reply.

  • Useful in editor sessions that redirect the replies to the editor.