-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gpmc seems to occasionally mis-time address/data #9
Comments
On first BW revision, during devlopment most of examples gpmc clock was
100MHz then all worked fine but on second BW revision I met firsts similar
issues. I moved clock to 200MHz issue was fixed but probably not for all
cases. synchronization two different clocks is dificult and I'm not sure if
It works correctly. I will try take a look on it in this week.
pon., 9 lip 2018 o 22:56 Trammell Hudson <notifications@github.com>
napisał(a):
… I've been trying to track down why sdram results are sometimes wrong
(issue #7 <#7>) and think it
might be due to gpmc occasionally mis-timing data and address. I modified
the examples/sdram/top.v to require the top 8-bits of the commands to
have a magic value and log any writes to gpmc address 0 that don't have
those bits.
For a while everything is fine, but then a spurious value shows up,
usually with some bits of the previous write.
icetime is reporting that we're meeting the 100 MHz timing goal (9.08 ns
/ 110.08 MHz), so I think it is related to the clock-crossing in gpmc.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#9>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ANKxSAXlUHEXndQ4KQzk8d0r64VgvKFjks5uE8NngaJpZM4VIYCu>
.
|
Did you verify with
|
I tested it on real hardware and debugging based on output from
oscilloscope, I did not use icetime yet.
pon., 9 lip 2018 o 23:32 Trammell Hudson <notifications@github.com>
napisał(a):
… Did you verify with icetime that you could run at 200 MHz? With only four
levels I'm barely over 100 MHz (if I'm using the tool correctly):
icetime \
-d hx8k \
-p pinmap.pcf \
-P tq144:4k \
-C /usr/share/icestorm/chipdb-8k.txt \
-r sdram.timing \
-t sdram.asc
[...]
Resolvable net names on path:
0.640 ns .. 1.229 ns sdram_controller_1.state[2]
1.678 ns .. 2.267 ns $abc$7347$n238
2.667 ns .. 4.518 ns $abc$7347$n237
4.897 ns .. 6.089 ns $abc$7347$n391
6.405 ns .. 8.804 ns sdram_addr[10]$2
Total number of logic levels: 5
Total path delay: 8.87 ns (112.69 MHz)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#9 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ANKxSGKA_fJID4NUuyI9kJo1JULuRPasks5uE8v-gaJpZM4VIYCu>
.
|
Using the 200 MHz PLL I see the same sort of behaviour with wrong values being written into the GPMC registers. I don't have my fast scope with me to watch it on the PMOD port, so I'm debuggng via FIFO and poking at things. |
With this version of I'm working on a GPMC and bridge cleanup branch. Hoping to get the SDRAM working reliably as part of the commit and will put together a pull request once it works. |
I added timing into the gpmc test:
So I guess this means it takes about 7 GPMC clock cycles (at 25 MHz) per write and 10 for reads. |
The old gpmc converter IP is changed, now we are converting gpmc to wishbone. With these new changes, there should be no issue now. But if again found I will reopen the thread, thank you. regards, |
I've been trying to track down why sdram results are sometimes wrong (issue #7) and think it might be due to gpmc occasionally mis-timing data and address. I modified the
examples/sdram/top.v
to require the top 8-bits of the commands to have a magic value and log any writes to gpmc address 0 that don't have those bits.For a while everything is fine, but then a spurious value shows up, usually with some bits of the previous write.
icetime
is reporting that we're meeting the 100 MHz timing goal (9.08 ns / 110.08 MHz), so I think it is related to the clock-crossing in gpmc.The text was updated successfully, but these errors were encountered: