Original architecture 8-bit CPU board consisting of 13 DIP ICs
Published on 11/2/2021 12:03:07 PM
 
                 
                 
                 
                 
                Video Link: https://www.youtube.com/watch?v=LzoIbzHgR4k
Components Used in the Project
Description
### Project background ###<br/> I like to use DIP ICs to run old CPUs such as Z80. One of my design policies is to use as few chips as possible. It's completely useless, but this time I made the CPU itself using DIP ICs.<br/> <br/> ### Design policy ###<br/> * An 8-bit CPU with a 16-bit address bus.<br/> * Use only DIP type logic ICs and memory ICs (GAL can be used).<br/> * Minimize the number of ICs used.<br/> * Implement the CPU functions and the memory required for the CPU to operate on one board.<br/> <br/> ### CPU configuration ###<br/> In order to reduce the number of ICs used, the machine language implementation method was a microprogram method using ROM. In addition, the ALU (Arithmetic and Logic Unit) function has been realized by using a large-capacity ROM(32Mbit) as a look-up table in order to realize addition, subtraction, logical operation, and bit shift arithmetic processing. Two general-purpose registers (R0, R1) are implemented, and the output of these two registers is also used as the input of the ALU. Implemented a conditional jump instruction that refers to the zero flag and carry flag output from the ALU. In addition, the carry flag is also used as the input of the ALU, and the carry correspondence processing of arithmetic operations and bit shift instructions is also implemented.<br/> Furthermore, it has an I/O space independent of the 64K bytes memory space, and by adding a connector for I/O, it is easy to connect an external interface.<br/> <br/> ### Outcome ###<br/> * The CPU function was realized using only 13 DIP ICs and mounted on one board (11 ICs can be seen in the photo, but 2 ICs are mounted on the back of the board).<br/> * I made an assembler for this CPU using the macro function of the macro assembler (M80, L80) for CP/M.<br/> * By connecting a small board for serial communication to the external interface connector, I have developed a monitor program that can operate the memory and download the executable file.<br/> * I created a 16-bit addition, subtraction, multiplication, division, and division operation in machine language, and created a calculator program that can execute formulas in reverse Polish notation.<br/> <br/> ### Difficulties and solutions ###<br/> * When creating microcode to implement machine language, it is difficult to create binary data directly, so I created an environment to convert microcode instructions into bit data using the macro function of the macro assembler.<br/> * Furthermore, when implementing complex machine language such as call instructions, even microcode instructions are inefficient, so I created microcode by writing using microcode mnemonics with a higher degree of abstraction. However, I manually converted the microcode mnemonics to microcode instructions.<br/> * To facilitate microcode debugging, I used the PIC24FJ64 to enable external clocking. By controlling the reset and clock with PIC24FJ64, it is possible to stop processing and step operation at the specified location of the microcode.<br/>
5
comment
All comments
 sat.skyriver
            sat.skyriver
        290
0
5
Rules about cashback: 1. Valid time: ALLPCB cashback activity will end on April 1st. 2. Capped amount: The capped amount of cashback for each account is $5,000. Each order can get a maximum of $2,000 cashback. That means every author can get $5,000 max. 3. Cashback range: The cashback activity only covers the corresponding PCB order. The order amount for other combined payment products will be invalid. 4. Clicking your own promotional link will be invalid. The same email address, shipping address, contact information, and phone number are all recognized as the same account. 5. ALLPCB has the final interpretation right of the cashback activity.
ALLPCB will donate 3% to the author as creation awards. *ALLPCB community is a shared platform and we are not responsible for any design dispute.
Rules about cashback: 1. Valid time: ALLPCB cashback activity will end on April 1st. 2. Capped amount: The capped amount of cashback for each account is $5,000. Each order can get a maximum of $2,000 cashback. That means every author can get $5,000 max. 3. Cashback range: The cashback activity only covers the corresponding PCB order. The order amount for other combined payment products will be invalid. 4. Clicking your own promotional link will be invalid. The same email address, shipping address, contact information, and phone number are all recognized as the same account. 5. ALLPCB has the final interpretation right of the cashback activity.
ALLPCB will donate 2% to the author for this promotion link.