ABSTRACT
This paper shares experience with using Logisim to complement the hardware specification approach and accompanying simulator for the projects in "From Nand to Tetris" (N2T; Shocken et al., SIGCSE'09). Student feedback indicates that Logisim enhances the visualization of the main concepts and can be used effectively in parallel with the framework developed in N2T. This is achieved via an external Logisim library implemented by the authors that extends the rich set of components available in Logisim with the specialized circuits required in N2T (e.g ALU, CPU, Screen, Keyboard). Upon completing the projects the students are able to execute the same machine code for a Pong-like game on their Logisim and N2T computers.
- Salman Arif. 2015. VisUAL: A Highly Visual ARM Emulator. https://salmanarif.bitbucket.io/visual/index.htmlGoogle Scholar
- Michael Black and Nathaniel Waggoner. 2013. Emumaker86: A Hardware Simulator for Teaching CPU Design. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (Denver, Colorado, USA) (SIGCSE '13). Association for Computing Machinery, New York, NY, USA, 323--328. https://doi.org/10.1145/2445196.2445294Google ScholarDigital Library
- Michael David Black and Priyadarshini Komala. 2011. A Full System X86 Simulator for Teaching Computer Organization. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (Dallas, TX, USA) (SIGCSE '11). Association for Computing Machinery, New York, NY, USA, 365--370. https://doi.org/10.1145/1953163.1953272Google ScholarDigital Library
- Carl Burch. 2002. Logisim: A Graphical System for Logic Circuit Design and Simulation. J. Educ. Resour. Comput., Vol. 2, 1 (March 2002), 5--16. https://doi.org/10.1145/545197.545199Google ScholarDigital Library
- John L. Donaldson, Richard M. Salter, Joe Kramer-Miller, Serguei Egorov, and Akshat Singhal. 2009. Illustrating CPU design concepts with DLSim 3. 2009 39th IEEE Frontiers in Education Conference (2009), 1--6.Google ScholarCross Ref
- Logisim-evolution. 2022. https://github.com/logisim-evolutionGoogle Scholar
- Suzanne J. Mathews, Tia Newhall, and Kevin C. Webb. 2022. Dive into Systems. https://diveintosystems.org/Google Scholar
- Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb. 2021. Dive into Systems: A Free, Online Textbook for Introducing Computer Systems. Association for Computing Machinery, New York, NY, USA. 1110--1116 pages. https://doi.org/10.1145/3408877.3432514Google ScholarDigital Library
- Noam Nisan and Shimon Schocken. 2001. The Elements of Computing Systems. MIT Press, New York, NY. https://www.nand2tetris.org/Google Scholar
- Linda Null and Julia Lobur. 2003. MarieSim: The MARIE Computer Simulator. J. Educ. Resour. Comput., Vol. 3, 2 (June 2003), 1--es. https://doi.org/10.1145/982753.982754Google ScholarDigital Library
- David A. Poplawski. 2007. A Pedagogically Targeted Logic Design and Simulation Tool. In Proceedings of the 2007 Workshop on Computer Architecture Education (San Diego, California) (WCAE '07). Association for Computing Machinery, New York, NY, USA, 1--7. https://doi.org/10.1145/1275633.1275635Google ScholarDigital Library
- Shimon Schocken. 2012. Taming Complexity in Large-Scale System Projects. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (Raleigh, North Carolina, USA) (SIGCSE '12). Association for Computing Machinery, New York, NY, USA, 409--414. https://doi.org/10.1145/2157136.2157259Google ScholarDigital Library
- Shimon Schocken. 2018. Nand to Tetris: Building a Modern Computer System from First Principles (Abstract Only). In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (Baltimore, Maryland, USA) (SIGCSE '18). Association for Computing Machinery, New York, NY, USA, 1052. https://doi.org/10.1145/3159450.3162353Google ScholarDigital Library
- Shimon Schocken, Noam Nisan, and Michal Armoni. 2009. A Synthesis Course in Hardware Architecture, Compilers, and Software Engineering. In Proceedings of the 40th ACM Technical Symposium on Computer Science Education (Chattanooga, TN, USA) (SIGCSE '09). Association for Computing Machinery, New York, NY, USA, 443--447. https://doi.org/10.1145/1508865.1509021Google ScholarDigital Library
- Derek C. Schuurman. 2013. Step-by-Step Design and Simulation of a Simple CPU Architecture. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (Denver, Colorado, USA) (SIGCSE '13). Association for Computing Machinery, New York, NY, USA, 335--340. https://doi.org/10.1145/2445196.2445296Google ScholarDigital Library
- Timothy Stanley, Nathan I. Kim, Yiu-Ming Chan, Ji Zheng, and Leslie Fife. 2009. Experiences in Teaching Computer Architecture. J. Comput. Sci. Coll., Vol. 24, 4 (apr 2009), 46--52.Google Scholar
- Timothy D. Stanley, Thanh Quach Xuan, Leslie Fife, and Don Colton. 2007. Simple Eight Bit, Emulated Computers for Illustrating Computer Architecture Concepts and Providing a Starting Point for Student Designs. In Proceedings of the Ninth Australasian Conference on Computing Education - Volume 66 (Ballarat, Victoria, Australia) (ACE '07). Australian Computer Society, Inc., AUS, 141--146.Google Scholar
Index Terms
- Variations on "From Nand to Tetris" with Logisim and ARM
Recommendations
Logisim: a graphical system for logic circuit design and simulation
Logisim enables students in introductory courses to design and simulate logic circuits. The program's design emphasizes simplicity of use, with a secondary goal of enabling design of sophisticated circuits. This motivates a two-tiered system, where ...
Minimum Parallel Binary Adders with NOR (NAND) Gates
Parallel binary adders of n bits long in single-rail input logic which have a minimum number of NOR gates are derived in this paper. The minimality of the number of NOR gates is proved for an arbitrary value of n. Also, it is proved that the adders must ...
Formal Design of Arithmetic Circuits Based on Arithmetic Description Language
This paper presents a formal design of arithmetic circuits using an arithmetic description language called ARITH. The key idea in ARITH is to describe arithmetic algorithms directly with high-level mathematical objects (i.e., number representation ...
Comments