Auto Signal Waveform
An Auto signal waveform is automatically drawn for you, as a repeated pattern.
As opposed to a Signal waveform, it is not made of individually editable segments.
Add a new Auto signal waveform row
Menu: Add | Auto signal
Shortcut: Alt+A
This will create a new row with the Auto signal's name on the left, and a waveform on the right. The row can then be moved up and down, edited, duplicated, copied to the clipboard and deleted (see row operations).
Superscript/Subscript
Waveform name and label text can include superscript and subscript portions, e.g.:
Clk""Active Low""
D..@..
Superscript text is surrounded by a pair of quotation marks, and subscript text is surrounded by a pair of dots.
Waveform name
- "Show name" lets you either show or hide the waveform's name.
- A set of options - font, font size, font color, font background color, and name alignment - lets you customize how the name is displayed. Name alignment, horizontal and vertical, is relative to the waveform name region.
The initial values of this set come from the Waveform options dialog (Diagram | Waveform options). If you want this set's values to ALWAYS match those in Waveform options dialog, select "Use default options". Otherwise, uncheck the box to individually customize each of these options.
Auto signal parts
An Auto signal has three distinct parts, all of which are optional:
A first segment, followed by one or more series of auto-generated segments, followed by a last segment.
High and Low value colors are set in the Waveform options dialog (Diagram | Waveform options).
Let's look at each of these parts more closely.
First segment:
An Auto signal can start with a first segment level (H or L), that transitions into a series of auto-generated segments. The "First segment level value" is defined, by the starting value of the first auto-generated segment, "First auto segment starts with value". If the "First auto segment starts with value" is either L or LH, the "First segment level value" is L, otherwise it is H.
Auto-generated segments:
A series starts with the "First auto segment starts with value" (L, LH, H or HL).
Each auto-generated segment is made of 4 parts, where each can be zero units wide.
If the "First auto segment starts with value" is a level (L or H), the 4 parts are:
Level, transition, level, transition.
Otherwise, if the "First auto segment starts with value" is a transition (LH or HL), the 4 parts are:
Transition, level, transition, level.
If "Draw auto segments until end of waveform" is selected, the series of auto-generated segments continues until the end of the ruler.
If "Draw auto segments until end of waveform" is not selected, the user needs to indicate the desired "Number of auto segments" in a series. The user can also select to insert a gap segment between every two auto generated series. The "Gap segment level value" is defined based on the "First auto segment starts with value", similarly to how "First segment level value" is defined. And finally, after all the auto-generated series end, a last segment level is drawn.
Here's an example:
Setting the following,
"Draw auto segments until end of waveform" deselected,
"Number of auto segments" = 5, and
"Number of gap segments" = 0,
will create a single series of 5 auto segments, followed by a last segment.
If we then set
"Number of gap segments" = 1,
it will create 2 series of 5 auto segments, with a gap segment between the the 2 series, followed by a last segment.
Last segment:
The last segment is only drawn if "Draw auto segments until end of waveform" is deselected.
The "Last segment value" is defined based on the "First auto segment starts with value", similarly to how "First segment level value" is defined.
The last segment is drawn after all the auto generated segment series end, until the end of the ruler.
Best effort drawing:
The various parts of the Auto signal are drawn progressively, space permitting.
Waveme attempts to draw the first segment, followed by all the auto generated segment series, and finally the last segment. Drawing stops at the end of the ruler, which might be too short to show all the waveform's parts. In that case, either make the waveform shorter or the ruler longer.
Auto segment label
You can select to display an auto generated numeric label, within the level part of each auto generated segment (excluding gap segments).
Use the character @ as a stand-in for the numeric value.
If you want the label to include the @ character, you'll need to escape it with the \ character: \@.
And, the @ character can be surrounded by other text, and all text can be used with postscript and subscript notation.
For example:
Label text, D@, that starts at 0 and increments by 1, will create auto labels: D0, D1, D2, ...
Label text, D\@@, with the same settings, will create auto labels: D@0, D@1, D@2, ...
Label display:
- "Show label in level" lets you show or hide all segment labels.
- Select which auto segment levels (high, low or both) show labels.
- A set of options - font, font size, font color, font background color, and label alignment - lets you customize how segment labels are displayed. Label alignment, horizontal and vertical, is relative to the level part of an auto generated segment.
The initial values of this set come from the Waveform options dialog (Diagram | Waveform options). If you want this set's values to ALWAYS match those in Waveform options dialog, select "Use default options". Otherwise, uncheck the box to individually customize each of these options.
- Define numeric label value base (Binary, decimal or Hex), start and wrap around values, and progression (increment or decrement).
Label numeric value:
Select
- The numeric base (Binary, Decimal or Hex);
- Whether to show base prefix (Binary is b, and Hex is 0x); and
- The minimum number of characters in a displayed value (Binary and Hex only). If a value doesn't require as many characters, zero (0) is used as a filler.
To set counting, select
- The "Initial value", which is the numeric value of the very first label;
- By how much a value changes from one label to the next, (increment or decrement);
- The value beyond which a value is wrapped around, instead of continuing to progress as before.
Note: Setting the wrap around value to zero (0) with an increment, will NOT wrap around numeric values; and
- The wrapped around value (allowing you to wrap around to a value that is different than the "Initial value").
For example:
Setting initial value to 4, increment by 2, and wrap around value 0, will show the numeric values:
4, 6, 8, 10, 12, 14, ... and will not wrap around.
Same settings with wrap around set to 10, and wrapped around initial value of 0, will show the numeric values:
4, 6, 8, 10, 0, 2, 4, 6, 8, 10, 0, 2, 4, 6, 8, 10, 0, ...
As opposed to a Signal waveform, it is not made of individually editable segments.
Add a new Auto signal waveform row
Menu: Add | Auto signal
Shortcut: Alt+A
This will create a new row with the Auto signal's name on the left, and a waveform on the right. The row can then be moved up and down, edited, duplicated, copied to the clipboard and deleted (see row operations).
Superscript/Subscript
Waveform name and label text can include superscript and subscript portions, e.g.:
Clk""Active Low""
D..@..
Superscript text is surrounded by a pair of quotation marks, and subscript text is surrounded by a pair of dots.
Waveform name
- "Show name" lets you either show or hide the waveform's name.
- A set of options - font, font size, font color, font background color, and name alignment - lets you customize how the name is displayed. Name alignment, horizontal and vertical, is relative to the waveform name region.
The initial values of this set come from the Waveform options dialog (Diagram | Waveform options). If you want this set's values to ALWAYS match those in Waveform options dialog, select "Use default options". Otherwise, uncheck the box to individually customize each of these options.
Auto signal parts
An Auto signal has three distinct parts, all of which are optional:
A first segment, followed by one or more series of auto-generated segments, followed by a last segment.
High and Low value colors are set in the Waveform options dialog (Diagram | Waveform options).
Let's look at each of these parts more closely.
First segment:
An Auto signal can start with a first segment level (H or L), that transitions into a series of auto-generated segments. The "First segment level value" is defined, by the starting value of the first auto-generated segment, "First auto segment starts with value". If the "First auto segment starts with value" is either L or LH, the "First segment level value" is L, otherwise it is H.
Auto-generated segments:
A series starts with the "First auto segment starts with value" (L, LH, H or HL).
Each auto-generated segment is made of 4 parts, where each can be zero units wide.
If the "First auto segment starts with value" is a level (L or H), the 4 parts are:
Level, transition, level, transition.
Otherwise, if the "First auto segment starts with value" is a transition (LH or HL), the 4 parts are:
Transition, level, transition, level.
If "Draw auto segments until end of waveform" is selected, the series of auto-generated segments continues until the end of the ruler.
If "Draw auto segments until end of waveform" is not selected, the user needs to indicate the desired "Number of auto segments" in a series. The user can also select to insert a gap segment between every two auto generated series. The "Gap segment level value" is defined based on the "First auto segment starts with value", similarly to how "First segment level value" is defined. And finally, after all the auto-generated series end, a last segment level is drawn.
Here's an example:
Setting the following,
"Draw auto segments until end of waveform" deselected,
"Number of auto segments" = 5, and
"Number of gap segments" = 0,
will create a single series of 5 auto segments, followed by a last segment.
If we then set
"Number of gap segments" = 1,
it will create 2 series of 5 auto segments, with a gap segment between the the 2 series, followed by a last segment.
Last segment:
The last segment is only drawn if "Draw auto segments until end of waveform" is deselected.
The "Last segment value" is defined based on the "First auto segment starts with value", similarly to how "First segment level value" is defined.
The last segment is drawn after all the auto generated segment series end, until the end of the ruler.
Best effort drawing:
The various parts of the Auto signal are drawn progressively, space permitting.
Waveme attempts to draw the first segment, followed by all the auto generated segment series, and finally the last segment. Drawing stops at the end of the ruler, which might be too short to show all the waveform's parts. In that case, either make the waveform shorter or the ruler longer.
Auto segment label
You can select to display an auto generated numeric label, within the level part of each auto generated segment (excluding gap segments).
Use the character @ as a stand-in for the numeric value.
If you want the label to include the @ character, you'll need to escape it with the \ character: \@.
And, the @ character can be surrounded by other text, and all text can be used with postscript and subscript notation.
For example:
Label text, D@, that starts at 0 and increments by 1, will create auto labels: D0, D1, D2, ...
Label text, D\@@, with the same settings, will create auto labels: D@0, D@1, D@2, ...
Label display:
- "Show label in level" lets you show or hide all segment labels.
- Select which auto segment levels (high, low or both) show labels.
- A set of options - font, font size, font color, font background color, and label alignment - lets you customize how segment labels are displayed. Label alignment, horizontal and vertical, is relative to the level part of an auto generated segment.
The initial values of this set come from the Waveform options dialog (Diagram | Waveform options). If you want this set's values to ALWAYS match those in Waveform options dialog, select "Use default options". Otherwise, uncheck the box to individually customize each of these options.
- Define numeric label value base (Binary, decimal or Hex), start and wrap around values, and progression (increment or decrement).
Label numeric value:
Select
- The numeric base (Binary, Decimal or Hex);
- Whether to show base prefix (Binary is b, and Hex is 0x); and
- The minimum number of characters in a displayed value (Binary and Hex only). If a value doesn't require as many characters, zero (0) is used as a filler.
To set counting, select
- The "Initial value", which is the numeric value of the very first label;
- By how much a value changes from one label to the next, (increment or decrement);
- The value beyond which a value is wrapped around, instead of continuing to progress as before.
Note: Setting the wrap around value to zero (0) with an increment, will NOT wrap around numeric values; and
- The wrapped around value (allowing you to wrap around to a value that is different than the "Initial value").
For example:
Setting initial value to 4, increment by 2, and wrap around value 0, will show the numeric values:
4, 6, 8, 10, 12, 14, ... and will not wrap around.
Same settings with wrap around set to 10, and wrapped around initial value of 0, will show the numeric values:
4, 6, 8, 10, 0, 2, 4, 6, 8, 10, 0, 2, 4, 6, 8, 10, 0, ...