zipcpu VS wb2axip

Compare zipcpu vs wb2axip and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
zipcpu wb2axip
13 51
1,190 431
- -
6.3 3.1
about 1 month ago 3 months ago
Verilog Verilog
- -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

zipcpu

Posts with mentions or reviews of zipcpu. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-20.
  • Xilinx FIFO generator for skid buffer?
    2 projects | /r/FPGA | 20 Oct 2022
    For example, my most recent ZipCPU DMA design will (eventually) handle 8b, 16b, 32b, or arbitrary transfer sizes for both reading or writing. This has forced me to place a shim both before and after the FIFO to make it work properly.
  • Five legally free FPGA books (plus one about Machine Learning)
    1 project | /r/FPGA | 6 Sep 2022
    The Some Assembly Required series on Youtube has a good walkthrough of implementing a 6502, from scratch. Also, /u//ZipCPU has some good documentation of the CPU he built from scratch, as well as some tutorials, at https://zipcpu.com/ and https://github.com/ZipCPU/zipcpu.
  • What make xilinx fpga runs soft core cpu faster than lattice
    1 project | /r/FPGA | 27 Mar 2022
    check out this usage chart for the ZipCPU's logic usage (also linked above). Each line in the chart beginning with Zip represents a different CPU configuration. If the FPGA speeds were the same (they aren't typically), then each configuration line should have the same CPU speed (not counting interconnect, RAM or peripherals). Two of the columns measure iCE40 4-LUTs and Xilinx 6-LUTs.
  • OS AXI4 Crossbar with good performance
    4 projects | /r/FPGA | 7 Mar 2022
    If you are looking for an AXI4 cache implementation, the ZipCPU currently supports two (I+D) that you might be able to gain some insights from. There's the AXI instruction cache implementation, and an AXI4 data cache implementation. They are both one way caches. Both were featured in an article on performance measurement last year. The data cache implementation doesn't support exclusive access yet--that's still on my to-do list. You can find these caches demonstrated in my AXI DMA check repo, if you'd like to try them out.
  • Why is simulation such an important step in the design workflow? Why not just run on actual hardware?
    1 project | /r/FPGA | 30 Nov 2021
    My experience comes from both the ZipCPU (a basic pipelined CPU) and verifying a lot of bus components. I haven't (yet) done an out of order processor, although I will say that verifying a cache gets really basic with formal methods, and I've now verified several cache implementations. The first data cache I wrote took me about two weeks to both write and complete a full formal proof.
  • What modules/hardware would you like to see?
    3 projects | /r/FPGA | 14 May 2021
    I've posted quite a few AXI designs on github. These include an AXI Crossbar, an AX DMA, and even an AXI scatter-gather based DMA. Some of my recent postings even include instruction or [data](instruction caches.
  • Using Xilinx AXI Datamover to move DDR memory to FPGA block RAM
    1 project | /r/FPGA | 2 Apr 2021
    Were this my task, I'd write the core myself. I have, for example, an AXI instruction cache you can reference if you'd like and I'm currently building a data cache following this Wishbone example, only for AXI instead. (I was hoping to offer a Zoom call today for anyone interested, where we'd try verifying this new data cache, but ... I didn't get far enough along on the project to do so today. Perhaps next week.()
  • [Help] CPU: Changing from BRAM to real program flash
    5 projects | /r/FPGA | 15 Mar 2021
    In some of my early CPU tests, one of my earlier instruction fetches would just keep reading up to 16 instructions ahead of time. I thought this was great until I started examining the resulting performance. The first problem was that it wouldn't release the bus for either a data load or store, and the next problem was that the request was so long the result was often irrelevant by the time it arrived since the CPU had already branched away from the addresses it was fetching.
  • Can someone help me fix my simulation workflow?
    2 projects | /r/FPGA | 28 Feb 2021
    That solution isn't all that satisfying to me, so ... I'm trying to do better. My next attempt is going to be 1) using the ZipCPU instead of the ARM (at least for simulation, and certainly instead of a BFM), 2) using AXI instead of Wishbone (Yes, the ZipCPU can now speak either Wishbone or (mostly) AXI), using my own AXI infrastructure (to get rid of the bridges), and using AutoFPGA to compose the design together and handle addressing requirements (instead of Qsys).
  • Soft CPUs - how to debug and test in a sane way?
    4 projects | /r/FPGA | 27 Dec 2020
    Yes, the ZipCPU is modular. It consists of several components: a pre-fetch (of which there are several to choose from), an instruction decoder, an ALU, a divide unit, a multiply unit, and a memory unit (of which there are multiple to choose from again). Each unit has its own unit tests (proofs--not simulations).

wb2axip

Posts with mentions or reviews of wb2axip. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-10.
  • Simple skid buffer implementation
    3 projects | /r/FPGA | 10 Jan 2023
    I've always been partial to my own skidbuffer article and implementation. (You'd expect me to be, they're my own ...) I get your point, though, about some applications needing a registered output. I've come across many, as requirements change from one project to the next. This is why, in my own implementation, I have parameters allowing me to adjust which implementation I'm using. In this case in particular, I have a parameter adjusting whether or not the output is registered. (The outgoing READY signal, though, is always registered--that's the point of the skid buffer in the first place, and what keeps it from being a regular buffer.)
  • Testing Axi Slaves in Simulation
    1 project | /r/FPGA | 4 Jan 2023
    Ref: [1], [2]
  • Looking to implimenting an autocorrelation function (ACF) into one of my projects.
    3 projects | /r/FPGA | 24 Nov 2022
    Have you considered this article? It goes over the basics of the autocorrelation function, while also illustrating how you can build one with a Wishbone interface. Further, the Verilator logic for this function is kept and maintained on github here. Sure, it uses Wishbone. If you want to use AXI you can either use a bridge, or rework the the interface (it's not that hard ...).
  • Guys can u send me some github repositories on some simple project on system verilog with functionality like with couple functions ? Its my first reddit post in my life.
    1 project | /r/FPGA | 14 Nov 2022
    If this is what you want, though, then consider checking out the apply_wstrb function in my wb2axip repository. Perhaps the easyaxil might be the easiest one to start with.
  • Reference of verification IPs
    7 projects | /r/FPGA | 2 Nov 2022
    The worst thing that can happen on a bus is a protocol error that causes the device to lock up. Sadly, such errors have been common when using AXI or AXI-Lite--especially since traditional "verification IP" bus models won't catch all circumstances. This is why I make a general (personal) rule that nothing should touch a bus unless it has been formally verified. This check basically guarantees that every bus request gets one (and only one) response. It's not sufficient to verify an IP fully, but it's a good start. You can find my formal verification models for AXI-Lite, Wishbone, and (to some extent) Avalon in this repository. I've also been known to make my full AXI model available to Patreon sponsors of my blog.
  • A simple AXI-Lite register file
    1 project | /r/FPGA | 24 Oct 2022
    As an experiment, I tried a formal first approach using u/ZipCPU's faxil_slave.v.
  • AXI-Lite register bank revisited
    1 project | /r/FPGA | 22 Oct 2022
    I then moved on to an internal desk check of the design ... 1. skydivertricky is right: AXI does not allow timeouts. If you implement an AXI timeout, you will risk crashing any system using your design. Your timeout implementation is therefore broken, and will risk crashing any system attempting to interact with your design. This applies to both your read and write paths. 2. Sure enough, your write state machine looks only for the write address strobe during the idle state. If write data shows up early, the write data will be forgotten causing the system to hang. This was one of the bugs caught by SymbiYosys and mentioned above. 3. Your design has a nasty sequencing bug within it: wren is set on the clock _after the transaction takes place. As a result, the s_axi_awaddr and s_axi_wdata values used within your design may contain garbage within them. Indeed, they may be already set for the next transaction, or the master may put some other value in them. As a result, writes to your design may work for some masters, or more likely will not work at all. (They won't work with any of my own open source AXI-lite masters.) 4. I would recommend implementing WSTRB. There are plenty of implementations out there that will use this value, particularly when crossing from one bus width to another, but also when the CPU attempts to write less than a full word. I've been burned more than once by acting on a write when WSTRB was zero. 5. As predicted by SymbiYosys, your read data calculation is also broken. Specifically, it depends upon the value in ARADDR on the cycle following the cycle where ARVALID && ARREADY. This breaks protocol, and is likely to give you some very unexpected results. 6. While not technically broken, I would recommend that your reads ignore the bottom two bits of address. If you do this, the reads will then work if the CPU issues a load-byte or load-halfword instruction. The same applies to the writes--you should be looking at all but the bottom two bits (for a bus with 32-bit data words, like AXI-lite).
  • Xilinx FIFO generator for skid buffer?
    2 projects | /r/FPGA | 20 Oct 2022
    Can a FIFO be generated to use the AXI stream protocol? Absolutely! Check out this FIFO: - S_AXIS_VALID can be fed to the write port, i_wr - S_AXIS_READY is the compliment of the FIFO full output, o_full - S_AXIS_DATA can be fed to the incoming data port, i_data - M_AXIS_VALID is the compliment of the FIFO empty output, o_emtpy - M_AXIS_READY can be fed directly to the read port, i_rd - M_AXIS_DATA can be read directly from the outgoing data port, o_data - If you want to support other AXI Stream signals, they can simply be concatenated with the data signals above.
  • Connecting custom IP to microblaze
    1 project | /r/FPGA | 24 Sep 2022
    I recently connected my own IP to a Microblaze core via the AXI-lite interface. Vivado has a tool to generate AXI IP, but it's broken so I used this implementation of an AXI-lite slave. It comes with some registers that'll be accessible in the processors address space. Here is a more detailed explanation of the linked implementation.
  • Implement Synchronous FWFT FIFO in BRAM
    1 project | /r/FPGA | 7 Jul 2022
    Here's an example of an FWFT FIFO written in a vendor independent fashion. Yes, it requires a bit of wizardry to get right--primarily in how the read address is calculated, but I've used it for years now and it's held up nicely for me.

What are some alternatives?

When comparing zipcpu and wb2axip you can also consider the following projects:

lxp32-cpu - A lightweight, open source and FPGA-friendly 32-bit CPU core based on an original instruction set

wavedrom - :ocean: Digital timing diagram rendering engine

riscv - RISC-V CPU Core (RV32IM)

VexRiscv - A FPGA friendly 32 bit RISC-V CPU implementation

openarty - An Open Source configuration of the Arty platform

verilog-axi - Verilog AXI components for FPGA implementation

FPGA_Asynchronous_FIFO - FIFO implementation with different clock domains for read and write.

neorv32 - :rocket: A tiny, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL.

interpolation - Digital Interpolation Techniques Applied to Digital Signal Processing

axidmacheck - AXI DMA Check: A utility to measure DMA speeds in simulation

f4pga-examples - Example designs showing different ways to use F4PGA toolchains.

Rudi-RV32I - A rudimental RISCV CPU supporting RV32I instructions, in VHDL