Unified Modeling Language (UML) is a standardized graphical design language that is widely used in the software industry to model software systems. UML2HDL is a UML implementation that is designed to enable hardware designers to utilize the popular UML standard to model hardware designs, and to generate either Verilogi.e. Hardware description language. orVHDLi.e. Very High-Speed Integrated Circuit Hardware Description Language. directly from this model.
A document consists of a hierarchy of UML Object Diagrams, or UML StateCharts. A UML Object Diagram is always the top level diagram with the default name of "Top". All of the UML Diagrams in a document are shown as tabs at the bottom of the large diagram editor panel in the middle of the screen.
|
To create a new Diagram: |
1. |
select one of the New Diagram icons at the left of the toolbar, or right click in the tabs area of the main editor panel; |
2. |
New Diagrams are assigned a default name but a new, more meaningful name, should be assigned by the user by right-clicking on the Diagrams tab. Diagram names must be unique within a document. |
A UML Object represents a single instantiation of a generalized UML Class. A UML Object Diagram incorporates one or more UML Objects and the links between them. AUML StateChart is a graphical specification of a state machine.
UML Classes are generalized components that may be instantiated as objects on a UML Object Diagram. The "UML Classes" tab in the Palette panel at the top right of the UML2HDL screen lists the basic UML Classes available to create UML Objects on the Object Diagram. Hovering over a name of one of the UML Classes will cause a sample of the UML Object symbol to be displayed.
A UmlObject is instantiated by dragging the name of a UML Class from the UML Class tab to the UML Object Diagram Drawing area. A default name is assigned to the UML Object, but it should be changed to a descriptive name using the Properties Editor in the lower right corner of the display. UmlObject names must be unique within their Diagram. The UML Object symbol displayed on the Object Diagram follows the UML standard for Object Diagrams. The top line shows the Object's name and it's Class name in the format "ObjectName:ClassName". The Object tab in the Properties panel at the lower right side of the UML2HDL screen displays the properties of a selectedUML Object, and allows the user to change these properties. Each Object also has other properties that can be modified to specify the behavior of the object. Tagged Values are used to specify these properties. The UML standard specifies that tagged values appear inside { braces }. The tag is the name of the property and the value assigned to the tag appears after an equals sign. For instance the {Clear = UnUsed} tagged value displayed in the Counter object symbol indicates that the tagged value named "Clear" is assigned the value of "UnUsed". This could be changed by selecting the value in the properties editor and selecting "Async" or "Sync". This would result in a Counter that supported an asynchronous or synchronous clear.
UML Attributes of an object maintain the information associated with the object. They represent the variable values of the object. Attributes are shown in a UML Objectsymbol after the first horizontal line.
UML Stereotypes provide a way to specify new elements based on existing UML elements. UML Stereotypes are surrounded by guillemets as <<Outputs>>. In HDL design the Attributes of an Object may need to be read by the rest of the design. The UML Attributes, or variable values, of an UML2HDL object are therefore stereotyped as<<Outputs>>.
UMLObjects perform computational operations. Operations are defined in UML by a method name and the parameters that are necessary to perform the operation. Hardware UMLObjects generally perform a single operation, so the method performed by the UMLObject is assumed, but the parameters are still critical.
The parameters necessary to perform the UMLObjects specific operation are critical and, in UML2HDL are these input parameters are stereotyped as <<Inputs>>.
In UML the associations between different objects are named "Links". These links specify the interconnection between the <<Outputs>> and the <<Inputs>> of the objects of the design. In HDL design each input can only be connected to a single output, so the design interconnectivity can be specified by ensuring that each input is connected to a particular output. The <<Link>> associated with each <<Input>> depicts this connection.
When modeling links between inputs and outputs it is often desirable to combine two or more outputs in a logical combination, such as outputA and outputB. This could be done by creating a separate UML Object for this purpose, but in order to simplify the model, UML2HDL allows a link to be defined as an expression, or logical combination of output signals. These expressions are expressed using the logical operators supported by the selected HDL. So the <<Link>> associated with an output can be an expression such as: "outA:objA:diagA && outB:objA:diagA". When an particular input is selected in the UmlObject Properties Editor, the Expression Editor is presented to the user to enter the expression for this input's Links.
The Expression Editor includes a tree that displays the outputs of the current document. To avoid manually typing in the output names, the user can select one of the outputs from the tree and it will be automatically included in the expression being edited. A shortcut method is also available to enter links that consist of only one output. If a UmlObject is selected in the main edit window, it's Properties Editor will be shown in the Properties frame in the lower right side of the display. The Object's inputs will be listed at the end of the properties, and it may be necessary to scroll to ensure that they are visible.
The Navigator frame at the lower left of the display shows a tree of all of the diagrams in the document, and can be expanded to show the objects in each diagram. The objects can also be expanded to display their outputs. If one of these outputs is selected, and dragged to the name of an input in the Object Properties Editor, then the output will be assigned as the inputs link.
Accessibility of UML attributes and operations is modeled with UML2HDL with the standard UML symbols of "+" for public (available anywhere in the document), and "-" for private (available only within the current diagram) access. The visibility symbol precedes the name of the input or output. UML2HDL introduces a stereotype visibility of "*" to indicate that a signal is to be connected to an input, output, or inout pad of the hardware device being modeled.
Visibility for inputs and outputs is set by the user using the Object Properties Editor. The assigned visibility symbol is shown after the input or output name in the properties editor. If this symbol is selected by the user, the values can be toggled to select the desired value.