Class

CircuitElement

CircuitElement(x, y, scope, dir, bitWidth)

Base class for circuit elements.
Constructor

# new CircuitElement(x, y, scope, dir, bitWidth)

Parameters:
Name Type Description
x number x coordinate of the element
y number y coordinate of the element
scope Scope The circuit on which circuit element is being drawn
dir string The direction of circuit element
bitWidth number the number of bits per node.

View Source circuitElement.js, line 23

Methods

# absX(x) → {number}

Function to get absolute value of x coordinate of the element
Parameters:
Name Type Description
x number value of x coordinate of the element

View Source circuitElement.js, line 96

- absolute value of x
number

# absY(y) → {number}

Function to get absolute value of y coordinate of the element
Parameters:
Name Type Description
y number value of y coordinate of the element

View Source circuitElement.js, line 105

- absolute value of y
number

# baseSetup()

adds the element to scopeList

View Source circuitElement.js, line 112

# changePropagationDelay(delay)

Method to change object delay OVERRIDE if necessary
Parameters:
Name Type Description
delay number new delay

View Source circuitElement.js, line 719

# checkHover() → {boolean}

check hover over the element

View Source circuitElement.js, line 186

boolean

# cleanDelete()

method to delete object OVERRIDE WITH CAUTION

View Source circuitElement.js, line 646

# copyFrom(obj)

Function to copy the circuit element obj to a new circuit element
Parameters:
Name Type Description
obj CircuitElement element to be copied from

View Source circuitElement.js, line 120

# customSave() → {JSON}

Always overriden

View Source circuitElement.js, line 174

- the data to be saved
JSON

# deleteNodes()

Helper Function to delete the element and all the node attached to it.

View Source circuitElement.js, line 654

# drag()

Helper Function to drag element to a new position

View Source circuitElement.js, line 252

# draw()

Method that draws the outline of the module and calls draw function on module Nodes. NOT OVERRIDABLE

View Source circuitElement.js, line 501

# drawLayoutMode(xOffset, yOffset)

Draws element in layout mode (inside the subcircuit)
Parameters:
Name Type Default Description
xOffset number 0 x position of the subcircuit
yOffset number 0 y position of the subcircuit Called by subcirucit.js/customDraw() - for drawing as a part of another circuit and layoutMode.js/renderLayout() - for drawing in layoutMode

View Source circuitElement.js, line 584

# fixDirection()

Helper Function to correct the direction of element

View Source circuitElement.js, line 427

# flipBits(val) → {number}

Function to flip bits
Parameters:
Name Type Description
val number the value of flipped bits

View Source circuitElement.js, line 87

- The number of flipped bits
number

# generateVerilog() → {JSON}

Helper Function to generate verilog

View Source circuitElement.js, line 840

JSON

# isHover()

The isHover method is used to check if the mouse is hovering over the object. Return Value: true if mouse is hovering over object else false NOT OVERRIDABLE

View Source circuitElement.js, line 437

# isResolvable() → {boolean}

Method to check if object can be resolved OVERRIDE if necessary

View Source circuitElement.js, line 694

boolean

# isVerilogResolvable() → {boolean}

Helper Function to check if verilog resolvable

View Source circuitElement.js, line 767

boolean

# layoutUpdate()

Used to update the state of the elements inside the subcircuit in layout mode Return Value: true if the state has changed, false otherwise

View Source circuitElement.js, line 359

# newBitWidth(bitWidth)

Method to change object Bitwidth OVERRIDE if necessary
Parameters:
Name Type Description
bitWidth number new bitwidth

View Source circuitElement.js, line 706

# newDirection(dir)

method to change direction OVERRIDE WITH CAUTION
Parameters:
Name Type Description
dir string new direction

View Source circuitElement.js, line 663

# newLabelDirection(dir)

Helper Function to change label direction of the element.
Parameters:
Name Type Description
dir string new direction

View Source circuitElement.js, line 684

# processVerilog()

Helper Function to process verilog

View Source circuitElement.js, line 739

# removePropagation()

Helper Function to remove proporgation.

View Source circuitElement.js, line 792

# resolve()

Dummy resolve function OVERRIDE if necessary

View Source circuitElement.js, line 732

# saveObject() → {JSON}

To generate JSON-safe data that can be loaded

View Source circuitElement.js, line 152

- the data to be saved
JSON

# setDimensions(w, h)

This sets the width and height of the element if its rectangular and the reference point is at the center of the object. width and height define the X and Y distance from the center. Effectively HALF the actual width and height. NOT OVERRIDABLE
Parameters:
Name Type Description
w number width
h number height

View Source circuitElement.js, line 214

# setHeight(h)

Parameters:
Name Type Description
h number height

View Source circuitElement.js, line 230

# setLabel(label)

Helper Function to set label of an element.
Parameters:
Name Type Description
label string the label for element

View Source circuitElement.js, line 493

# setOutputsUpstream()

Sets isValueUpstream for all output nodes of the element.

View Source circuitElement.js, line 807

# setWidth(w)

Parameters:
Name Type Description
w number width

View Source circuitElement.js, line 223

# startDragging()

Helper Function to drag element to a new position

View Source circuitElement.js, line 237

# toggleLabelInLayoutMode()

Toggles the visibility of the labels of subcircuit elements. Called by event handlers in ux.js

View Source circuitElement.js, line 866

# update()

The update method is used to change the parameters of the object on mouse click and hover. Return Value: true if state has changed else false NOT OVERRIDABLE

View Source circuitElement.js, line 268

# updateScope(scope)

Function to update the scope when a new element is added.
Parameters:
Name Type Description
scope Scope the circuit in which we add element

View Source circuitElement.js, line 142

# verilogName() → {string}

Helper Function to name the verilog.

View Source circuitElement.js, line 819

string