Open source software LogicCircuit is a handy assistant for digital circuit and logic gate design. Originally intended for educational purposes, this free software has been expanded to medium-level practical use as well. It is used to design and simulate digital logic circuits.
The LogicCircuit interface is a blend of drag-and-drop actions and symbolic features based on a simple layout. It has two functional modes: edit mode, where you can create and edit circuits, and run mode, where you can simulate the functioning of the designed circuit. The software packs an array of functionalities that cover the essentials of a logic circuit design. We look into all these features and how they make a compact design and analysis tool for circuit developers.

Creating and editing circuits in LogicCircuit
Edit mode of the software opens with a workspace (design surface) in the middle, a toolbar with multiple options on the top and a left panel. The left panel contains all the components and parameters that can be incorporated in a circuit, while the central workspace starts up blank, where the main designing and editing can be done. Each desired component can be dragged and placed on the design surface from the panel.
Components can be moved around within the surface with a similar dragging function. The wiring in the circuit can be indicated by connecting the output point of one component to that of another with the help of your mouse. A group of elements can also be moved around together by selecting them with Ctrl key on your keyboard. To assign parameters to components, like name, bit width, description and so on, double-click each component. This will pop-up a new window enlisting all these parameters. All the above-mentioned actions can be implemented to edit existing circuits as well. Once the circuit is done, a power button becomes available on the screen, which displays how the circuit works. All the circuits created are enlisted in the left panel under Circuit Projects.
LogicCircuit can help in creating advanced circuits and sub-circuits as well. For the purpose, you can create a new circuit in the project and add input and output pins to each created circuit. The characteristics of these pins can be updated by simply double-clicking them and changing parameters in the pop-up that will show up. The different circuits can then be connected to create a complex arrangement.
Using splitters
Splitters are used in circuits to prevent the crowding up of wires. LogicCircuit enables you to do just that. To avoid too many overlapping wires and a messy circuit design, you can converge a bunch of the wires into the splitter so that the output draws one clean connection. The number of input lines to the splitter has to be inserted first. By double-clicking the splitter, parameters like bit count, pins, input or output type, and so on appear in a pop-up. All these parameters determine the splitter’s capacity. Any element including constants, input and output pins, random-access memory (RAM) and read-only memory (ROM) supports the bundles.
Inserting memories
LogicCircuit supports ROM and RAM circuits in their design. The ROM in the software comes as a circuit with one input pin, which accepts the address value of the required data, and one output pin, which points to the memory cell that corresponds to the inserted address where the data resides. ROM program can be customised by double-clicking the element. This opens the ROM data window. Here, you can update address bit-width, data bit-width and data columns that contain the data.

The number of columns are the square of the value of the address bit entered, therefore these change dynamically as per the address bit-width entered. Data cells store data in hexadecimal format. You can also load data from a pre-stored binary file.

The RAM circuit comes with three input pins and one output pin. Among the three inputs, the first pin accepts the address of the cell that will store or read data. The second pin accepts the data from the circuit at given time intervals, which will be stored in the memory cell. The third pin is the write-signal acceptor of the RAM. RAM functional properties can be edited by double-clicking the element.
RAM editor has similar parameters as ROM, like address bit-width, data bit-width and data cells. There are two more properties. ‘Write on’ property, available as a dropdown, determines when the RAM will write data into its memory. ‘On Start Fill’ sets the RAM characteristics when the circuit will be powered up and the RAM will start running. Select suitable options to determine the complete functional nature of your RAM.