Forum Discussion

Lambert's avatar
Lambert
Icon for Occasional Contributor rankOccasional Contributor
6 years ago

How to implement Emulated LVDS OUTPUT buffers? Who can provide me one example?

Hello everyone,

Recently, I want to use the Emulated LVDS output on Arria V device. But I have no idea how to implement it ? Just to use Altera_tx IP + ALTIOBUF IP + Output Resistor Network? I have try once using the method, but It has error. Who can provide me one example about Emulated LVDS output buffer ?

Best regards,

Lambert

5 Replies

  • Rahul_S_Intel1's avatar
    Rahul_S_Intel1
    Icon for Frequent Contributor rankFrequent Contributor

    Hi Lambert,

    Kindly find the transcript from the user guide to perform Emulated LVDS OUTPUT buffers .

    Emulated LVDS Buffers in Arria V Devices The Arria V device family supports emulated LVDS: • You can use unutilized true LVDS input channels as emulated LVDS output buffers (eTX) for serializa‐ tion factors of 1 and 2. • The emulated differential output buffers support tri-state capability

    • Lambert's avatar
      Lambert
      Icon for Occasional Contributor rankOccasional Contributor

      Hi RSree,

      I have read that you said "Emulated LVDS Buffers In Arria V Device Handbook " previously. And I tried to use ALTLVDS_TX IP + ALTIOBUF + External resistor network to implement eTX.

      Code likes this (one) :

      altlvds_tx altlvds_tx_u(.tx_in(a), .tx_inclk(clk), .tx_enalbe(load_en), .tx_out(tx_out));

      altiobuf altiobuf_u(.data_in(tx_out), .oe(1'b1), .data_out(tx_out_o));

      altiobuf altiobuf_u1(.data_in(tx_out),.oe(1'b1),.data_out(tx_out_n));

      assign tx_out_n_o = ~tx_out_n;

      SDC like this:

      set_instance_assignment -name IO_STANDARD LVDS_E_3R -to tx_out_o

      set_instance_assignment -name IO_STANDARN LVDS_E_3R -to tx_out_n_o

      set_location_assignment PIN_A23 -to "tx_out_o"

      set_location_assignment PIN_A24 -to "tx_out_n_o" (assuming A23 and A24 for DIFFIO_RX)

      this method has error when I compile code.

      the code (two):

      altlvds_tx altlvds_tx_u(.tx_in(a), .tx_inclk(clk), .tx_enalbe(load_en), .tx_out(tx_out));

      altiobuf altiobuf_u(.data_in(tx_out), .oe(1'b1), .data_out(tx_out_o), .data_out_b(tx_out_n_o));

      ​SDC like this:

      set_instance_assignment -name IO_STANDARD LVDS_E_3R -to tx_out_o

      set_location_assignment PIN_A23 -to "tx_out_o"

      # set_location_assignment PIN_A24 -to "tx_out_n_o" (assuming A23 and A24 for DIFFIO_RX)

      this method has error when I compile code.

      the code (three)

      altlvds_tx altlvds_tx_u(.tx_in(a), .tx_inclk(clk), .tx_enalbe(load_en), .tx_out(tx_out));

      altiobuf altiobuf_u(.data_in(tx_out), .oe(1'b1), .data_out(tx_out_o));

      altiobuf altiobuf_u1(.data_in(tx_out),.oe(1'b1),.data_out(tx_out_n));

      assign tx_out_n_o = ~tx_out_n;

      SDC like this:

      # set_instance_assignment -name IO_STANDARD LVDS_E_3R -to tx_out_o

      #set_instance_assignment -name IO_STANDARN LVDS_E_3R -to tx_out_n_o

      set_location_assignment PIN_A23 -to "tx_out_o"

      set_location_assignment PIN_A24 -to "tx_out_n_o" (assuming A23 and A24 for DIFFIO_RX)

      this method has error when I compile code.

      So I don't know how to implement it , and I can not find one example and have no idea. I need help to resolve this problem. Can you help me?

      Thanks,

      Lambert

  • Rahul_S_Intel1's avatar
    Rahul_S_Intel1
    Icon for Frequent Contributor rankFrequent Contributor

    Hi Lambert,

    To be frank, I did not done an design with Altera LVDS block and Altiobuff. So I am not in a position to commend on the use case . One more thing I notices is that the file mentioned is SDC file, Can you please assign the above statement in qsf file.

    • Lambert's avatar
      Lambert
      Icon for Occasional Contributor rankOccasional Contributor

      Hi RSree,

      I think the problem does not depend on the file of pins assignments, and I think I face some special thing which needs to do when implement Emulated output buffer, if you have one simple case which you implementa the Emulated output buffer, it may give me a hand and let me find the error. Because I have no example to do this thing though I have serched for many files and website. There is less tips in Handbook.

      Best regards,

      Lambert​