@@ -76,16 +76,15 @@ design.
7676PyRTL Classes:
7777--------------
7878
79- Perhaps the most important class to understand is :class: `.WireVector `, which
80- is the basic type from which you build all hardware. If you are coming to
81- PyRTL from Verilog, a :class: `.WireVector ` is closest to a multi-bit `wire `.
82- Every new :class: `.WireVector ` builds a set of wires which you can then connect
83- with other :class: `.WireVector ` through overloaded operations such as
84- `addition ` or `bitwise or `. A bunch of other related classes, including
85- :class: `.Input `, :class: `.Output `, :class: `.Const `, and :class: `.Register ` are
86- all derived from :class: `.WireVector `. Coupled with :class: `.MemBlock ` (and
87- :class: `.RomBlock `), this is all a user needs to create a functional hardware
88- design.
79+ Perhaps the most important class to understand is :class: `.WireVector `, which is the
80+ basic type from which you build all hardware. If you are coming to PyRTL from Verilog, a
81+ :class: `.WireVector ` is closest to a multi-bit `wire `. Every new :class: `.WireVector `
82+ builds a set of wires which you can then connect with other :class: `.WireVector ` through
83+ overloaded operations such as :meth: `~.WireVector.__add__ ` or
84+ :meth: `~.WireVector.__or__ `. A bunch of other related classes, including
85+ :class: `.Input `, :class: `.Output `, :class: `.Const `, and :class: `.Register ` are all
86+ derived from :class: `.WireVector `. Coupled with :class: `.MemBlock ` (and
87+ :class: `.RomBlock `), this is all a user needs to create a functional hardware design.
8988
9089.. inheritance-diagram :: pyrtl.wire.WireVector
9190 pyrtl.wire.Input
@@ -134,15 +133,20 @@ which we are implicitly working. Hardware transforms may make a new
134133Errors
135134^^^^^^
136135
137- Finally, when things go wrong you may hit on one of two ``Exceptions ``, neither
138- of which is likely recoverable automatically (which is why we limited them to
139- only two). The intention is that ``PyrtlError `` is intended to capture end
140- user errors such as invalid constant strings and mis-matched bitwidths. In
141- contrast, ``PyrtlInternalError `` captures internal invariants and assertions
142- over the core logic graph which should never be hit when constructing designs
143- in the normal ways. If you hit a confusing ``PyrtlError `` or any
144- ``PyrtlInternalError `` feel free to file an issue.
136+ Finally, when things go wrong you may hit an :class: `Exception `, neither of which is
137+ likely recoverable automatically (which is why we limited them to only two). The
138+ intention is that :class: `.PyrtlError ` is intended to capture end user errors such as
139+ invalid constant strings and mis-matched bitwidths. In contrast,
140+ :class: `.PyrtlInternalError ` captures internal invariants and assertions over the core
141+ logic graph which should never be encountered when constructing designs in the normal
142+ ways. If you hit a confusing :class: `.PyrtlError ` or any :class: `.PyrtlInternalError `
143+ feel free to file an issue.
144+
145+ .. autoclass :: pyrtl.pyrtlexceptions.PyrtlError
146+ :members:
145147
148+ .. autoclass :: pyrtl.pyrtlexceptions.PyrtlInternalError
149+ :members:
146150
147151Reference Guide
148152===============
0 commit comments