Development of a General Purpose First-In-First-Out (FIFO) Core

Marcus Lloyde George*, Nora Innocent-George**
* Department of Electrical and Computer Engineering, University of the West Indies, St. Augustine, Trinidad and Tobago.
** Department of Science and Agriculture, University of the West Indies, St. Augustine, Trinidad and Tobago.
Periodicity:January - June'2022
DOI : https://doi.org/10.26634/jcir.10.1.18663

Abstract

First-In-First-Out cores (FIFOs) are memory storage elements that are used in digital systems for buffering data through a system for later processing. This paper presents the design and implementation of a General Purpose FIFO Core which allows adjustment of the capacity along with the size of each data word. Status indicators were provided to indicate whether or not the FIFO was empty, half-full, or full. The number of data words stored in the FIFO was also indicated by designated output ports of the system. A status flag was also available to indicate when the size reached a predetermined threshold value. A separate interface was provided that allowed the data at any address to be accessed for reading. It was also possible to write a data word to the back of the FIFO while another data word was read from the front simultaneously. The FSM-D architectural model was applied to the design of the FIFO Core and the implementation was done in VHDL using the Xilinx ISE 14.7. The implemented core was simulated using ISim Logic Simulator of the Xilinx ISE platform, and it was found that the system core behaved as specified by the test cases.

Keywords

First-In-First-Out, FIFO, Storage Elements, Memory Storage Elements, Digital Electronic Storage Devices.

How to Cite this Article?

George, M. L., and Innocent-George, N. (2022). Development of a General Purpose First-In-First-Out (FIFO) Core. i-manager’s Journal on Circuits and Systems, 10(1), 1-14. https://doi.org/10.26634/jcir.10.1.18663

References

[1]. Abdelhadi, A. M. S. (2020). Synthesizable synchronization FIFOs utilizing the asynchronous pulsebased handshake protocol. In 2020 IEEE Nordic Circuits and Systems Conference (NorCAS), 1-7. https://doi.org/10.1109/NorCAS51424.2020.9265139
[2]. Abdel hafeez, S., & Gordon Ross, A. (2021). Reconfigurable FIFO memory circuit for synchronous and asynchronous communication. International Journal of Circuit Theory and Applications, 49(4), 938-952. https://doi.org/10.1002/cta.2921
[3]. Ashour, H. (2015). Design, simulation and realization of a parametrizable, configurable and modular asynchronous FIFO. In 2015 Science and Information Conference (SAI), 1391-1395. https://doi.org/10.1109/SAI.2015.7237325
[4]. Bhatnagar, V., Kumar, S., Pandey, M. K., & Pandey, S. (2020). Design and implementation of an efficient buffer management system for network on chip routers. In 2020 9th International Conference System Modeling and Advancement in Research Trends (SMART), 314-317. https://doi.org/10.1109/SMART50582.2020.9337128
[5]. Drozdek, A. (2013). Data Structures and Algorithms in C++. Cengage learning.
[6]. Gordon-Ross, A., Abdel-Hafeez, S., & Alsafrjalni, M. H. (2019). A one-cycle FIFO buffer for memor y management units in manycore systems. In 2019 IEEE Computer Society Annual Symposium on VLSI (ISVLSI), 265-270. https://doi.org/10.1109/ISVLSI.2019.00056
[7]. Hsu, W. S., Huang, P. T., Wu, S. L., Chuang, C. T., Hwang, W., Tu, M. H., & Yin, M. Y. (2016). 28nm ultra-low power near-/sub-threshold first-in-first-out (FIFO) memory for multi-bio-signal sensing platforms. In 2016 International Symposium on VLSI Design, Automation and Test (VLSIDAT), 1-4. https://doi.org/10.1109/VLSI-DAT.2016.7482551
[8]. Mansi, J., & Kapoor, S. (2014). A synthesizable RTL design of asynchronous FIFO interfaced with SRAM. International Journal of Computer Science and Information Technologies, 5(2), 2033-2037
[9]. Perry, D. (1998). VHDL, 3rd edition. McGraw-Hill, New York.
[10]. Rizvi, N. Z., Arora, R., & Agrawal, N. (2015). Implementation and verification of synchronous FIFO using system Verilog verification methodology. Journal of Communications Technology, Electronics and Computer Science, 2, 18-23. 10.22385/jctecs.v2i0.19
[11]. Shilpi, M. (2016). Design of RTL synthesizable 32-bit FIFO memory. International Journal of Engineering Research and Technology (IJERT), 5(11), 591-593
[12]. Windmann, S., & Jasperneite, J. (2015). An FPGA based FIFO with efficient memory management. In 2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA), 1-4. https://doi.org/10.1109/ETFA.2015.7301585
[13]. Zhang, X., Wang, J., Wang, Y., Chen, D., & Lai, J. (2012). BRAM-based asynchronous FIFO in FPGA with optimized cycle latency. In 2012 IEEE 11th International Conference on Solid-State and Integrated Circuit Technology, 1-3. https://doi.org/10.1109/ICSICT.2012.6467891
[14]. Zhang, Y., Yi, C., Wang, J., & Zhang, J. (2011). Asynchronous FIFO implementation using FPGA. In Proceedings of 2011 International Conference on Electronics and Optoelectronics, 3, (pp. 207). https://doi.org/10.1109/ICEOE.2011.6013339
If you have access to this article please login to view the article or kindly login to purchase the article

Purchase Instant Access

Single Article

North Americas,UK,
Middle East,Europe
India Rest of world
USD EUR INR USD-ROW
Online 15 15

Options for accessing this content:
  • If you would like institutional access to this content, please recommend the title to your librarian.
    Library Recommendation Form
  • If you already have i-manager's user account: Login above and proceed to purchase the article.
  • New Users: Please register, then proceed to purchase the article.