Re: Interested in developing a simple DMA controller
Posted: Thu Mar 09, 2023 8:36 pm
That was me speculating about parts of the implementation that I hadn't considered or begun researching. I have a lot of open questions that will eventually need to be answered, I'm still way back on fundamental tasks like "can I program some hardware in Verilog to behave according to my basic design, outlined in my original post, in an entirely theoretical context devoid of reality?"Dacobi wrote: ↑Thu Mar 09, 2023 7:11 pmThat makes sense, but then I don't understand what StephenHorn meant by this?The FPGA doesn't know or care about the full 16-bit address. Remember how binary addressing works; the card only decodes the lower 5 bites on the address bus. The upper 11 bits don't matter, because IO3-IO7 guarantees that the address is already in a specific range.
As for how to go about assigning a specific address range, I'm sure that could be done easily enough in Verilog, but it would probably be ideal to rely on external logic to select the DMA controller for the appropriate range of addresses and assert a pin. A problem for someone else, or for me whenever I would get around to testing it. Which is why, way back on the first post, I was thinking it would need a "chip enable" pin, or equivalent, to indicate when it's been selected.
It seems like the alternative that makes the address range configurable would be to rely on more pins that are permanently tied high or low (either with traces or DIP switches), to select the appropriate address range the controller should respond to.
Frankly, I haven't even begun to consider details like "when the FPGA detects a triggering signal edge (which I'm pretending is PHI2 for the moment, even though that may prove ridiculous), can I even trust the signals on the address and data pins yet?"
I hadn't even looked at the hardware documentation to consider topics like "IO range selection". They're completely irrelevant to where I'm at.
And honestly, I'm having a hard time understanding whether you're asking a whole lot of questions because you're hoping to learn from me, or develop the design in my stead, or what, so I'm trying my best to parse your questions from the assumption that you know what you're doing better than I do. Please do not look to me for guidance. That would be the blind leading the blind. Instead, please assume that I'm an idiot and will need course correction, and/or grab a box of popcorn to enjoy while I careen into brick walls and generally make a glorious trainwreck out of my journey of discovery.
I mean, I wouldn't be surprised if I've made at least one completely idiotic technical assumption in every post I've made in this thread, including this one.