- Copyright Nick Overacker & Miho Kobayashi.
- This code is offered under the PolyForm Strict License 1.0.0, which permits users to use this code for noncommercial purposes but reserves most right for the copyright holders.
- For uses not permitted under the license, please contact: [email protected]
- Everything we do will be excellent.
- Above all else, above the following points, code in main must work.
- Javascript errors or warnings must not be tolerated on the live page.
- All functions must be in strict mode.
- Live code must always clear JSHint with no errors or warnings.
- Live code must always pass the testbench with no errors.
- Software entropy must not increase.
- Allow user to define custom color scheme.
- Allow user to selectively hide layers (to verify connections).
- Allow custom command mappings.
- Allow custom terminal labels.
- HDL generation.
- Student/Teacher modes with generating/grading homework, practice problems, etc.
- Draw CMOS circuit schematic corresponding to the painted topology.
- Logical effort calculations (allow user to set constants)
- Export netlist for use in electronics design software.
Share small diagrams by URL arguments and QR codes.Resolved 2023/2/8Interactive tutorial.Resolved 2023/2/4Replace pullup/pulldown alert popups with less obtrusive warnings.Resolved 2023/1/29Allow users to select where to insert rows and columns.Resolved 2023/1/29Show which layers are set in highlighted cell.Resolved 2023/1/29Show at least one path from rail voltage to output for each input.Resolved 2021/12/11Warn user when pulling up with NMOS or pulling down with PMOS.Resolved 2021/12/10Arbitrary number of I/O.Resolved 2020/12/10Colorblind-friendly mode.Resolved 2021/12/8Mobile interface.Resolved 2021/12/6Record user input sequence in debug mode for the testbench.Resolved 2021/12/4HTML button interface for those who prefer not to use a keyboard.Resolved 2021/12/2Arbitrary width/height.Resolved 2021/11/28More efficient data structure for the grid.Resolved 2021/11/25Foolproof usage instructions.Resolved 2021/11/21More metal layers.Resolved 2021/11/21Moveable VDD/GND terminals.Resolved 2021/11/21Show every layer in a cell, not just the top.Resolved 2021/11/21
- Sequenced output for state-dependent circuits like DFFs.
- Alternate braille display???
- Allow users to save designs, and use their outputs as inputs to other designs to produce complex, modular circuitry.
- Generate Magic files (todo: check legality) from design for a given technology.
- Nobel Peace Prize
- Various accolades
Knowing that I spelled "accolades" correctly (I don't feel like Googling it)Resolved 2021/11/20
Unable to detect many cases up invalid pull-up/pull-down (Testbench case 60)Resolved 2024/11/25Base64 decoding problems. Diagrams such as testbench case 60 can't properly decode as URL arguments.Resolved 2024/11/21L and H outputs are not handled properly depending on orientation.Resolved 2024/5/26 (Testbench case 59)Gates with VDD/GND shorts are not handled properly depending on orientation.Resolved 2024/5/17 (Testbench cases 40, 49, 50, 51)Some transistors with floating gates are still not handled properly.Resolved 2024/3/23 (Testbench case 56-58)Transistors with floating gates are not handled properly.Resolved 2024/3/21 (Testbench case 55)Infinite (or practically infinite) computation time for certain complex topologies.Resolved 2024/3/18 (Testbench case 54)Incorrect output when overdriven transistors drive multiple outputs.Resolved 2023/2/6 (Testbench cases 49, 53)Incorrect output when dead-end overdriven transistors are behind inputsResolved 2023/2/6 (Testbench cases 51, 52)The pullup/pulldown alert div displaces the canvas by too much in some browsers, even when not visible.Resolved 2023/1/30Highlighted nets are no longer comprehensive.Resolved 2023/1/22Incorrect output for two input-overdriven transistors in series with a VDD+GND overdriven transistor in series with direct input.Resolved 2023/1/22Incorrect output when GND and VDD are directly assigned to the same gate in series with overdriven transistor.Resolved 2023/1/17GND or VDD incorrectly override input nodes directly assigned to the same gate as them.Resolved 2023/1/16Incorrectly assigns Z for certain configurations of overdriven transistors when X is expected.Resolved 2023/1/15Incorrectly assigns X instead of Z for circuits with a dead-end overdriven transistor.Resolved 2023/1/14Evaluator aborts when poly is placed over the end of NDIFF or PDIFF on the edge of the canvas.Resolved 2023/1/10Invalid output when two conflicting signals other than direct inputs drive a single gateResolved 2022/12/30Crashes silently when a transistor is missing a source or drainResolved 2022/12/29Invalid output produced when two inputs directly drive the same gateResolved 2022/12/29Invalid output produced when two inputs INdirectly drive the same gateResolved 2022/12/28Minor visual glitches while drawing (due to canvas refresh)Resolved 2021/11/27Issue #7 (regarding NAND3 in complex circuit)Resolved 2021/11/23Directly connecting output to input produces output of Z instead of reproducing the input.Resolved 2021/11/20Unexpected output when both terminals of a transistor are shorted to VDD or GND.Resolved 2021/11/20-
Short PMOS side to VDD: Output is 11111111. . .
-
Short NMOS side to GND: Output is 0Z0Z0Z0Z. . .
Directly connecting VDD to GND produces output of Z instead of the correct output X.Resolved 2021/11/18Cells adjacent to painted cells are added to the same net, even if they aren't filled in.Resolved 2021/11/18Lines can be dragged up or left while drawing.Resolved 2021/11/18Clicking on right edge and dragging behaves as if clicked at (1,1).Resolved 2021/11/17