This shows you the differences between two versions of the page.
gnucap:manual:tech:modelgen [2023/12/21 07:54] felixs revisit Branches and Contributions |
gnucap:manual:tech:modelgen [2023/12/21 18:02] (current) felixs more branch details |
||
---|---|---|---|
Line 31: | Line 31: | ||
In Verilog-AMS, analog behaviour is modelled in terms of controlled sources. | In Verilog-AMS, analog behaviour is modelled in terms of controlled sources. | ||
Sources of either flow or potential nature are expressed implicitly as | Sources of either flow or potential nature are expressed implicitly as | ||
- | contribution statements to branches i.e. pairs of nodes. In Gnucap these | + | contribution statements to branches. A branch basically refers to a pair of nodes, |
- | controlled sources are represented by subdevices derived from ELEMENT. | + | but details matter when it comes to named branches and switch branches. |
+ | In Gnucap these controlled sources are represented by subdevices derived from ELEMENT. | ||
It is the model compilers responsibility to identify the branches that require | It is the model compilers responsibility to identify the branches that require | ||
Line 57: | Line 58: | ||
Ultimately, disciplines need to become part of the nodes, currently they are | Ultimately, disciplines need to become part of the nodes, currently they are | ||
directly attached to the source ELEMENTs. | directly attached to the source ELEMENTs. | ||
+ | |||
+ | ==== Named Branches ==== | ||
+ | |||
+ | A named branch is an additional path between two nodes that can be a source/switch or a probe following the rules above. | ||
+ | It is implemented as an additional and independent ELEMENT, sharing the output ports. | ||
+ | |||
+ | ==== Probes ==== | ||
+ | |||
+ | A branch that has no contribution statement associated with it, but is used in an access function anywhere in the module becomes a probe branch. According to the LRM, 5.4.2.1, it's not allowed to "use" both the flow and the potential of such a branch. What it means is, | ||
+ | a flow probe cannot co-exist with a potential probe (on the same probe branch) within the same module, regardless of the use. | ||
+ | There is no ELEMENT instanciated for a potential probe branch. A flow probe branch requires one, as it works similar to a | ||
+ | zero-potential source. | ||
==== Computing Partial Derivatives ==== | ==== Computing Partial Derivatives ==== |