OpenCores
URL https://opencores.org/ocsvn/wb2axip/wb2axip/trunk

Subversion Repositories wb2axip

[/] [wb2axip/] [trunk/] [README.md] - Blame information for rev 18

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 dgisselq
# WB2AXIP: A Pipelind Wishbone B4 to AXI4 bridge
2
 
3
Built out of necessity, [this core](rtl/wbm2axisp.v) is designed to provide
4
a conversion from a [wishbone
5
bus](http://zipcpu.com/zipcpu/2017/11/07/wb-formal.html) to an AXI bus.
6
Primarily, the core is designed to connect a
7
[wishbone bus](http://zipcpu.com/zipcpu/2017/11/07/wb-formal.html),
8
either 32- or 128-bits wide, to a 128-bit wide AXI bus, which is the natural
9
width of a DDR3 transaction (with 16-bit lanes).  Hence, if the
10
Memory Interface Generator DDR3 controller is running at a 4:1 clock rate,
11
memory clocks to AXI system clocks, then it should be possible to accomplish
12
one transaction clock at a sustained or pipelined rate.  This
13
[bus translator](rtl/wbm2axisp.v) is designed to be able to handle one
14
transaction per clock (pipelined), although [(due to Xilinx's MIG design)
15
the delay may be up to 27 clocks](http://opencores.org/project,wbddr3).  (Ouch!)
16
 
17 16 dgisselq
Since the initial build of the core, I've added the
18
[WB to AXI lite](rtl/wbm2axilite.v) bridge.  This is also a pipelined bridge,
19
and like the original one it is also formally verified.
20
 
21 8 dgisselq
# AXI to Wishbone conversion
22
 
23 16 dgisselq
As of 20181228, the project now contains an
24
[AXI4 lite read channel to wishbone interface](rtl/axilrd2wbsp.v), and also an
25
[AXI4 lite write channel to wishbone interface](rtl/axilwr2wbsp.v).
26
A third core, the [AXI-lite to WB core](rtl/axlite2wbsp.v) combines these
27
two together using a  [Wishbone arbiter](rtl/wbartbiter.v).  All four of these
28
designs have been formally verified, and should be reliable to use.
29 8 dgisselq
 
30 16 dgisselq
As of 20190101, [this AXI-lite to WB bridge](rtl/axlite2wbsp.v) has been
31
FPGA proven.
32 8 dgisselq
 
33 16 dgisselq
The full AXI4 protocol, however, is rather complicated--especially when
34
[compared to WB](http://zipcpu.com/zipcpu/2017/11/07/wb-formal.html).  As a
35
result, while there is a full-fledged
36
[AXI4 to Wishbone bridge](rtl/axim2wbsp.v) within this project,
37
this bridge is still not ready for prime time.  It is designed to
38
synchronize the write channels, turning AXI read/write requests into pipeline
39
wishbone requests, maintaining the AXI ID fields, handle burst transactions,
40
etc.  As designed, it ignores the AXI xSIZE, xLOCK, xCACHE, xPROT, and xQOS
41
fields, while supporting xBURST types of FIXED (2'b00) and INCR (2'b01)
42
but not WRAP (2'b10) or reserved (2'b11).  The design supports bridging
43
between busses of different widths.  The only problem is ...
44
this full AXI4 to WB converter _doesn't work_ (yet).  I know this because it
45
doesn't yet pass formal verification.
46 8 dgisselq
 
47
# Formal Verification
48
 
49
Currently, the project contains formal specifications for
50
[Avalon](bench/formal/fav_slave.v), [Wishbone](bench/formal/fwb_slave.v), and
51 16 dgisselq
[AXI](bench/formal/faxi_slave.v) busses.
52 8 dgisselq
 
53
# Commercial Applications
54
 
55
Should you find the GPLv3 license insufficient for your needs, other licenses
56
can be purchased from Gisselquist Technology, LLc.
57
 
58
# Thanks
59
 
60
I'd like to thank @wallento for his initial work on a
61
[Wishbone to AXI converter](https://github.com/wallento/wb2axi), and his
62 16 dgisselq
encouragement to improve upon it.  While this isn't a fork of his work, the
63
[pipelined wishbone to AXI bridge](rtl/wbm2axisp.v) took its initial
64
motivation from his work.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.