t-crest / patmos

Patmos is a time-predictable VLIW processor, and the processor for the T-CREST project
http://patmos.compute.dtu.dk
BSD 2-Clause "Simplified" License
135 stars 72 forks source link

Inconsistent tagging for PTP frames #134

Open epsilon-0311 opened 1 year ago

epsilon-0311 commented 1 year ago

Hi all,

as already discussed in the Friday meetings I stumbled across some funky behaviour how timestamps for the sent out message are created. I did some investigation inside the hardware and got the following trace. I marked the important signals orange Screenshot from 2022-11-06 21-16-59 Depicted are two sent out frames, where the start of a frame is indicated by a rising edge in the sofDetect signal. The \stateReg.0111 signal creates a rising edge if the Ethernet Frame is a PTP frame. In the first frame the ethTypeReg has the correct value therefore \stateReg.0111 is asserted and a time stamp is created i.e. timestampAvailReg gets set. In the second frame the ethTypeReg does not have the correct value, but all frames sent out are correctly detected as PTP frames by wireshark.

Given that I assume that may be an issue sampling the MII RX and TX Channels as I assume the IO device runs at 80 MHz like the remaining Patmos core, but according to Wikipedia the MII for 100 MBit uses a 25 MHz clock. Is it possible that this cause the wrong values in the ethTypeReg?

The full vcd file can be found here[Uploading dump.zip…]()

epsilon-0311 commented 1 year ago

I changed the trigger condition from the shift register used from the rising edge to the falling edge which significantly improved the measurements in my test setup. So I assume the issue was that the transition clocked out at the MII were not detected correctly

schoeberl commented 1 year ago

Hoooow, doing falling edge is in my opinion a dirty trick (which of course I did at some time for a write signal for an external SRAM.).

Cheers, Marrin

On 9 Nov, 2022, at 1:20, Christoph Lehr @.***> wrote:

I changed the trigger condition from the shift register used from the rising edge to the falling edge which significantly improved the measurements in my test setup. So I assume the issue was that the transition clocked out at the MII were not detected correctly

— Reply to this email directly, view it on GitHub https://github.com/t-crest/patmos/issues/134#issuecomment-1308454080, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAE63GBVW5ZIZLV74AFSJRDWHNUGZANCNFSM6AAAAAARYS4FK4. You are receiving this because you are subscribed to this thread.