You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.
it's about reader and writer always connect to the same address, but I give them different clock signals.
Case1:
clockr: 0 0 1 0 0 1
clockw: 0 1 0 1 0 1
io_Address: 1 1 1 1 1 1
io_writeData: 95 20 10 38 53 21
output io_readData is 0 0 95 10 10 53
My thought is that, writer.data is connected to 95 at the first clk, after write-latency of 1, at 2nd clk, clockw meets a rising edge, billy has 95 at address 1. Why we get output 95 at 3rd clk is that, reader.data always connect to address 1, count from 2nd clk, after read-latency of 1, at 3rd clk, clockr meets a rising edge, reader get the 2nd clock's value at address 1.
it's similar that at 4th clk, billy should have 10 at address 1. But, there's no rising edge for clockr at 4th and 5th clk. So does that means reader.clk do not work? after the first rising edge, reader doesn't depend on it's clk signal.
then at 6th clk, reader.data get the value 53 which is the 5th input and should be written after 1 write-latency to address 1. Does that mean read-latency count from 5th clk, even the value is't written until 6th clk?
Case2:
Further more, to find out how latency works, I change read-latency to 2, and give the following inputs:
clockr: 0 1 0 0 1 0
clockw: 0 1 0 0 1 0
io_Address: 1 1 1 1 1 1
io_writeData: 95 20 10 38 53 21
output io_readData is 0 0 0 0 38 38
As the 4th input is 38 and read-latency is 2, I can't figure out why 5th output is 38.
I wonder the exact semantics on memory's multi-clock and latency.
Thank you.
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
When I'm running multi-clock memory in treadle, there are troubles understanding the result, here are the samples:
it's about reader and writer always connect to the same address, but I give them different clock signals.
Case1:
clockr: 0 0 1 0 0 1
clockw: 0 1 0 1 0 1
io_Address: 1 1 1 1 1 1
io_writeData: 95 20 10 38 53 21
output io_readData is 0 0 95 10 10 53
My thought is that, writer.data is connected to 95 at the first clk, after write-latency of 1, at 2nd clk, clockw meets a rising edge, billy has 95 at address 1. Why we get output 95 at 3rd clk is that, reader.data always connect to address 1, count from 2nd clk, after read-latency of 1, at 3rd clk, clockr meets a rising edge, reader get the 2nd clock's value at address 1.
it's similar that at 4th clk, billy should have 10 at address 1. But, there's no rising edge for clockr at 4th and 5th clk. So does that means reader.clk do not work? after the first rising edge, reader doesn't depend on it's clk signal.
then at 6th clk, reader.data get the value 53 which is the 5th input and should be written after 1 write-latency to address 1. Does that mean read-latency count from 5th clk, even the value is't written until 6th clk?
Case2:
Further more, to find out how latency works, I change read-latency to 2, and give the following inputs:
clockr: 0 1 0 0 1 0
clockw: 0 1 0 0 1 0
io_Address: 1 1 1 1 1 1
io_writeData: 95 20 10 38 53 21
output io_readData is 0 0 0 0 38 38
As the 4th input is 38 and read-latency is 2, I can't figure out why 5th output is 38.
I wonder the exact semantics on memory's multi-clock and latency.
Thank you.
The text was updated successfully, but these errors were encountered: