Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
4c1c950
first commit
Utkichaps May 11, 2019
a496ba7
Second commit
Utkichaps May 11, 2019
0dd3d88
This is the layout file only. I will embed the simulator on this itse…
Utkichaps May 14, 2019
36de2cc
This is the final simulator
Utkichaps May 16, 2019
10db698
Made the Simulator modular and made code readable
Utkichaps May 17, 2019
4bbe406
This commit is according to the SRIP standard
Utkichaps May 18, 2019
41be9f1
Create Libraries
Utkichaps May 18, 2019
e70ca8a
Delete Libraries
Utkichaps May 18, 2019
f59b7ae
Extra File
Utkichaps May 18, 2019
df39768
Merge branch 'master' of https://github.com/Utkichaps/vlsi-iiith
Utkichaps May 18, 2019
61f55f7
Extra files
Utkichaps May 21, 2019
e3095be
Line functionality added
Utkichaps May 22, 2019
3271583
Few UI changes
Utkichaps May 22, 2019
b3b5c29
These are the quiz files added
Utkichaps May 27, 2019
523c72a
Final Quiz files added
Utkichaps May 28, 2019
5c69c8e
Cleaned up code of the quiz files
Utkichaps May 30, 2019
6e5914c
Code cleaned up
Utkichaps May 30, 2019
9842369
Simulator revamped
Utkichaps Jun 4, 2019
4de021a
Updated Library files
Utkichaps Jun 5, 2019
ba2be8b
Added more Components to Simulator
Utkichaps Jun 5, 2019
3babaf3
Moved Wavedrom from cloud to local
Utkichaps Jun 5, 2019
3d01f3a
Few UI changes
Utkichaps Jun 8, 2019
6b9f96b
Readme Updated
Utkichaps Jun 8, 2019
1114979
Made UI improvements
Utkichaps Jun 11, 2019
e4ef1fa
Made UI changes
Utkichaps Jun 11, 2019
a6cc29b
Test Cases added
Utkichaps Jun 11, 2019
fa95368
Test case 5 fixed
Utkichaps Jun 11, 2019
1a4df0e
Code Improved
Utkichaps Jun 11, 2019
bb247e3
Project Documentation added
Utkichaps Jun 18, 2019
6389b82
Moved folders
Utkichaps Jun 19, 2019
14af007
Changes made in library to return dynamic circuit data
Utkichaps Jun 21, 2019
027d1a1
Added Images for circuit
Utkichaps Jun 21, 2019
e930536
Made some changes in code
Utkichaps Jun 21, 2019
9d1a6ee
Improved UI and added functionality
Utkichaps Jun 22, 2019
93ecddf
Changes made to the simulator
Utkichaps Jun 24, 2019
349ff9a
Functionality added to the simulator
Utkichaps Jun 26, 2019
7820eed
Additional changes made
Utkichaps Jun 27, 2019
f08d689
Finished project doc and finished the circuitcheck code
Utkichaps Jun 28, 2019
1a187f6
Documentation for first project added
Utkichaps Jun 29, 2019
71fcfbc
Documentation added
Utkichaps Jul 1, 2019
2f659e1
Code improved
Utkichaps Jul 1, 2019
4891769
Fixed graph for negative level PT
Utkichaps Jul 13, 2019
5b7cff4
UI Changes made
Utkichaps Jul 15, 2019
b756656
Moved to Project2 folder
Utkichaps Jul 18, 2019
4ba29e1
Changes in help
Utkichaps Jul 18, 2019
b9b62ff
Added More componenets, Added simulator files
Utkichaps Jul 18, 2019
2f45eaf
Added functionality for simulation
Utkichaps Jul 19, 2019
201eeae
Experiment Documentation added
Utkichaps Jul 22, 2019
1b0c145
Moved Project 3 to new folder
Utkichaps Jul 22, 2019
524e35e
Added circheck and circuits to the simulator
Utkichaps Jul 23, 2019
811c11f
Added Procedure and Project documentation
Utkichaps Jul 23, 2019
7121058
Added Documentation
Utkichaps Jul 23, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
34 changes: 34 additions & 0 deletions SRIP/Codes/Code_Documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Code Documentation

## Introduction

This document captures the experiment implementation details.

## Code Details

1. **File name:** simLayout.html
**File description:** Contains the layout of the circuit simulator.

2. **File name:** layout.css
**File description:** Contains the css of the simulator.

3. **File name:** simulatorOptions.js
**File description:** Contains the jquery to enable the different options contained in the main simulator file.

4. **File name:** circuitCheck.js
**File description:** Contains the functions necessary to check if the circuit made on the simulator is correct and if all the connections and components are correct.

* **Function name:** circCheck()
**Function description:** This retreives the circuit data and checks if it is the same as a preset circuit data.

* **Function name:** isEqual()
**Function description:** This checks if two objects are equal.

5. **File name:** Procedure.html
**File description:** Contains the procedure to run each simualtion.

6. **File name:** project_doc.html
**File description:** Contains the theory behind the experiment.

7. **File name:** project_doc_style.html
**File description:** Contains the css for the project_doc.html.
71 changes: 71 additions & 0 deletions SRIP/Codes/Experiment_Project_Documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Experiment Project Documentation

## Introduction

This document captures the technical details related to the experiment development.

## Project
**Domain name:** Computer Science & Engineering.
**Lab name:** Very Large Scale Integration.
**Experiment name:** Schematic Design Of Transistor Level XOR and XNOR gate.

Pass transistor logic (PTL) describes several logic families used in the design of integrated circuits. It reduces the count of transistors used to make different logic gates, by eliminating redundant transistors. Transistors are used as switches to pass logic levels between nodes of a circuit, instead of as switches connected directly to supply voltages.

This reduces the number of active devices, but has the disadvantage that the difference of the voltage between high and low logic levels decreases at each stage. Each transistor in series is less saturated at its output than at its input.

This experiment is used to simulate the working of an XOR and XNOR gate using pass transistor logic. A graph is generated which shows the output of the simulation.

## Purpose of the Project

The purpose of this project is to convert XOR and XNOR gate simulation from Java to Javascript.

## Project Developers Details

| Sl.no | Name | Year Of Study | Role | Email-ID | Github handle |
|:-----:|:-----------------:|:-------------:|:---------:|:---------------------------:|:-------------:|
| 1 | Utkarsh Chhapekar | 2nd year | Developer | utkarshchhapekar2@gmail.com | Utkichaps |

## Technologies and Libraries

**Technologies:**
1. HTML
2. CSS
3. Javascript

**Libraries:**
1. SimCir JS
2. JQuery
3. Bootstrap

## Development Environment

**OS:** Ubuntu 19.04

## Documents and Files:

| Sl.no | Document | Role |
|:-----:|:------------------:|:------------------------------------------------------------------------------:|
| 1. | Procedure | This document captures the instructions to run the simulations |
| 2. | Test Cases | This document captures the functional test cases of the experiment simulation |
| 3. | Code Documentation | This document captures the details related to code |
| Sl.no | File | Role |
| 1. | Codes | Contains the major code as well as the images related to it. |
| 2. | Libraries | Contains libraries used by the code |

## Process Followed to convert the experiment

1. Understand the assigned experiment Java simulation.
2. Understanding the experiment concept.
3. Re-implement the same in javascript.

## Value Added by our Project

It is beneficial to engineering students who want to understand how pass transistor logic can be used to simulate universal gates and to understand the theory behind it as well.

## Risks and Challenges

A few challenges faced during the development process was understanding the simcir library so that it can be used to retrieve the circuit data dynamically. Adding components was also an issue.

## Issues

No current issues open.
22 changes: 22 additions & 0 deletions SRIP/Codes/Experiment_Test_Cases_Documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Experiment Test Cases Documentation

## Introduction

This document captures the test cases of the experiment.

## Functional Test Cases

| Test Case id | Test Scenario | Test Steps | Expected Output | Actual Output | Result |
|:------------:|:--------------------------------------------------------------------:|:--------------------------------------------------------------------------------------:|:------------------------------------------------------------------------:|:------------------------------------------------------------------------:|:------:|
| 1. | Press Simulate button without selecting what type of simulation | Directly click on simulate without selecting the type of simulation. | Alert: Please select type of simulation | Alert: Please select type of simulation | pass |
| 2. | Press Simulate button with mismatched circuit and simulation option. | Choose a simulation and make a circuit which is not the same as the simulation option. | Alert: This is not the correct circuit. Please refer procedure carefully | Alert: This is not the correct circuit. Please refer procedure carefully | pass |
| 3. | Alert when the connections/components are wrong. | Make an incorrect circuit and try to simulate it. | Alert: This is not the correct circuit. Please refer procedure carefully | Alert: This is not the correct circuit. Please refer procedure carefully | pass |
| 4. | Graph should get cleared after simulating a wrong circuit. | Simulate a correct circuit and then simulate a wrong circuit | The graph of the previous simulation should not show. | The graph of the previous simulation should not show. | pass |

## Cross Browser Testing

| Sl.no | Browser | Version | Works? |
|-------|-----------------|---------------|--------|
| 1. | Google Chrome | 75.0.3770.100 | Yes |
| 2. | Mozilla Firefox | 67.0.4 | yes |

Binary file added SRIP/Codes/Images/XNOR.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/XOR.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/blank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/full.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/kmap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/label.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/nswitches.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/pswitches.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/xnor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/xnortruth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/xor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added SRIP/Codes/Images/xortruth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
122 changes: 122 additions & 0 deletions SRIP/Codes/Procedure.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<title>Procedure</title>
<script type="text/javascript" src="../Libraries/jquery-3.4.1.min.js"></script>
<style type="text/css">
select {
transition-duration: 0.4s;
cursor: pointer;
background-color: white;
color: black;
}
select:hover {
background-color: lightgrey;
}
</style>
</head>
<body>
<div style="text-align: center;">
<h1>Procedure</h1>
<select id="choice">
<option value="0" selected disabled hidden>Select the circuit</option>
<option value="1">XOR gate circuit</option>
<option value="2">XNOR gate circuit</option>
</select>
</div>
<div id="pos">
<img width="375" src="Images/label.png">
<p><strong>Components which will be used for this:</strong>PMOS, NMOS, Input, Output, Vdd, GND, Capacitor, Joint, OJoint.</p><br>
<strong>Steps (Can also refer to the diagram below):</strong>
<img src="Images/xor.png"><br>
<ol>
<li>Select <i>XOR Gate</i> from the option on the top of the page, under the heading.</li>
<li>Connect two pairs of PMOS (4 in total) in parallel and connect that in series between Vdd and 3 input OR. To do that:</li>
<ul>
<li>Place two PMOS side by side</li>
<li>Connect drain of first PMOS to output of a Joint and connect that to the drain of the second PMOS.</li>
<li>Connect Vdd to the input to the input of the above mentioned Joint.</li>
<li>Connect source of first PMOS to an OJoint and connect that to source of second PMOS.</li>
<br>
<li>Place two more PMOS side by side below the above connections.</li>
<li>Connect drain of first PMOS to output of a Joint and connect that to the drain of the second PMOS.</li>
<li>Connect the input of the above mentioned Joint to the OJoint of the first parallel connection of PMOS.</li>
<li>Connect source of first PMOS to an OJoint and connect that to source of second PMOS.</li>
<li>Connect the above mentioned OJoint to the first input of the 3 input OR gate.</li>
</ul>
<li>Connect two pairs of NMOS (4 in total) in series and connect that in parallel between 3 input OR and GND. To do that:</li>
<ul>
<li>Place four NMOS in the same way the PMOS has been placed.</li>
<li>Connect the second input of the 3 input OR gate to an OJoint.</li>
<li>Connect the above OJoint to the Drain of the top two NMOS.</li>
<li>Connect the source of one of the NMOS to an OJoint and connect that to the Drain of the NMOS below it.</li>
<li>Do the above step for the two NMOS on the other side.</li>
<li>Connect the source of the bottom two NMOS to the Output of a Joint.</li>
<li>Connect the input of the above mentioned Joint to GND.</li>
</ul>
<li>Connect the GND to the Input of a capacitor.</li>
<li>Connect the output of the capacitor to the third input of the 3 input OR.</li>
<li>Connect the output of the 3 input OR to an <i>Out</i> component.</li>
<li>For the inputs, put 4 <i>In</i> components on the workspace.</li>
<li>Each <i>In</i> component should be connected to one PMOS and one NMOS. For this, follow the diagram given above.</li>
</ol>
</div>
<div id="neg">
<img width="375" src="Images/label.png">
<p><strong>Components which will be used for this:</strong>PMOS, NMOS, Input, Output, Vdd, GND, Capacitor, Joint, OJoint.</p><br>
<strong>Steps (Can also refer to the diagram below):</strong>
<img src="Images/xnor.png"><br>
<ol>
<li>Select <i>XOR Gate</i> from the option on the top of the page, under the heading.</li>
<li>Connect two pairs of PMOS (4 in total) in parallel and connect that in series between Vdd and 3 input OR. To do that:</li>
<ul>
<li>Place two PMOS side by side</li>
<li>Connect drain of first PMOS to output of a Joint and connect that to the drain of the second PMOS.</li>
<li>Connect Vdd to the input to the input of the above mentioned Joint.</li>
<li>Connect source of first PMOS to an OJoint and connect that to source of second PMOS.</li>
<br>
<li>Place two more PMOS side by side below the above connections.</li>
<li>Connect drain of first PMOS to output of a Joint and connect that to the drain of the second PMOS.</li>
<li>Connect the input of the above mentioned Joint to the OJoint of the first parallel connection of PMOS.</li>
<li>Connect source of first PMOS to an OJoint and connect that to source of second PMOS.</li>
<li>Connect the above mentioned OJoint to the first input of the 3 input OR gate.</li>
</ul>
<li>Connect two pairs of NMOS (4 in total) in series and connect that in parallel between 3 input OR and GND. To do that:</li>
<ul>
<li>Place four NMOS in the same way the PMOS has been placed.</li>
<li>Connect the second input of the 3 input OR gate to an OJoint.</li>
<li>Connect the above OJoint to the Drain of the top two NMOS.</li>
<li>Connect the source of one of the NMOS to an OJoint and connect that to the Drain of the NMOS below it.</li>
<li>Do the above step for the two NMOS on the other side.</li>
<li>Connect the source of the bottom two NMOS to the Output of a Joint.</li>
<li>Connect the input of the above mentioned Joint to GND.</li>
</ul>
<li>Connect the GND to the Input of a capacitor.</li>
<li>Connect the output of the capacitor to the third input of the 3 input OR.</li>
<li>Connect the output of the 3 input OR to an <i>Out</i> component.</li>
<li>For the inputs, put 4 <i>In</i> components on the workspace.</li>
<li>Each <i>In</i> component should be connected to one PMOS and one NMOS. For this, follow the diagram given above.</li>
</ol>

</div>

<script type="text/javascript">
$("#pos").hide();
$("#neg").hide();
$("#choice").change(function(event)
{
var ch = document.getElementById("choice").value;
if(ch==="1")
{
$("#pos").show();
$("#neg").hide();
}
else if(ch==="2")
{
$("#pos").hide();
$("#neg").show();
}
});
</script>
</body>
</html>
21 changes: 21 additions & 0 deletions SRIP/Codes/Procedure_Documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Project Documentation

## Introduction

This document captures the instructions to run the simulation.

## Instructions:

1. Click on the simLayout.html file to see the simulator.

2. Choose what you want to simulate under the _Select the simulation_ heading.

3. Now you can either see the circuit for NAND and NOR under the _See Circuit:_ heading or follow the procedure to design it.

4. Clicking on the procedure tab will open a procedure window on the right. Click on the _Select the circuit_ heading to see the procedure for each circuit.

5. Click on the _Simulator Help_ heading to see instructions on how to use the simulator.

6. Once your circuit is done, click on the _Simulate_ button to observe the graph to the right of the workspace.

7. To read the theory behind the experiment click on the _Project Documentation_ heading.
19 changes: 19 additions & 0 deletions SRIP/Codes/Readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
SRIP

VLSI | issue no 380 | Design Of Transistor Level XOR & XNOR Gate

---------------------------------------------------------------------

Simulator:
The simulator can be accessed by clicking on the simLayout.html file.
The Project documentation is in the project_doc.html file.

Files used by the simulator:
simLayout.html
Procedure.html
layout.css
simulatorOptions.js
circuitCheck.js



Loading