Hi TrickyDicky, this isn't an access to bus problem.
Please read bellow.
Code:
----------- -------------
| | valid | |
| M |<--------------> | S |
| | | |
------------ -------------
The valid signal is used to identify when the data on the line is valid, because it uses asynchronous transmission.
Since the line is shared the issue is the following:
The master will pull high to signal valid data to the client.
Now the "valid signal" is still high.
The client will respond, and when the data is ready to transmit back to the master he will pull the "valid signal" high.
Since the signal is already high, no even occurs.
Here are solutions that I have been considering:
1) use logic for valid signal such that: if high, pull low; if low, pull high
2) use a pull down resistor, how can I do this in Verilog?
- Someone told me this isn't standard practice in industry, why not? what's wrong with it? what is used in industry?
3) other...please explain...