[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[oc] WISHBONE ack_o signal imlpementation
I have a question about imlpementing WISHBONE's ack_o signal in verilog.
I have the following need:
1. One wait state (ack_o) is returned one clock after stb_i and cyc_i
are asserted.
2. The ack_o should be asserted for one clock only and go down when
stb_i goes down (required by WISHBONE spec).
3. It should not toggle in long cycles.
There are no other clocks except the wishbone bus clock.
The simplest imlpentation:
1)
wb_ack_o <= #1 wb_cyc_i & wb_stb_i;
does one clock delay but it also delays the deassertion of wb_ack_o for
one clock too.
So, the following seemed like a good idea:
2)
wb_ack_o <= #1 wb_cyc_i & wb_stb_i & !wb_ack_o;
It was ok until David C.Davies pointed me out that on long cycles
(longer than 1 or 2 clock cycles) it toggles.
Looking at the WISHBONE spec I found that WISHBONE master should
deassert its cyc_o and stb_o next clock after receiving ack_i. That way
David's description of long cycles seems to be violating the rules of
WISHBONE.
In that case the second implementation seems to be the right one.
Am I right on this?
--
Jacob Gorban
Flextronics Semiconductor
T: +972-54-656775
F: +972-8-9275552
1 Lev Pesah st,
North Industrial Zone, 71293, Lod
Israel
--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml