Comments (9)
When looking at Figure 2 in
https://github.com/GlasgowEmbedded/archive/raw/main/G00079/Using_Differential_IOLVDS_Sub-LVDS_in_iCE40_Devices_Revision_1.5.pdf
it seems like IOL_nA is non-inverting and IOL_nB is inverting. The document explicitly mentions LP/HX devices and not UP. It is also explained in the text on page 3:
Connect the positive or true polarity side of the differential pair to the DPxxA input and the negative or complemen-
tary side of the pair to the DPxxB input.
This doesn't match the above mentioned nMigen comment.
I couldn't quickly find another document from Lattice confirming this.
The ball numbers in our symbol and the IOL_nA / IOL_nB description matches the pinout description from Lattice.
We always call the *_A from the FPGA _P (positive, non-inverting) and the *_B _N (negative, inverting). This matches the LVDS document I linked above.
When comparing the LVDS pinout on revC0, revC1 and revC2 I couldn't see a difference.
I'm trying to understand where the issue actually occurs. Could it be that the nMigen comment is wrong? Or is the error in the Lattice documentation?
from glasgow.
from IRC discussion https://freenode.irclog.whitequark.org/glasgow/2021-03-29#29552047 :
@adamgreig found that Lattice changed the _A and _B designators in the revision history of the tech note linked above. This suggests that there are some inconsistencies in the Lattice documentation about this detail. So it is not unlikely that the nMigen comment is correct.
from glasgow.
Could it be that the nMigen comment is wrong? Or is the error in the Lattice documentation?
If you try to synthesize a design with the pins assigned as they are right now, you get a placement error.
from glasgow.
Further progress from IRC:
@smunaut saw that inverting and non-inverting is swapped between input and output pairs.
Naming in the Glasgow schematics currently matches output pairs.
Figure 9 in the tech note shows that the input pair has a fixed polarity, while for the output pair LUTs are used, so inverting is free. This would mean that naming the pins in the schematics would be better done according to input pairs.
Now the best course of action is still to be determined: Swapping pin names now could lead to confusion with existing addons/documents/code. OTOH, getting a placement error with the names from the schematics will lead to confusion too.
from glasgow.
Swapping pin names now could lead to confusion with existing addons/documents/code. OTOH, getting a placement error with the names from the schematics will lead to confusion too.
Fix it. The LVDS connector is supported on a best-effort basis so I am not concerned about downstream fallout. Also, barely anyone has ever used it.
from glasgow.
I assume we mean swapping the labels, not the traces. If so, agreed. Whatever fallout exists right now can be mitigated, let's make the docs sane from here on.
from glasgow.
Yes, the labels of course.
from glasgow.
As this just affects the labeling and not the traces, I don't consider it urgent. I'm currently busy with other stuff, so it will take me 3 weeks or so until I'll work on it.
If someone else wants to work on this, feel free to take over this issue and send a pull request or questions.
from glasgow.
@esden some notes here on the lvds connector that might affect the rampak (but likely not since the only differential signal is the clock which is an output from the fpga).
from glasgow.
Related Issues (20)
- Custom USB Manufacturer String HOT 1
- [RFC] New basis of operation: Reliable Datagram Pipe HOT 18
- JESD3 lexer calculates wrong checksum whenever CR newlines are used HOT 1
- Replace the dependency on `crc` using `amaranth.lib.crc`
- A logo
- Device fails to enumerate when plugged in for the first time on Windows HOT 15
- Instructions in README do not make it possible to build bitstreams on Windows HOT 4
- Glasgow does not gracefully shutdown if the device is unplugged... HOT 3
- Devices may "forget" firmware. HOT 4
- Add host OS version to `--version` output HOT 6
- Add social media card to the docs HOT 1
- Add a flag to `glasgow factory` which indicates that the device has been modified from the original design
- "glasgow --version" produces TypeError: entry_points() got an unexpected keyword argument 'group' HOT 10
- Calling `exit()` from script / REPL does not terminate glasgow HOT 1
- Mention cases (3d-printable as well) in the documentation HOT 2
- glasgow build also has importlib issues with python <3.10
- Add the very nice diagrams from CrowdSupply packaging on the website
- running Glasgow exectutable produces "TypeError: expected string or bytes-like object" in packaging\utils.py HOT 21
- Export BOM for revC3 and add whichever script generates it in the tree
- udev rules on Arch(-ish) systems HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glasgow.