A high performance streaming FFT core based on Bailey's 4-step large FFT algorithm (focused on speed optimizing: Fmax is up to 30% higher than Xilinx FFT IP)
Data input/output are continuous with no gaps between frames. Currently only supporting power-of-two sizes and fixed point data.
Top level VHDL code is generated by the script codegen/gen_fft.py.
https://github.com/owocomm-0/fpga-fft
#FFT #DSP #VHDL #generator #python #multicycle_path
Data input/output are continuous with no gaps between frames. Currently only supporting power-of-two sizes and fixed point data.
Top level VHDL code is generated by the script codegen/gen_fft.py.
https://github.com/owocomm-0/fpga-fft
#FFT #DSP #VHDL #generator #python #multicycle_path
Ariane CVA6 - an Application class 6-stage 64-bit RISC-V CPU capable of booting Linux.
CVA6 fully implements I, M, A and C extensions as specified in Volume I: User-Level ISA V 2.3 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. Furthermore it is compliant to the draft external debug spec 0.13.
It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length.
https://github.com/openhwgroup/cva6
#ISA #RISCV #SystemVerilog #SV #CPU #RV64
CVA6 fully implements I, M, A and C extensions as specified in Volume I: User-Level ISA V 2.3 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. Furthermore it is compliant to the draft external debug spec 0.13.
It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length.
https://github.com/openhwgroup/cva6
#ISA #RISCV #SystemVerilog #SV #CPU #RV64
Verilog Audio Controller is a basic audio controller providing I2S, SPDIF, and DAC outputs.
Simple to drive AXI4-L register interface, with built in 2048 entry buffer and interrupt on programmable threshold.
Features
โซ๏ธSPDIF tx supporting 16-bit data @ 44.1KHz or 48KHz
โซ๏ธI2S master (SCK, SDATA, WS)
โซ๏ธ2 channel sigma-delta DAC outputs
โซ๏ธAXI4-L register interface
โซ๏ธ8KB RAM buffer inferred (maps to BRAM)
โซ๏ธProgrammable interrupt threshold
โซ๏ธSingle interrupt output
https://github.com/ultraembedded/core_audio
#I2S #SPDIF #DAC #audio #verilog
@ipcores
Simple to drive AXI4-L register interface, with built in 2048 entry buffer and interrupt on programmable threshold.
Features
โซ๏ธSPDIF tx supporting 16-bit data @ 44.1KHz or 48KHz
โซ๏ธI2S master (SCK, SDATA, WS)
โซ๏ธ2 channel sigma-delta DAC outputs
โซ๏ธAXI4-L register interface
โซ๏ธ8KB RAM buffer inferred (maps to BRAM)
โซ๏ธProgrammable interrupt threshold
โซ๏ธSingle interrupt output
https://github.com/ultraembedded/core_audio
#I2S #SPDIF #DAC #audio #verilog
@ipcores
SURF (SLAC Ultimate RTL Framework) - a huge VHDL library for FPGA development.
Links:
โซ๏ธ sources
โซ๏ธ documentation
#VHDL #library #STL #primitives
@ipcores
Links:
โซ๏ธ sources
โซ๏ธ documentation
#VHDL #library #STL #primitives
@ipcores
A good entry point to CDC topic - from list of interesting documents explaining in depth CDC topics to gathering basic Clock domain crossing RTL modules, like:
โซ๏ธ IO debouncer
โซ๏ธ Simple synchronization thru 2 FFDs
โซ๏ธ Pulse synchronizer (with and w/o handshake)
โซ๏ธ Data bus synchronizer with recirculation mux
โซ๏ธ Asynchronous dual-clock FIFO (as submodule)
https://github.com/dpretet/cdc
#CDC #pulse #synchronizer #FF #fifo #SV #verilog
@ipcores
โซ๏ธ IO debouncer
โซ๏ธ Simple synchronization thru 2 FFDs
โซ๏ธ Pulse synchronizer (with and w/o handshake)
โซ๏ธ Data bus synchronizer with recirculation mux
โซ๏ธ Asynchronous dual-clock FIFO (as submodule)
https://github.com/dpretet/cdc
#CDC #pulse #synchronizer #FF #fifo #SV #verilog
@ipcores
๐1
Full AXI VHDL verification model -
UVVM (the Open Source Universal VHDL Verification Methodology) has just released a free and open source VHDL verification model for AXI4. It can be accessible from UVVM repository and be used in any VHDL testbench - even inside an old legacy testbench if you like - or together with other VHDL verification systems.
The AXI4 model has full support for independent channels, burst transfers and out of order transmissons. The UVVM AXI4-lite has also been upgraded to allow independent channels. This means UVVM now provides free and open source VHDL verification models for AXI4, AXI4-lite and AXI4-stream.
#VHDL #UVVM #AXI #AMBA #BFM #verification
@ipcores
UVVM (the Open Source Universal VHDL Verification Methodology) has just released a free and open source VHDL verification model for AXI4. It can be accessible from UVVM repository and be used in any VHDL testbench - even inside an old legacy testbench if you like - or together with other VHDL verification systems.
The AXI4 model has full support for independent channels, burst transfers and out of order transmissons. The UVVM AXI4-lite has also been upgraded to allow independent channels. This means UVVM now provides free and open source VHDL verification models for AXI4, AXI4-lite and AXI4-stream.
#VHDL #UVVM #AXI #AMBA #BFM #verification
@ipcores
bladeRF-wiphy - project is an open-source IEEE 802.11 compatible software defined radio VHDL modem. The modem is able to modulate and demodulate 802.11 packets (the protocol WiFi is based on), and can be adapted to various FPGA SDR platforms.
Features:
โฆ IEEE 802.11 compatible FPGA based PHY receiver and transmitter
โฆ Linux mac80211 MAC integration
โฆ RX and TX monitor mode support
โฆ Hardware Distributed Coordination Function (DCF) allows quick turn-around time ACKs
โฆ High-performance equalizer โ implements Zero Forcing (ZF) and optionally Decision Feedback Equalizer (DFE)
Links:
โฆ technical write-up
โฆ sources
#VHDL #OFDM #PHY #802.11 #BladeRF #WiFi
Features:
โฆ IEEE 802.11 compatible FPGA based PHY receiver and transmitter
โฆ Linux mac80211 MAC integration
โฆ RX and TX monitor mode support
โฆ Hardware Distributed Coordination Function (DCF) allows quick turn-around time ACKs
โฆ High-performance equalizer โ implements Zero Forcing (ZF) and optionally Decision Feedback Equalizer (DFE)
Links:
โฆ technical write-up
โฆ sources
#VHDL #OFDM #PHY #802.11 #BladeRF #WiFi
๐2
[WiP] ARM_Implementation - an implementation of ARM processor in Verilog.
Features:
โซ๏ธ Pipeline
โซ๏ธ Hazard Detection
โซ๏ธ Forwarding Unit
https://github.com/gsoosk/ARM_Implementation
#ARM #CPU #verilog
Features:
โซ๏ธ Pipeline
โซ๏ธ Hazard Detection
โซ๏ธ Forwarding Unit
https://github.com/gsoosk/ARM_Implementation
#ARM #CPU #verilog
[WiP] PCI2Nano - An open source FPGA PCI (not PCI-E) core, a 8250-Compatible PCI-based UART core and Nios II example design driving the UART.
Actually this is a turnkey set of open source design files and reference information for anyone to be able to start tinkering with PCI/PCIe on low end FPGAs. If you have a desire to interface to a host which supports PCIe and would like a quick way to design PCI functions which interface to the host, this project may be for you!
Links:
โซ๏ธ gateware
โซ๏ธ hardware
#PCI #verilog #UART #8250 #NIOS
Actually this is a turnkey set of open source design files and reference information for anyone to be able to start tinkering with PCI/PCIe on low end FPGAs. If you have a desire to interface to a host which supports PCIe and would like a quick way to design PCI functions which interface to the host, this project may be for you!
Links:
โซ๏ธ gateware
โซ๏ธ hardware
#PCI #verilog #UART #8250 #NIOS
๐1
parser-gen - Network packet parser generator. This generator produces synthesizable SystemVerilog.
It generates both fixed and programmable parsers. Fixed parsers use a parse graph that is chosen at generation time, while programmable parsers use a parse graph that is chosen at run time. The logic in a fixed parser is generated specifically for the chosen parse graph. The logic in a programmable parser is independent of the parse graph; however, the parse graph is used to build the testbench and to populate the parse state table (emulated TCAM/RAM) module.
Links:
โซ๏ธ Documentation
โซ๏ธ Sources
#python #perl #sv #SystemVerilog #network #verification #tcp #udp #stimulus #tb
@ipcores
It generates both fixed and programmable parsers. Fixed parsers use a parse graph that is chosen at generation time, while programmable parsers use a parse graph that is chosen at run time. The logic in a fixed parser is generated specifically for the chosen parse graph. The logic in a programmable parser is independent of the parse graph; however, the parse graph is used to build the testbench and to populate the parse state table (emulated TCAM/RAM) module.
Links:
โซ๏ธ Documentation
โซ๏ธ Sources
#python #perl #sv #SystemVerilog #network #verification #tcp #udp #stimulus #tb
@ipcores
GitHub
parser-gen/README.parse-graphs.md at master ยท grg/parser-gen
Network packet parser generator. Contribute to grg/parser-gen development by creating an account on GitHub.
GLIP - The Generic Logic Interfacing Project.
GLIP is a solution for transferring data through FIFOs between a host, usually a PC, and a target, usually a hardware component such as an FPGA or a microcontroller. The actual data transport can happen through various interfaces, such as USB 2.0, JTAG or TCP.
Features
โซ๏ธEasy FIFO-based communication, abstracting away all low-level details
โซ๏ธSupport for different communication channels through backends
โซ๏ธSide-channel communication (e.g. reset signals)
โซ๏ธDeveloped on and for Linux
Links:
โซ๏ธ Documentation
โซ๏ธ Sources
#verilog #SV #JTAG #FIFO #USB
@ipcores
GLIP is a solution for transferring data through FIFOs between a host, usually a PC, and a target, usually a hardware component such as an FPGA or a microcontroller. The actual data transport can happen through various interfaces, such as USB 2.0, JTAG or TCP.
Features
โซ๏ธEasy FIFO-based communication, abstracting away all low-level details
โซ๏ธSupport for different communication channels through backends
โซ๏ธSide-channel communication (e.g. reset signals)
โซ๏ธDeveloped on and for Linux
Links:
โซ๏ธ Documentation
โซ๏ธ Sources
#verilog #SV #JTAG #FIFO #USB
@ipcores
Verilog LFSR - Fully parametrizable combinatorial parallel LFSR/CRC module. Implements an unrolled LFSR next state computation.
โซ๏ธ
โซ๏ธ
โซ๏ธ
โซ๏ธ
โซ๏ธ
โซ๏ธ
Links:
โซ๏ธ Sources
#verilog #python #MyHDL #LFSR #CRC
@ipcores
โซ๏ธ
lfsr.v - Parametrizable combinatorial LFSR/CRC moduleโซ๏ธ
lfsr_crc.v - Parametrizable CRC computation wrapperโซ๏ธ
lfsr_descramble.v - Parametrizable LFSR self-synchronizing descramblerโซ๏ธ
lfsr_prbs_check.v - Parametrizable PRBS checker wrapperโซ๏ธ
lfsr_prbs_gen.v - Parametrizable PRBS generator wrapperโซ๏ธ
lfsr_scramble.v - Parametrizable LFSR self-synchronizing scramblerLinks:
โซ๏ธ Sources
#verilog #python #MyHDL #LFSR #CRC
@ipcores
๐1
SimpleVOut - FPGA Core for Creating VGA/DVI/HDMI/OpenLDI Signals
SimpleVOut (SVO) is a simple set of FPGA cores for creating video signals in various formats. The cores connect using AXI-streams. Most configurations (resolution, framerate, colordepth, etc.) are set at compile-time using Verilog parameters. See
Links:
โซ๏ธ Sources
#verilog #AXIS #VGA #DVI #HDMI #OpenLDI
@ipcores
SimpleVOut (SVO) is a simple set of FPGA cores for creating video signals in various formats. The cores connect using AXI-streams. Most configurations (resolution, framerate, colordepth, etc.) are set at compile-time using Verilog parameters. See
svo_defines.vh for details on those parameters.Links:
โซ๏ธ Sources
#verilog #AXIS #VGA #DVI #HDMI #OpenLDI
@ipcores
๐1๐1
Vortex - a full-system RISCV-based GPGPU processor.
Specs
โซ๏ธSupport RISC-V RV32I ISA
โซ๏ธFully scalable: 1 to 16 cores with optional L2 and L3 caches
โซ๏ธOpenCL 1.2 Support
โซ๏ธFPGA target: Intel Arria 10 @200 MHz
๐พ https://github.com/himanshu5-prog/vortexGPU
#verilog #GPGPU #GPU #FPGA #LLVM
@ipcores
Specs
โซ๏ธSupport RISC-V RV32I ISA
โซ๏ธFully scalable: 1 to 16 cores with optional L2 and L3 caches
โซ๏ธOpenCL 1.2 Support
โซ๏ธFPGA target: Intel Arria 10 @200 MHz
๐พ https://github.com/himanshu5-prog/vortexGPU
#verilog #GPGPU #GPU #FPGA #LLVM
@ipcores
๐1
LoRa Modulator - a custom LoRa modulator that supports different bandwidths and spreading factors (SF) on Lattice ECP5 FPGA and I/Q interface with AT86RF215 RF radio.
๐พ https://github.com/uw-x/lora-modulator
#verilog #RF #LoRa #modulator #transmitter
@ipcores
๐พ https://github.com/uw-x/lora-modulator
#verilog #RF #LoRa #modulator #transmitter
@ipcores
XiangShan - mature (almost 6000 commits) high-performance RISC-V processor by Institute of Computing Technology, Chinese Academy of Sciences.
๐พ https://github.com/OpenXiangShan/XiangShan
๐ https://github.com/OpenXiangShan/XiangShan-doc
#ISA #RISCV #scala #chisel #CPU #FPU
@ipcores
๐พ https://github.com/OpenXiangShan/XiangShan
๐ https://github.com/OpenXiangShan/XiangShan-doc
#ISA #RISCV #scala #chisel #CPU #FPU
@ipcores
S-Link - a lightweight chiplet/chip-to-chip controller. S-Link is a simple, scalable, and flexible link controller protocol geared towards chiplets and chip-to-chip communication.
S-Link defines the link layer, and gives freedom for various application and physical layers. The ultimate goal of S-Link is to provide a simple alternative for chiplet communication compared to other protocols.
Features:
โซ๏ธMult-lane support (upto 128+)
โซ๏ธ128b/130b encoding
โซ๏ธParameterizable Application Data Widths
โซ๏ธConfigurable Attributes for fine tuning link controls and/or active link management
โซ๏ธECC/CRC for error checking of packet headers and payload data
โซ๏ธParameterizable pipeline stages to optimize for frequency and/or power
๐พ https://github.com/waviousllc/wav-slink-hw
#chiplet #protocol #verilog
@ipcores
S-Link defines the link layer, and gives freedom for various application and physical layers. The ultimate goal of S-Link is to provide a simple alternative for chiplet communication compared to other protocols.
Features:
โซ๏ธMult-lane support (upto 128+)
โซ๏ธ128b/130b encoding
โซ๏ธParameterizable Application Data Widths
โซ๏ธConfigurable Attributes for fine tuning link controls and/or active link management
โซ๏ธECC/CRC for error checking of packet headers and payload data
โซ๏ธParameterizable pipeline stages to optimize for frequency and/or power
๐พ https://github.com/waviousllc/wav-slink-hw
#chiplet #protocol #verilog
@ipcores
๐5
700 followers ๐ฑ
Thank you to everyone of you! ๐๐ป
Thank you to everyone of you! ๐๐ป