Click here to Skip to main content
15,867,488 members
Articles / Web Development / HTML

Circuit Engine

Rate me:
Please Sign up or sign in to vote.
4.93/5 (103 votes)
18 Oct 2018GPL355 min read 247.2K   8.6K   212  
A System for Simulation and Analysis of Logic Circuits
(i)(CEngine): Creating source level (V&G)....
(i)(CircuitElement CE_NONAME.0): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.0): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.0): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.0): Renaming...
(i)(CircuitElement Source(V&G).0): New name is OK.
(i)(Gate):(Type[Voltage],NofInputs[0],OutAsLeg[0])::SetProps.() : properties OK.
(i)(Gate):(Type[Ground],NofInputs[0],OutAsLeg[0])::SetProps.() : properties OK.
(c)(CEngine): CE Empty:Source(V&G) is added into circuit.
(c)(CEngine): File is reading now (.\async1\ASYNC1~1.cec)....
(c)(CEngine): File ID is OK, the Circuit is Loading....
(c)(CEngine): Setting up the BreadBoard information....
Initializing BreadBoard Node Table(r20,c4)...
BreadBoard Node Table is ready.
Initializing BreadBoard Node Map Table(h5)...
BreadBoard Node Map Table is ready.
(c)(CEngine): BreadBoard is ready..
(i)(CircuitElement CE_NONAME.1): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.1): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.1): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.1): Renaming...
(i)(CircuitElement Asyncronous_test1.1): New name is OK.
(i)(CircuitElement Asyncronous_test1.1): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[1])::SetProps.() : properties OK.
(i)(CircuitElement Asyncronous_test1.1): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[2])::SetProps.() : properties OK.
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[3])::SetProps.() : properties OK.
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[4])::SetProps.() : properties OK.
(i)(Gate):(Type[NAND],NofInputs[2],OutAsLeg[0])::SetProps.() : properties OK.
(i)(Gate):(Type[AND],NofInputs[2],OutAsLeg[6])::SetProps.() : properties OK.
(c)(CEngine): CE CHIP:Asyncronous_test1 is added into circuit.
(i)(CircuitElement CE_NONAME.2): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.2): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.2): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.2): Renaming...
(i)(CircuitElement .2): New name is OK.
(i)(CircuitElement .2): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[2])::SetProps.() : properties OK.
(i)(CircuitElement .2): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .2): Renaming...
(i)(CircuitElement CABLE.2): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.3): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.3): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.3): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.3): Renaming...
(i)(CircuitElement .3): New name is OK.
(i)(CircuitElement .3): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[2])::SetProps.() : properties OK.
(i)(CircuitElement .3): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .3): Renaming...
(i)(CircuitElement CABLE.3): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.4): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.4): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.4): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.4): Renaming...
(i)(CircuitElement .4): New name is OK.
(i)(CircuitElement .4): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[8])::SetProps.() : properties OK.
(i)(CircuitElement .4): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .4): Renaming...
(i)(CircuitElement CABLE.4): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.5): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.5): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.5): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.5): Renaming...
(i)(CircuitElement .5): New name is OK.
(i)(CircuitElement .5): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[8])::SetProps.() : properties OK.
(i)(CircuitElement .5): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .5): Renaming...
(i)(CircuitElement CABLE.5): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.6): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.6): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.6): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.6): Renaming...
(i)(CircuitElement .6): New name is OK.
(i)(CircuitElement .6): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[8])::SetProps.() : properties OK.
(i)(CircuitElement .6): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .6): Renaming...
(i)(CircuitElement CABLE.6): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.7): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.7): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.7): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.7): Renaming...
(i)(CircuitElement .7): New name is OK.
(i)(CircuitElement .7): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[8])::SetProps.() : properties OK.
(i)(CircuitElement .7): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .7): Renaming...
(i)(CircuitElement CABLE.7): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.8): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.8): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.8): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.8): Renaming...
(i)(CircuitElement .8): New name is OK.
(i)(CircuitElement .8): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[8])::SetProps.() : properties OK.
(i)(CircuitElement .8): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement .8): Renaming...
(i)(CircuitElement CABLE.8): New name is OK.
(c)(CEngine): CE CABLE:CABLE is added into circuit.
(i)(CircuitElement CE_NONAME.9): New circuit element requested. initializing...
(i)(CircuitElement CE_NONAME.9): Voltage leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.9): Ground leg is creating...
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[0])::SetProps.() : properties OK.
(i)(CircuitElement CE_NONAME.9): Renaming...
(i)(CircuitElement LED.9): New name is OK.
(i)(CircuitElement LED.9): Setting Voltage Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[1])::SetProps.() : properties OK.
(i)(CircuitElement LED.9): Setting Ground Leg Association
(i)(Gate):(Type[Input],NofInputs[1],OutAsLeg[2])::SetProps.() : properties OK.
(c)(CEngine): CE LED:LED is added into circuit.
(c)(CEngine): In-CircuitElement connections completed, printing retrieved circuit (.\async1\ASYNC1~1.cec).

LISTING CURRENT CIRCUIT ELEMENTS:

BREADBOARD : 20 rows, 4 cols and 5 holes in a node.

Gate List CE Source(V&G).id_0 [gtType(Addr).no >> nof_inputs (input addr. list)]
V = leg_0 (00000000), G = leg_0 (00000000)
Voltage(003C1180)(leg_0).1 >> 0 ()
Ground(003C11D8)(leg_0).2 >> 0 ()

Gate List CE Asyncronous_test1.id_1 [gtType(Addr).no >> nof_inputs (input addr. list)]
V = leg_1 (00000000), G = leg_2 (00000000)
Input(003C6110)(leg_3).1 >> 1 ( 00000000 )
Input(003C6168)(leg_4).2 >> 1 ( 00000000 )
NAND(003C61C0)(leg_0).3 >> 2 ( 003C6110  003C6218 )
AND(003C6218)(leg_6).4 >> 2 ( 003C61C0  003C6168 )

Empty CE : CABLE

Empty CE : CABLE

Empty CE : CABLE

Empty CE : CABLE

Empty CE : CABLE

Empty CE : CABLE

Empty CE : CABLE

Empty CE : LED

END OF CIRCUIT LIST


(c)(CEngine): (Re)plugging process is initiated (.\async1\ASYNC1~1.cec).
(c)(CEngine): Plugging Asyncronous_test1.
(c)(CEngine): Plugging CABLE.

processing PLUGGING REQUEST FOR CABLE 003C6290 for First leg :
 Inserting cable BBNode into node [0,1], the leg is in plugged state now.
 cable's other leg is in hover mode.
 Output Report is done as 00000000.
 CNID is taken as 2.

PLUGGING FOR CABLE process is completed.

processing PLUGGING REQUEST FOR CABLE 003C6290 for Second leg :
 Inserting cable BBNode into node [8,1], the leg is in plugged state now.
 cable's other leg is plugged.
 pocessing CNID diffuseness...
 EOF CNID diffuseness.

 checking output report...
 no output report found.
 Checking if there is an output in the plugging node...
 no output BBNode found in the plugging node.
PLUGGING FOR CABLE process is completed.
(c)(CEngine): Plugging CABLE.

processing PLUGGING REQUEST FOR CABLE 003C63C8 for First leg :
 Inserting cable BBNode into node [0,1], the leg is in plugged state now.
 cable's other leg is in hover mode.
 Output Report is done as 00000000.
 CNID is taken as 2.

PLUGGING FOR CABLE process is completed.

processing PLUGGING REQUEST FOR CABLE 003C63C8 for Second leg :
 Inserting cable BBNode into node [0,0], the leg is in plugged state now.
 cable's other leg is plugged.
 pocessing CNID diffuseness...
 EOF CNID diffuseness.

 checking output report...
 no output report found.
 Checking if there is an output in the plugging node...
 output BBNode found as 003C1180 > Cable->V.Input[0] = 003C1180
CalcCable(003C6290:2) O insertion request : triggered from r.0,c.1 -- Duplication request to other node r.8,c.1
 Output is duplicated into First Leg node (0,1) as 003C1180.
 The HasOd1 flag is set as 1
PLUGGING FOR CABLE process is completed.
(c)(CEngine): Plugging CABLE.

processing PLUGGING REQUEST FOR CABLE 003C6500 for First leg :
 Inserting cable BBNode into node [1,0], the leg is in plugged state now.
 cable's other leg is in hover mode.
 Output Report is done as 003C11D8.
 CNID is taken as 4.

PLUGGING FOR CABLE process is completed.

processing PLUGGING REQUEST FOR CABLE 003C6500 for Second leg :
 Inserting cable BBNode into node [9,1], the leg is in plugged state now.
 cable's other leg is plugged.
 pocessing CNID diffuseness...
 EOF CNID diffuseness.

 checking output report...
 output report is found as 003C11D8.
 Inserting Od into plugging node > (9,1).
 The HasOd2 flag is set as 1
PLUGGING FOR CABLE process is comple

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Engineer Siemens
Turkey Turkey
I've graduated from computer engineering department in 2004 July, and developed the Circuit Engine as my graduation project at Eastern Mediterranean University (EMU). I've also graduated from MBA, Istanbul University in 2008 February. From 2004 until now, I've developed many web sites (B2B, B2C). Currently work for Siemens AG (http://siemens.com/ingenuityforlife) as a R&D Engineer (IoT) and I still continue to develop my personal projects about encryption algorithms, maths, OpenGL, Stock Exchange Market Analyses and Real-time Systems, MultiThreaded Applications and Web Solutions (mostly ASP.NET C#, JQuery/JS, MVC, WinForms, Win/Web Services, T-SQL and less PHP, ASP, MySQL and some possible other methods about problem solving if necessary). Also personal profession of photography : https://www.instagram.com/egldgn/


Circuit Engine base URL : https://sites.google.com/view/circuitengine


Comments and Discussions