# pcb-rnd User Manual: Appendix

## config subtree: plugins/sim/setups

The sim/setups subtree describes one or more high level simulation setups In a project.lht, the subtree is typically placed like this:

    ha:coraleda-project-v1 {
     li:sch-rnd-conf-v1 {
      ha:overwrite {
       ha:plugins {
        ha:sim {
         li:setups {
         (subtree described in this document)
         }
        }
       }
      }
     }
    }

Note: in this document italic marks variable, user assigned data. The format is case sensitive.

The setups list contains one or more hash nodes, each describing a simulation setup. The name of the node is the name of the simulation setup. The overall structure of a simulation setup hash node is:

    ha:name {
     test_bench = bench_name
     li:mods {
      (mods subtree)
     }
     li:output {
      (output subtree)
     }
    }

### the mods subtree

The mods subtree contains one or more modifications, each is a hash node with its name determinign what kind of modification is done; thus the name must be one of the predefined modifications, e.g. add.

Example modifications:

    ha:edit_attr {
     type = comp
     name = R2
     key = blobb
     value = hello
    }
    ha:omit {
     type = comp
     name = R3
    }
    ha:disconn {
     comp = R12
     port = 1
    }
    ha:add {
     device = V
     ac_value = 3.3
     value = 0.2
     name = V3
     tdf = pulse
     pos = R1-1
     neg = R2-2
     ha:tdf_params {
      V1 = 0.2
      V2 = 0.8
      TD = 4
     }
    }

#### edit_attr

Type is either comp, port or net and specifies the type of the target object in the abstract model to edit. Name is the address of the object: for comp(onent) and net(work) it's the name of the object, for port it's componetname-portname. Key is the attribute key to edit, value is the new value of the attribute. If the attribute doesn't exist, it is created.

#### omit

Mark a component or network omitting. Type is the same as in edit_attr, but shall be either comp or port. Name is the same as in edit_attr. A component or network omitted means it is not exported (and this is visually indicated on the sheet).

#### disconn

Disconnect a port from its net; comp specifies the name of the component, port specifies the name of the port.

#### add

Add a new component to the abstract model. Name is optional; when not specified, it is autogenerated. Using an explicit name is useful when the component needs to be referneced, e.g. in some of the analysis for feeding in the test signal.

pos and neg are the address (network name or comp-port name) of the positive and negative port connection of the new component. If neg is not specified, GND is assumed.

The device field is the name of the device type to add, e.g. V for voltage source; see the device types list. That table also specifies whether ac_value and tdf may be used.

The value field is the DC value for sources or the component value for passives. When available (e.g. for sources), ac_value is the optional AC component, which also identifies which source is used for feeding in AC signal.

Some component types permit using time-dependant-functions (TDF). For those, the type of the tdf can be specified in the tdf field and parameters of the tdf specified in the ha:tdf_params subtree. If no tdf field is specified, it is assumed to be none.