๐—œ๐—ฃ cores
1.24K subscribers
77 photos
1 file
75 links
Collection of IP-cores for FPGA & ASIC written on Verilog/VHDL

#FPGA #ASIC #VHDL #verilog #IP #Xilinx #Altera

PS: also might be intresting @fpgasic
Download Telegram
Digilent Vivado library contains free-to-use IP cores and interface definitions compatible with Xilinx Vivado IP Catalog.

https://github.com/Digilent/vivado-library

#vivado #ip #VHDL #verilog
@ipcores
VectorBlox ORCA is an implementation of RISC-V. It is intended to target FPGAs and can be configured as either #RV32I a #RV32IM core.

ORCA can be used as a standalone processor, but was built to be a host to Vectorblox's proprietary Lightweight Vector Extensions (LVE) or full-fledged Matrix processor MXP.

It has optional #AXI3/4 instruction and data caches, a separate #AXI4-Lite interface for uncached transactions, and an auxiliary interface that can be configured as either #WISHBONE, Intel #Avalon, or Xilinx #LMB.

https://github.com/VectorBlox/orca

#VHDL #RISCV @ipcores
FPGALink - Library for JTAG-programming and subsequently interacting with an FPGA over USB using a microcontroller (primarily the Cypress FX2LP). It allows you to:

* Load and save Cypress FX2LP firmware
* Communicate with the FPGA using HiSpeed USB (~25Mbyte/s)
* Reprogram the FPGA using JTAG over USB
* Bootstrap an FPGA design standalone using minimal components

https://github.com/makestuff/libfpgalink
https://github.com/makestuff/libfpgalink/wiki/FPGALink

#USB #FX2LP #FIFO #Interface #VHDL #verilog @ipcores
๐Ÿ‘1
Simple framework for building PCIe-based solutions for Altera FPGAs, including Linux driver & userspace examples, the requisite Altera PCIe core and supporting logic, and a simple DMA controller

https://github.com/makestuff/altera-pcie

#Altera #PCIE #DMA #Linux #SV
Open-source RISC-V from Bluespec, Inc; this is one of a family of free, open-source RISC-V CPUs.

* Piccolo: 3-stage, in-order pipeline: Piccolo is intended for low-end applications (Embedded Systems, IoT, microcontrollers, etc.).

* Flute: 5-stage, in-order pipeline: Flute is intended for low-end to medium applications that require 64-bit operation, an MMU (Virtual Memory) and more performance than Piccolo-class processors.

* Tooba: superscalar, out-of-order pipeline: slight variation on MIT's RISCY-OOO [In progress!]

* Bassoon: deep, out-of-order pipeline: [Coming!]

https://github.com/bluespec/Piccolo
https://github.com/bluespec/Flute
https://github.com/bluespec/Toooba
https://github.com/bluespec/Bassoon

#Verilog #RISCV #BlueSpec #BSV #AXI4
@ipcores
๐Ÿ‘1
GLIP is a solution for transferring data through FIFOs between a host, usually a PC, and a target, usually a HW-component such as an FPGA or a microcontroller. The actual data transport can happen through various interfaces, such as USB 3.0, JTAG or TCP. GLIP encapsulates all low-level details of the data transfers and provides on the host side an easy to use C library, and on the target side ready to use interfaces to quickly setup a working communication.

https://www.glip.io/
https://github.com/TUM-LIS/glip

#GLIP #Cypress #FX2LP #FX3 #verilog #OprenOCD #JTAG #FT2232 #UART #linux
@ipcores
LISNoC is a free Network-on-Chip implementation, mainly for academic or teaching purposes (but freely available for any use under the MIT license).
It is a straight forward implementation with follow basic features:
โˆ™ Virtual channel support
โˆ™ Flexible router configuration (number of input ports, number of output ports,..)
โˆ™ Wormhole routing, strict ordering
โˆ™ Round-robin arbitration for link multiplexing

http://www.lisnoc.org/
https://github.com/TUM-LIS/lisnoc

#NoC #router #interconnect #verilog
@ipcores
Forwarded from FPG๐”ธSIC
Reusable Integration Framework for FPGA Accelerators (RIFFA) is a simple framework for communicating data from a host CPU to a FPGA via a PCI-E. RIFFA supports Windows/Linux, Altera/Xilinx, with bindings for C/C++, Python, MATLAB and Java.

https://github.com/KastnerRG/riffa
#PCI-E #DMA #Linux
Forwarded from FPG๐”ธSIC
Yet another solution (IP+driver) for DMA over PCI-E for Linux/Windows Xilinx/Altera. http://xillybus.com/ #DMA #PCI-E #RIFFA #Xillybus
Verilog implementation of DisplayPort protocol for FPGA

Resolution| Lanes |Eff.Pix.clock
----------+-------+-------------
800x600 | 1 | 40.00 MHz
800x600 | 2 | 40.00 MHz
800x600 | 3 | 40.00 MHz
1280x720 | 1 | 74.25 MHz
1920x1080 | 2 | 148.50 MHz
3240x2160 | 2 | 165.00 MHz

https://github.com/hamsternz/DisplayPort_Verilog

#DisplayPort #verilog #video #FullHD
BaseJump STL: A standard library for SystemVerilog

This library has many of the standard components that you use in hardware design. But these ones are nicely parameterized, and try to use latency-insensitive
interfaces where it does not hurt performance.

Available sources, paper and video

#SV #library #STL #primitives
VHDL-extras - provides some extra bits of code that are not found in the standard VHDL libraries. The VHDL-extras library contains 50+ components and many more utility functions that can enhance and simplify many hardware development tasks.

โ— Core packages
โ—ฆ pipelining โ€“ Pipeline registers
โ—ฆ sizing โ€“ Generalized integer logarithms and array size computation
โ—ฆ synchronizing โ€“ Clock domain synchronizing components
โ—ฆ timing_ops โ€“ Conversions for time, frequency, and clock cycles
โ— Arithmetic
โ—ฆ arithmetic โ€“ Pipelined adder
โ—ฆ bit_ops โ€“ Bitwise operations
โ—ฆ cordic โ€“ CORDIC rotation algorithm and Sine/Cosine generation
โ—ฆ filtering โ€“ Digital filters
โ— Signal processing
โ—ฆ ddfs โ€“ Direct Digital Frequency Synthesizer
โ—ฆ oscillator โ€“ Sinusoidal frequency generators
โ— Error handling
โ—ฆ crc_ops โ€“ Compute CRCs
โ—ฆ hamming_edac โ€“ Generalized Hamming error correction encoding and decoding
โ—ฆ parity_ops โ€“ Basic parity operations
โ—ฆ secded_edac โ€“ Hamming extension with double-error detection
โ— Encoding
โ—ฆ bcd_conversion โ€“ Encode and decode packed Binary Coded Decimal
โ—ฆ gray_code โ€“ Encode and decode Gray code
โ—ฆ muxing โ€“ Decoder and muxing operations
โ— Memories
โ—ฆ fifos โ€“ General purpose FIFOs
โ—ฆ memory โ€“ Synthesizable memories
โ—ฆ reg_file โ€“ General purpose register file
โ— Randomization
โ—ฆ lcar_ops โ€“ Linear Cellular Automata
โ—ฆ lfsr_ops โ€“ Linear Feedback Shift Registers
โ—ฆ random โ€“ Simulation-only random number generation
โ— Miscellaneous
โ—ฆ binaryio โ€“ Binary file I/O
โ—ฆ interrupt_ctl โ€“ General purpose priority interrupt controller
โ—ฆ text_buffering โ€“ Store text files in internal buffers
โ—ฆ glitch_filtering โ€“ Clean up noisy inputs


Docs and sources

#VHDL #library #primitives
๐Ÿ‘1
OpenSource Hybrid Memory Cube Controller (meets HMC specification Rev 1.1).

Features
โ— Full link-training, sleep mode, and link retraining
โ— 16Byte up to 128Byte read and write transactions
โ— Posted and non-posted bit-write and atomic requests
โ— Mode Read and Write
โ— Full packet flow control
โ— Packet integrity checks (sequence number, packet length, CRC,...)
โ— Full automatic link retry

Configurations
โ— 2 FLITs per Word / 256-bit datapath
โ— 4 FLITs per Word / 512-bit datapath
โ— 6 FLITs per Word / 768-bit datapath
โ— 8 FLITs per Word / 1024-bit datapath


Sources, docs

#HMC #memory #SV
Wave Computingยฎ Inc., the Silicon Valley company launches MIPS Openโ„ข, provides royalty-free access to chip design data. New Release of MIPSOpen Components Includes Verilog RTL Code for MIPS32 microAptiv Cores

The new set of MIPS Open program components will include two different versions of the microAptiv Verilog RTL code:

โ— microAptiv MCU core: designed with application-specific features and real-time performance for microcontroller SoC development
โ— microAptiv MPU core: includes a cache controller and MMU facilitating embedded system designs executing operating systems such as Linux

In addition to the Verilog RTL code, the package also includes documentation, configuration tools and a verification suite.
MIPS Open program components are available for immediate download

#MIPS #MIPS32 #MIPSOpen #microAptiv #microMIPS #RTL #verilog
Display Controller project written in verilog and supports VGA, DVI, and HDMI displays. It includes full configuration for 640x480, 800x600, 1280x720, and 1920x1080, as well as the ability to define custom resolutions. TMDS Encoder model already included in src.

https://github.com/projf/display-controller

#HDMI #DVI #TMDS #SerDes #VGA #verilog #Xilinx
๐Ÿ‘2
ARM provide easy access to Cortex-M Soft Processor IP on Xilinx FPGA.

DesignStart FPGA offers instant and free access to Cortex-M1 and Cortex-M3 soft CPU IP for use on Xilinx FPGA designs for prototypes and commercial deployments.

The Cortex-M1 and Cortex-M3 processor IP is at full release quality (REL) and suitable for mass deployment. The example systems, board support package and tool integration are released at beta with updates and improvements on an ongoing basis.

Link (registration required)

#ARM #Xilinx #Cortex #CPU #DesignStart
The AMBA Bus Protocol Assertions is a verification and validation product designed to work with a range of different user environments and usage scenarios. The underlying goal is to provide protocol specific SystemVerilog assertions for the AMBA v3 & v4: ACE, AXI3, AXI4, AXI4-Lite and AXI4-Stream protocols.

Features:
โ—ฆ Support for the latest version of the AXI Specification
โ—ฆ Support for separate parameterisation for read and write ID widths
โ—ฆ Enhancements to end of simulation checks

This release has been developed and tested:
โ—ฆ SystemVerilog v3.1a
โ—ฆ Mentor ModelSim SE 10.1a
โ—ฆ Cadence Incisive 11.10.008
โ—ฆ Synopsys VCS 2011.12-3

Download links:
โ—ฆ AMBA 3 AXI3 Protocol Assertions
โ—ฆ AMBA 4 AXI4 Protocol Assertions
โ—ฆ AMBA 4 ACE Protocol Checker
โ—ฆ [All downloads required registration]

#AMBA #AXI #AXIlite #AXIS #SVA #SV #BFM #verification #ProtocolChecker
๐Ÿ‘2โค1๐Ÿ”ฅ1
Your preferable way to make RTL:
Anonymous Poll
66%
Verilog
25%
VHDL
4%
HLS
5%
Python (MyHDL/MiGen/etc)
Forwarded from FPG๐”ธSIC
In order to improving of content relevancy please help us by voting for favourite/most used FPGA vendor:
Anonymous Poll
66%
Xilinx
22%
Altera/Intel
6%
LatticeSemi/Micosemi/Microchip/etc
6%
I don't use FPGA (e.g. ASIC or so)
๐—œ๐—ฃ cores pinned ยซYour preferable way to make RTL:ยป
BOOM - an open-source out-of-order RISC-V CPU (RV64G ISA).
Like most contemporary high-performance cores, BOOM is superscalar (able to execute multiple instructions per cycle) and out-of-order (able to execute instructions as their dependencies are resolved and not restricted to their program order).

The main features of BOOMv2:
โ—ฆ updated 3-stage front-end design with a bigger set-associative Branch Target Buffer (BTB)
โ—ฆ pipelined register rename stage
โ—ฆ split floating point and integer register files
โ—ฆ dedicated floating point pipeline
โ—ฆ separate issue windows for floating point, integer, and memory micro-operations
โ—ฆ separate stages for issue-select and register read

Links:
โ—ฆ Sources
โ—ฆ Publication
โ—ฆ Presentation

#RISCV #RV64 #out-of-order #scala #chisel #CPU #BOOM