Mahmoud Magdi's Projects
Hardware Implementation of a Modular Adder/Subtractor
Digital Design and ASIC Implementation of a 64-bit Single Cycle RISC-V Core that supports RV32I ISA
The journey of designing an ASIC (application specific integrated circuit) is long and involves a number of major steps ā moving from a concept to specification to tape-outs. Although the end product is typically quite small (measured in nanometers), this long journey is interesting and filled with many engineering challenges.
A verilog implementation of an aynchronous FIFO (First In First Out).
A collection of awesome readme templates to display on your profile
Developed with the aim of providing engineers and designers with a centralized resource, this repository serves as a valuable reference for understanding and implementing robust clock domain crossing solutions in digital systems.
CV32E40P is an in-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY from PULP-Platform
Parametric floating-point unit with support for standard RISC-V formats and operations as well as transprecision formats.
Digital Design of a PICe packet detector FSM that detects whether the packet is a good or pad.
Several methods are presented in this repository to multiply signed and unsigned operands, including the sequential add-shift method, the Booth algorithm, and an array multiplier.
VHDL 2008/93/87 simulator
A SystemVerilog Class-Based Testing Environment to test 32*32 Memory Design
A SystemVerilog Implementation of the Montgomery Modular Inverse with Binary Extended Euclidean Algorithm
A System Verilog Design of the Shift-sub Modular Multiplier Algorithm
Educational Design Kit for Synopsys Tools with a set of Characterized Standard Cell Library
This is the top-level project for the PULPissimo Platform. It instantiates a PULPissimo open-source system with a PULP SoC domain, but no cluster.
GNU toolchain for RISC-V, including GCC
RISC-V Instruction Set Manual
RISC-V Tools (GNU Toolchain, ISA Simulator, Tests)
Bridges are standard bus-to-bus interfaces that allow IPs connected to different buses to communicate with each other in a standardized way
It is resposable of receiving commands through UART receiver to do different system functions as register file reading/writing or doing some processing using ALU block and send result as well as CRC bits of result using 4 bytes frame through UART transmitter communication protocol.
This Repo. cotains different Verilog Codes of different Logic Units
a hardware task scheduler design
The official Xilinx u-boot repository
Verilog Hierarical Design of the UART