Submitted:
12 February 2024
Posted:
13 February 2024
You are already at the latest version
Abstract
Keywords:
1. Introduction
1.1. ASICs
1.2. NAND Gates
1.3. FPGAs
- LUT: LookUp Tables implement all logic in FPGAs and can be categorized by the number of address lines they require. A LUT4 has 16 words of a single bit each and needs 4 bit addresses. A LUT6 has 64-bits and needs 6 address lines. A larger LUT can always do the job of a smaller one by either tying unused address lines to 0 or 1 or else duplicating the bits such that the output doesn’t depend on that address line. Combining smaller LUTs into a larger one is facilitated by special “mux” blocks in some FPGAs (XC4000), enhancing efficiency.
- Registers: the LUTs are purely combinational, and an optional flip-flop circuit at the output enables the implementation of sequential circuits. Normally one register is associated with one LUT, but there tend to be some extra registers as part of the I/O pads.
- DSP: Digital Signal Processing blocks are hardware implementations of multiplication circuits. Otherwise a very large number of LUTs would be required to implement this operation (which has many more uses beyond digital signal processing).
- Distributed memory: Distributed memory: each LUT is actually a very small Random Access Memory (RAM), generally unaltered after the initial FPGA configuration. An additional circuit allows the use of all LUTs or a fraction as read/write memories).
- Block memory: the area needed to store a bit in a register or even in a LUT is very large compared to a dedicated RAM circuit. Since the 1990s FPGAs have included a number of memory blocks that can efficiently handle a medium to large number of bits.
1.3.1. FPGA Families
1.4. RISC-V Soft-Cores
1.5. Other Soft-Cores
2. Objectives
3. Materials and Methods
3.1. Processor Specifications
3.1.1. State Registers
- PH/PL: 16-bit (8H/8L) program counter in normal execution mode;
- MH/ML: 16-bit (8H/8L) pointer for indirect “zero page” operands;
- IH/IL: 16-bit (8H/8L) program counter in interrupt mode;
- LH/LL: 16-bit (8H/8L) address saved in last call instruction;
- ZH/ZL: 16-bit (8H/8L) address of the “zero page” operand;
- TH/TL: 16-bit (8H/8L) timer to define the number of cycles to pause before next instruction;
- K: 8-bit single register for ’cascades’ - values between pairs of instructions;
- W, X, Y: 8-bit single registers accessible to the programmers for reading and writing.
3.1.2. Basic Syntax
3.1.3. K-Cascade
3.1.4. Source and Destination
- The basic operations opcodes;
- The immediate instructions opcodes;
- The control flow instructions opcodes;
- And the conditional tests.
3.1.5. Shifts and Rotations
| Listing 1. Shifts and rotations syntax example in Baby8. |
![]() |
| Listing 2. Shifts and rotations syntax example in Baby8. |
![]() |
3.1.6. Interrupt
3.1.7. Timer
3.2. Custom Processor Design
3.2.1. DATAPATH
3.2.2. CONTROL UNIT
3.2.3. ALU
4. Results
4.1. Performance
- This analysis is done several times during the chip generation process including after placement and routing. The timing analysis is done for the best case (low temperature and high supply voltage), the typical case and the worst case (high temperature and low supply voltage). In addition, the analysis is done for the minimum, nominal and maximum delays for the components.
4.2. Layouts
5. Discussion
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| ALU | Arithmetic Logic Unit |
| ASIC | Application Specific Integrated Circuit |
| CISC | Complex Instruction Set Computer |
| CPU | Central Processing Unit |
| FPGA | Field Programmable Gate Array |
| I/O | Input/Output |
| RAM | Random Access Memory |
| RISC | Reduced Instruction Set Computer |
References
- Glaser, J.; Wolf, C. Methodology and Example-Driven Interconnect Synthesis for Designing Heterogeneous Coarse-Grain Reconfigurable Architectures. In Proceedings of theModels,Methods, and Tools for Complex Chip Design; Haase, J., Ed., Cham, 2014; pp. 201–221.
- Shah, D.; Hung, E.; Wolf, C.; Bazanski, S.; Gisselquist, D.; Milanovic, M. Yosys+nextpnr: An Open Source Framework from Verilog to Bitstream for Commercial FPGAs. In Proceedings of the 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom ComputingMachines (FCCM), Los Alamitos, CA, USA, may 2019; pp. 1–4. [CrossRef]
- Assumpção, J. Baby8. https://github.com/jeceljr/baby8, 2023.
- Patterson, D.A.; Hennessy, J.L. Computer organization and design ARM edition: the hardware software interface;Morgan kaufmann, 2016.
- Hiremath, S.; Chickerur, S.; Dandin, J.; Patil, M.; Muddinkoppa, B.; Adakoli, S. Open-source Hardware: Different Approaches to Softcore implementation. In Proceedings of the 2022 International Conference on Distributed Computing, VLSI, Electrical Circuits and Robotics (DISCOVER), 2022, pp. 76–83. [CrossRef]
- SiFive. SiFive. https://www.sifive.com/about, 2023.
- Heinz, C.; Lavan, Y.; Hofmann, J.; Koch, A. A Catalog and In-Hardware Evaluation of Open-Source Drop-In Compatible RISC-V Softcore Processors. In Proceedings of the 2019 International Conference on ReConFigurable Computing and FPGAs (ReConFig), 2019, pp. 1–8. [CrossRef]
- Gruin, A.; Carle, T.; Cassé, H.; Rochange, C. Speculative Execution and Timing Predictability in an Open Source RISC-V Core. In Proceedings of the 2021 IEEE Real-Time Systems Symposium(RTSS), 2021, pp. 393–404. [CrossRef]
- Coluccio, A.; Ieva, A.; Riente, F.; Roch, M.R.; Ottavi, M.; Vacca, M. RISC-Vlim, a RISC-V Framework for Logic-in-Memory Architectures. Electronics 2022, 11. [CrossRef]
- Copeland, B. TheManchester Computer: A Revised History Part 2: The Baby Computer. IEEE Annals of the History of Computing 2011, 33, 22–37. [CrossRef]
- Ghazy, A.A.; Shalan, M. OpenLANE: The Open-Source Digital ASIC Implementation Flow. 2020.
- Wang, H.; Li, T.; Li, Y.; Chen, L.; Sima, C.; Liu, Z.;Wang, B.; Jia, P.;Wang, Y.; Jiang, S.; et al. OpenLane-V2: A Topology Reasoning Benchmark for Unified 3D HDMapping. In Proceedings of the Thirty-seventh Conference on Neural Information Processing Systems Datasets and Benchmarks Track, 2023.















![]() |
![]() |
![]() |
![]() |
![]() |
| Address (8-bits) | Control (32-bits) |
Address (8-bits) | Control (32-bits) |
|---|---|---|---|
| 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F |
0xE3308801 0xF3308801 0x43308801 0x53308800 0x0 0x0 0x0 0x0 0x44311800 0x55311801 0x44310800 0x0 0xEEF01C05 0xFF30190F 0x3330010F 0x0 0xEEF01C05 0xFF30180E 0x3330000E 0xEE301805 0xFF301801 0xEE301800 0xFF301800 0x0 0x3330B800 0x0 0x21026810 0x0 0x8E300801 0x9F300801 0xEEF01C05 0xC3340802 0xC3340802 0xFF301801 0x3EF00401 0xF3340801 0xEC300800 0x0 0xE8300801 0xF9300800 0x0 0xEEF01C05 0x13166812 0x13166810 0xFF301800 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 #N/DISP #N/DISP |
0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F |
0x30380803 #N/DISP 0x303A6812 0xFF30180A 0xFF30180A 0x303A6811 #N/DISP 0x3CD00200 0x3300800 0x3300000 0 0x8E300801 0x9F300809 0xEC300801 0xFD300800 0x0 0xC0880805 0xD9301802 0xD9300801 0xCCD01C05 0xE3340802 0xE3340802 0x3CD00402 0xDD301802 0xF3340800 0x3CD00401 0xF3340800 0x0 0x201A6810 0x0 #N/DISP 0x3CD00200 0x3300800 0x3300000 #N/DISP 0x0 0x30380809 #N/DISP 0x3CD00200 0x3300800 0x3300000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xEEF01C05 0x63340802 #N/DISP #N/DISP 0x36700408 0x367004C1 0xC3340801 0x367004E1 #N/DISP 0x3C301005 0x367002C2 0x367002C3 0x3D301001 0x367002E1 0x3CD00408 0x0 |
![]() |
![]() |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).








