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
Attrs on DiffPairs only generate constraints for positive side #550
Comments
This is not just fine in most cases, it is in fact a hard requirement.
This means it is necessary to redesign the code that constrains differential ports. Please research which attributes need to be applied to one pin of the differential pair, and which attributes need to be applied to both. After that we can proceed. |
Hm... I was unable to find any information in the lattice docs about this :(. I dont really know how to proceed here |
Maybe @daveshah1 has an idea? |
This is very strange, for ECP5 physically there is only one bitstream bit that enables the diffresistor for both A and B |
@anuejn Can you diff the bitstreams with DIFFRESISTOR on none, one, two pins of the pair? |
It's even more interesting that Lattice's own example also only puts the constraint on the positive side:
|
There seems to be a difference? [anuejn@pink build]$ diff none.bit.hex one.bit.hex
12c12
< 000000b0: 204e 6f76 2032 3220 3136 3a30 333a 3338 Nov 22 16:03:38
---
> 000000b0: 204e 6f76 2032 3220 3136 3a30 343a 3438 Nov 22 16:04:48
18c18
< 00000110: 5243 3a20 3078 3035 3738 0043 5243 2043 RC: 0x0578.CRC C
---
> 00000110: 5243 3a20 3078 4431 3333 0043 5243 2043 RC: 0xD133.CRC C
367,369c367,369
< 000016e0: 0000 0000 0000 0000 0000 0000 0000 0001 ................
< 000016f0: 1cf3 ca00 0000 0000 0000 0000 0000 0000 ................
< 00001700: 0000 0001 1cf5 0500 0000 0000 0000 0000 ................
---
> 000016e0: 0000 0000 0000 0000 0000 0000 0000 0004 ................
> 000016f0: 28e7 9e50 0000 0000 0000 0000 0000 0000 (..P............
> 00001700: 0000 0000 0428 e7a8 2800 0000 0000 0000 .....(..(.......
376,381c376,381
< 00001770: 9400 0560 0000 0000 04e0 0009 c000 1380 ...`............
< 00001780: 0000 9c00 0138 0002 7000 04e0 0000 0000 .....8..p.......
< 00001790: 0000 0000 0000 0000 0000 0000 0000 55b7 ..............U.
< 000017a0: ffff ffff ffff ffff c280 0000 0000 0000 ................
< 000017b0: 2aa7 2200 0000 4000 0000 5e00 0000 ffff *."...@...^.....
< 000017c0: ffff ..
---
> 00001770: 0000 9400 0560 0000 0000 04e0 0009 c000 .....`..........
> 00001780: 1380 0000 9c00 0138 0002 7000 04e0 0000 .......8..p.....
> 00001790: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> 000017a0: f1a7 ffff ffff ffff ffff c280 0000 0000 ................
> 000017b0: 0000 2aa7 2200 0000 4000 0000 5e00 0000 ..*."...@...^...
> 000017c0: ffff ffff ....
[anuejn@pink build]$ diff two.bit.hex one.bit.hex
12c12
< 000000b0: 204e 6f76 2032 3220 3136 3a30 353a 3535 Nov 22 16:05:55
---
> 000000b0: 204e 6f76 2032 3220 3136 3a30 343a 3438 Nov 22 16:04:48
[anuejn@pink build]$ diff none.bit.hex two.bit.hex
12c12
< 000000b0: 204e 6f76 2032 3220 3136 3a30 333a 3338 Nov 22 16:03:38
---
> 000000b0: 204e 6f76 2032 3220 3136 3a30 353a 3535 Nov 22 16:05:55
18c18
< 00000110: 5243 3a20 3078 3035 3738 0043 5243 2043 RC: 0x0578.CRC C
---
> 00000110: 5243 3a20 3078 4431 3333 0043 5243 2043 RC: 0xD133.CRC C
367,369c367,369
< 000016e0: 0000 0000 0000 0000 0000 0000 0000 0001 ................
< 000016f0: 1cf3 ca00 0000 0000 0000 0000 0000 0000 ................
< 00001700: 0000 0001 1cf5 0500 0000 0000 0000 0000 ................
---
> 000016e0: 0000 0000 0000 0000 0000 0000 0000 0004 ................
> 000016f0: 28e7 9e50 0000 0000 0000 0000 0000 0000 (..P............
> 00001700: 0000 0000 0428 e7a8 2800 0000 0000 0000 .....(..(.......
376,381c376,381
< 00001770: 9400 0560 0000 0000 04e0 0009 c000 1380 ...`............
< 00001780: 0000 9c00 0138 0002 7000 04e0 0000 0000 .....8..p.......
< 00001790: 0000 0000 0000 0000 0000 0000 0000 55b7 ..............U.
< 000017a0: ffff ffff ffff ffff c280 0000 0000 0000 ................
< 000017b0: 2aa7 2200 0000 4000 0000 5e00 0000 ffff *."...@...^.....
< 000017c0: ffff ..
---
> 00001770: 0000 9400 0560 0000 0000 04e0 0009 c000 .....`..........
> 00001780: 1380 0000 9c00 0138 0002 7000 04e0 0000 .......8..p.....
> 00001790: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> 000017a0: f1a7 ffff ffff ffff ffff c280 0000 0000 ................
> 000017b0: 0000 2aa7 2200 0000 4000 0000 5e00 0000 ..*."...@...^...
> 000017c0: ffff ffff .... |
Oh no, there seems to be no difference! sorry for bothering you, I was simply wrong |
When I apply an io constraint to a
DiffPair
on machxo2 viaAttrs
the constraint only gets applied to the positive side of the differential pair. While this is fine in most cases for theDIFFRESISTOR=100
attribute this leads to only one side being terminated and thus SI problems.Repro:
leads to the following lpf:
The text was updated successfully, but these errors were encountered: