mrflibble said:
In what way too old? That, and do you happen to know if ECP3 / MachXO2 share the same lvds issue you are referring to?
Hi mrfibble,
What i meant old is, now the isplever tool can insert the ILVDS and OLVDS buffers automatically if we are define the ports as LVDS in the *.lpf file, so no need of using those ILVDS and OLVDS primitives in the Top RTL.
We can treat the LVDS ports as Normal IO ports in the design and only we need to define the port type as LVDS25/LVDS33/LVDS25s, etc. and also need to assign the RTL port to the positive LVDS pin of the FPGA, so during the synthesis the tool will insert the corresponding ILVDS/OLVDS buffer and also assing the negative LVDS pin of the FPGA.
Also i think in the current ECP2 library these ILVDS and OLVDS primitives are not there.
Here the issue is with multiple driving of data(6 downto 0), it may be cause because of this assignment, If not , then we need the complete Design code to find the multiple driven issue.
- - - Updated - - -
For more details you can refer the reference design from lattice
http://www.latticesemi.com/en/Products/DesignSoftwareAndIP/IntellectualProperty/ReferenceDesigns/ReferenceDesigns01/71LVDSVideoInterface.aspx
go to the download path and download the source, extract the zip file and go to the project folder select the vhdl or verilog then have a look on the *.lpf of ECP2,
Also you can look the source rtl code *.v or *.vhd files for the top module design