J
Johnny
Guest
Hi all,
I have some questions about implementing an AHB slave interfce. If
anyone out there had ran into these similar problems before, any
suggestion and help would be greatly appreciated. I am trying to
create a AHB slave in VHDL to interface with the AMBA bus, which has a
ARM7 processor as the master. HDATA and HADDR buses are bidirectional.
I have read from many sources stating that HREADY from the slave
should be held HIGH when is inactive. When I do that, I will not be
able do download software code to the processor that performs simple
read/write operation. On the other hand, if I keep HREADY Low and only
assert it HIGH when the data is ready (for write operation), it works.
So what I mean is I can perform a write operation from the processor
to the register on the slave though the bus. However, when I perform a
read operation, I constantly getting wrong data. The wrong data seems
to be coming from a few cycles before even the control signals from
the processor arrive at the bus. It is very odd. I am not sure if I
describe the problems clearly but basically I can write and I can't
read (although the simulated waveform looks fine compares to the AMBA
spec). Any help would be great. Thanks
Johnny
I have some questions about implementing an AHB slave interfce. If
anyone out there had ran into these similar problems before, any
suggestion and help would be greatly appreciated. I am trying to
create a AHB slave in VHDL to interface with the AMBA bus, which has a
ARM7 processor as the master. HDATA and HADDR buses are bidirectional.
I have read from many sources stating that HREADY from the slave
should be held HIGH when is inactive. When I do that, I will not be
able do download software code to the processor that performs simple
read/write operation. On the other hand, if I keep HREADY Low and only
assert it HIGH when the data is ready (for write operation), it works.
So what I mean is I can perform a write operation from the processor
to the register on the slave though the bus. However, when I perform a
read operation, I constantly getting wrong data. The wrong data seems
to be coming from a few cycles before even the control signals from
the processor arrive at the bus. It is very odd. I am not sure if I
describe the problems clearly but basically I can write and I can't
read (although the simulated waveform looks fine compares to the AMBA
spec). Any help would be great. Thanks
Johnny