在易灵思的器件上接收LVDS一般采用PLL接收,通过PLL产生两个时钟,一个是fast_clk,一个是slow_clk,分别用于处理串行数据和并行数据。
但是如果LVDS的速率比较低时,另外想通过去掉PLL来节省功耗时,也可以直接用lvds_rx_clk直接走GCLK的方式来处理。下面我们来说明一下:
硬件环境如下:
![图片[1]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144329515-41729320209.png?v=1729320210)
打开interface在里面设置LVDS
![图片[2]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144331770-51729320211.png?v=1729320212)
LVDS的时钟接收Connection Type选择gclk。
对于数据设置串化因子为2,并输入Parallel Clock名字为上面定义的时钟。
![图片[3]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144332256-01729320212.png?v=1729320213)
在一切都设置好之后需要生成约束。但是会报以下错误。
![图片[4]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144334408-61729320214.png?v=1729320215)
但是解决办法是有的。在工程目录下新建pt_rule.ini文件,输入lvds_rule_rx_pll_refclk,再次生成结束可以正常。
![图片[5]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144336765-11729320216.png?v=1729320216)
另外注意在发送过程中发送的数据存在高低位需要顺序取反的问题。
![图片[6]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144337368-101729320217.png?v=1729320217)
![图片[7]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144338761-01729320218.png?v=1729320218)
程序框图如下:
![图片[8]-LVDS的GCLK接收方案-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019144339683-101729320219.png?v=1729320220)





没有回复内容