Line 1... |
Line 1... |
# A Wishbone Controlled Scope for FPGA's
|
# A Wishbone Controlled Scope for FPGA's
|
|
|
This is a generic/library routine for providing a bus accessed 'scope' or
|
This is a generic/library routine for providing a bus accessed 'scope' or
|
(perhaps more appropriately) a bus accessed logic analyzer for use internal to
|
(perhaps more appropriately) a bus accessed logic analyzer for use internal to
|
an FPGA. The general operation is such that this 'scope' can record and report
|
an FPGA. The general operation is such that this 'scope' can record and report
|
on any 32 bit value transiting through the FPGA. Once started and reset, the
|
on any 32 bit value transiting through the FPGA that you have connected to the
|
|
scope. Once started and reset, the
|
scope records a copy of the input data every time the clock ticks with the
|
scope records a copy of the input data every time the clock ticks with the
|
circuit enabled. That is, it records these values up until the trigger. Once
|
circuit enabled. That is, it records these values up until the trigger. Once
|
the trigger goes high, the scope will record for ``bw_holdoff`` more counts
|
the trigger goes high, the scope will record for ``bw_holdoff`` more counts
|
before stopping. Values may then be read from the buffer, oldest to most
|
before stopping. Values may then be read from the buffer, oldest to most
|
recent. After reading, the scope may then be reset for another run.
|
recent. After reading, the scope may then be reset for another run.
|
Line 24... |
Line 25... |
- oldest to most recent
|
- oldest to most recent
|
- one value per bus clock
|
- one value per bus clock
|
|
|
7. Writes to the data register reset the address to the beginning of the buffer
|
7. Writes to the data register reset the address to the beginning of the buffer
|
|
|
|
# Tutorials
|
|
|
|
The Wishbone scope was featured on [zipcpu.com](http://zipcpu.com) as [a
|
|
conclusion](http://zipcpu.com/blog/2017/07/08/getting-started-with-wbscope.html)
|
|
to the discussion of the example [debugging
|
|
bus](https://github.com/ZipCPU/dbgbus/tree/master/hexbus).
|
|
That example discussed how to hook up the scope to your logic, as well as how
|
|
to employ the [scope software](sw/scopecls.cpp) to create a VCD file
|
|
that could then be viewed in GTKWave.
|
|
The scope was also mentioned as a means of capturing [traces of button
|
|
bounces](http://zipcpu.com/blog/2017/08/02/debounce-teaser.html),
|
|
with the short discussion of how to set it up for that task
|
|
[here](http://zipcpu.com/blog/2017/08/07/bounce-dbgbus.html).
|
|
|
|
# Interfaces supported
|
|
|
|
1. [Wishbone B4/pipelined](rtl/wbscope.v)
|
|
2. [AXI lite](rtl/axi4lscope.v)
|
|
3. [Avalon](rtl/avscope.v)
|
|
|
# Commercial Applications
|
# Commercial Applications
|
|
|
Should you find the GPLv3 license insufficient for your needs, other licenses
|
Should you find the GPLv3 license insufficient for your needs, other licenses
|
can be purchased from Gisselquist Technology, LLC.
|
can be purchased from [Gisselquist Technology,
|
|
LLC](http://zipcpu.com/about/gisselquist-technology.html).
|