Program model of the educational digital processor DPM-08

The model was built on the basis of a real model developed by students and teachers of V. N. Karazin Kharkiv National University. Using this emulator program, you can learn more about the principles of processors and understand how the von Neumann cycle works.

Figure 1 shows a photo of a real model.

Fig.1. Real model of digital educational processor

The following table provides a brief description of the components, which are numbered in the Figure 1.

Name of the part Description
1 Control signal generator Generates signals that will be sent to the machine cycle signal generator. It consists of two parts: a clock generator and a reset signal generator. The clock generator can generate either 1 clock when the button is pressed or more. In addition, if there is an auto-generator, it can generate signals until the button is pressed again. If a reset signal is generated, then all registers are cleared, the machine cycle signal generator does not receive any signal, and therefore does not generate anything.
2 Machine cycle signal generator Receives the signals generated by the control signal generator and converts these signals into machine cycle signals. Depending on the clock frequency, when the button is pressed, it can execute 1 cycle (step execution), 8 cycles (command execution), or receive a large number of cycles every second and operate in continuous mode.
3 The main unit of the processor model It contains ports for connecting registers A, B, C, D, and ALD. In addition, there are connectors for connecting various interfaces. There is also a command register and a decoder in front of the ports. All these elements are connected by 8-bit buses. There are 3 buses connected to the inputs of the registers and the ALD: the data bus, the control bus, and the command bus. The command bus is also connected to the PC interface and to the decoder. The control bus, in turn, is also connected to the decoder, the PC interface, and the instruction counter. The data bus is connected to the instruction counter, the instruction register, and the RAM socket to which the memory unit is connected.
4 Registers A and B Ordinary registers used for temporary data storage. They have LEDs to keep track of what data is currently stored there. If any bits are set to one, the corresponding LEDs will be on. In addition, the A register has more functions than other registers. This includes bitwise data offset, for example. Also, these two registers are used to perform various arithmetic and logical operations.
5 Arithmetic logic device (ALD) A device that contains several chips for various arithmetic and logic operations. Thus, it includes the following operations: register clearing, logical addition of values from registers A and B (OR), logical multiplication of values from the same registers (AND), exclusive OR (XOR), inversion of register A, bitwise left/right shift of data in register A, arithmetic addition of values from registers A and B. It is worth mentioning that the ALD works in asynchronous mode. This means that as soon as the states of registers A and/or B change, the ALD changes the state of all internal registers, regardless of whether the machine cycle has ended.
6 Registers C and D Same as A and B, except that these registers can only store data and do not participate in arithmetic and logic operations. A numeric keypad can be connected to the D register to allow the user to enter values into this register.
7 Program memory module The actual memory that can be connected to the RAM connector. It stores commands that are represented as numbers in hexadecimal. In the memory model shown in Figure 2.1, there are only 8 bytes and each byte is divided into bits, so the user can set the corresponding bits to one. You can also connect a slightly different version of the 256-byte memory block and load a program from a computer.
8 Connection connector of the interface module for connection to a PC A special interface that allows you to control and generate all the main signals of the model using a personal computer

Short description of the user

  1. Step Button (F1) - executes the command step by step for all von Neumann cycle. At each step, all the necessary "wires" are highlighted, which allows you to understand each stage of the cycle.
  2. Cycle Button (F2) - executes one command when pressed. In memory unit you can see a single-byte command or a double-byte command. "Wires" are not highlighted, only register and ALD values are changed.
  3. Res Button (F3) - resets the processor to its initial state. After the first startup, you cannot control the processor until you press this button.
  4. Run Button (F4) - the program from the memory module is executed continuously at a specified frequency. Only values in registers are changed.
  5. Freq Button (F5) - switches the frequency value in the display side by side. All frequencies are stored in the config.conf file. You can edit this file and add your own values.
  6. Eight num buttons (Q-I) - a keyboard connected to the D register. It is a mask for this register: all values written to it pass through this mask. If all buttons are set to 0, no bits will be written to the D register.
  7. Clr Button (F6) - completely clears the memory unit.
  8. Load Button (F7) - loads the program into the memory block. Supports files with the extension .bin, .hex, .obj. These are rather specific files that are obtained by translating assembly code using the TASM08 translator.
  9. Edit Button (F8) - allows you to edit the memory manually. Each cell can only store a two-byte HEX value.
  10. 256 Button (F9) - allows you to expand the available memory up to 256 bytes (when the button is pressed). When you change the amount of memory, the entire memory block is cleared.

Downloading

You can download the program in the form of an archive via Code -> Download ZIP or using the console:

    git clone https://github.com/VladislavKomeristiy/Emy.git

After press Enter and wait to finish process.