FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5890 Discussions

Tristate slave operation configuration

Altera_Forum
Honored Contributor II
714 Views

I built a tristate slave sopc component and I'm using it to access external memory. 

I have two problems: 

 

The first one, I found it was already discussed in following post: 

http://www.alteraforum.com/forum/showthread.php?p=77491 

My external device is 16bit wide but any IORD call results in two slave accesses, as complained in the linked post 

At the moment I must define the tristate slave with a fake 32bit data port and leave the upper bits unconnected. 

I ask if in the meantime the bug has been solved or if a patch is available (I'm using 9.0 sp2). 

 

The second issue is about tristate slave configuration. 

I can't add wait states to the read operation. 

In the tcl component definition I wrote: 

# Interface avalon_tristate_slave add_interface "avalon_tristate_slave" "avalon_tristate" "slave" "asynchronous" set_interface_property "avalon_tristate_slave" "isNonVolatileStorage" "false" set_interface_property "avalon_tristate_slave" "readLatency" "0" set_interface_property "avalon_tristate_slave" "holdTime" "1" set_interface_property "avalon_tristate_slave" "printableDevice" "false" set_interface_property "avalon_tristate_slave" "readWaitTime" "2" set_interface_property "avalon_tristate_slave" "setupTime" "1" set_interface_property "avalon_tristate_slave" "writeWaitTime" "1" set_interface_property "avalon_tristate_slave" "timingUnits" "Cycles" set_interface_property "avalon_tristate_slave" "minimumUninterruptedRunLength" "1" set_interface_property "avalon_tristate_slave" "activeCSThroughReadLatency" "false" set_interface_property "avalon_tristate_slave" "isMemoryDevice" "true" set_interface_property "avalon_tristate_slave" "writeWaitStates" "1" set_interface_property "avalon_tristate_slave" "maximumPendingReadTransactions" "0"  

clk=100MHz, then I assumed that readWaitTime=2 should lengthen the read strobe to 30ns. This is correctly shown in the waveform in Component Editor (Interface section). 

But measuring with oscilloscope I always have a 20ns value. 

Any ideas? 

 

Regards
0 Kudos
0 Replies
Reply