Logisim is used to design, evaluate and test the system.
The logic gates, registers, multiplexers, arithmetic components, and input and output components are dealt with in the projects.
- Başar Demir
- Zafer Yıldız
- Muhammed Salih Yıldız
- Mehmet Can Gün
In this project, we are expected to design registers that have different sizes and register files. Registers are groups of flip-flops, where each flip flop is capable of one bit of information. The basic function of a register is to hold information in a digital system and make it available to the logic elements for the computing process. While we were implementing registers, we used some built-in components that have already designed in Logisim program and we also designed our own components in implementing process of registers and register files.
The detailed content of the Project-1 can be seen in Project-1 folder of this repository.
In conclusion, we have successfully implemented our own-designed 8-bit and 16-bit register and we constructed a register structure that has some functionalities which are clear, load, increment, and decrement. In clear mode, the register sets to zero all data it has and the register replaces the data that has with the given inputs in the load mode. Finally, in decrement and increment modes, the register increments or decrements depends on the selected mode the data that has with 1. As a final comment, what we have learned from this project, we had a opportunity to examine closely register structures and we have observed more clearly background of how to keep data in computers.
In this project, we are expected to design an Arithmetic Logic Unit which can operate basic calculations on binary numbers. It is responsible for arithmetic calculations on a computer. In the second part, we have designed a circuit that does fundamental operations of the processor
The detailed content of the Project-2 can be seen in Project-2 folder of this repository.
In this experiment, we have learned principles of implementing Arithmetic Logic Unit and the key points of mathematical calculations in computer systems. In the second part of the homework, we have learned the relationship between RAM and other circuit elements. We have found a chance to observe, how computers read data from RAM, and after processing this data, how they write the results to the RAM. As a final comment, we had the opportunity to learn and observe the background of calculations and memory relationship in computers.
In this project, we designed a basic CPU with some particular Opcodes that specifies the operation which is performed by the circuit we designed. To implement the functionalities of the circuit, as a first step, we converted every opcode to meaningful subcircuits to determine values of input fields of the circuit we designed in Project-2. Then, we read the instructions from the memory and run the circuit successfully
The detailed content of the Project-3 can be seen in Project-3 folder of this repository.
In conclusion, we designed a basic CPU circuit that processes given 16-bit instructions in this project by using the circuits we have implemented in previous projects. We had also some problems during the project, but we solved all problems we noticed together with creative solutions. As a final comment, it was a really great experience for us, because we got a chance to try and develop our logic design skills during all these projects from the first one to the last one.
In this project, we designed a micro-programmed CPU with some particular Opcodes that specifies the operation which is performed by the circuit we designed in Project-3. To convert the hard-wired circuit we designed in Project-3 to a micro-programmed circuit, we used a mapping technique which specifies the location of the micro-operation that will be run by the main circuit in the ROM that contains micro-instructions for OpCodes.
The detailed content of the Final Project can be seen in Final Project folder of this repository.
In conclusion, we designed a micro-programmed CPU circuit that processes given 16-bit binary instructions in this project. We also compared a hard-wired circuit with a micro-programmed circuit and we realized both advantages and disadvantages of two circuit type. As an advantage, we could easily change the circuit when we got an error. As a disadvantage, we learned that software-based systems are more slower than hardwired circuits. Another stuff we got from this project is that we had to push the limits of our creativity because of the lack of resources about software based systems. As a final comment, it was a really great experience for us, because we got a chance to try and develop our logic design skills during all these projects from the first one to the last one.