Forum Discussion
Altera_Forum
Honored Contributor
20 years agoHello mountain8848,
Here more details about my SOPC Builder component. 1. I was using "Memory" addressing mode, now I switch to "Register". 2. To have correct timing for the USB device, I use a clock @ 36MHz for this SOPC Builder component, this clock is not needed by the USB device, it just need Read, Write and Chipselect signals. Is there another and/or perhaps better way to specify bus timings ? 3. I use Avalon Slave interface. I think it's the best choice, or not ? 4. For the address signals, I carried out serveral tests. First, after reading page 6-26 from Quartus II Handbook, Volume 4, I was thinking that Avalon address signal allways presents a byte address. So I put 3 address line on Avalon side (eg. address(2 downto 0)). address(0) --> Not used because data bus with is 16 bits address(1) --> A0 from USB Device address(2) --> For selection between USB Device and internal registers. But after some tests I saw that address(0) is not Avalon A0 signal but seems to be A1 ! So I change my address bus with on Avalon side to address(1 downto 0). address(0) --> A0 from USB Device address(1) --> For selection between USB Device and internal registers. Now I use IORD() and IOWR() macros and this configuration seems to work.