Forum Discussion

Tex's avatar
Tex
Icon for Occasional Contributor rankOccasional Contributor
2 years ago
Solved

UART receiver loopback characters VHDL

Greetings,

I'm new to the world of FPGA's

could anyone suggest me anything that helps me to learn implementing UART serial communication receiver loopback characters without state machines in VHDL

Best regards,

Tex

10 Replies

  • FvM's avatar
    FvM
    Icon for Super Contributor rankSuper Contributor

    Hi,
    please elaborate your question. UART receiver implementation in VHDL is more or less clear, how is it specifically related to loopback?
    What's your problem with state machines?

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

    Thanks for your reply,

    I'm a student, I would like to learn UART with fpga in VHDL

    loopback what i mean is, if i enter in the keyboard any character it should display in the serial monitor

    i'm thinking state machines are tough to learn

    please help me with any kind of tutorials where i can learn it or any codes

    best regards,

    Tex

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

    Thanks for your valuable reply that's very help full tutorial for receiving

    I'm trying to achieve whatever the character i press in the keyboard it should receive in the serial monitor

    could you please help me

    Best regards,

    Tex

  • ShengN_altera's avatar
    ShengN_altera
    Icon for Super Contributor rankSuper Contributor

    Hi Tex,

    You may check on this first example design link:

    https://github.com/Domipheus/UART

    https://domipheus.com/blog/a-uart-implementation-in-vhdl/

    Make appropriate connection between O_tx and I_rx to form a loopback. The simulation result like below:

    This is second example design link (apparently state machine):

    https://nandland.com/project-7-uart-part-1-receive-data-from-computer/

    https://www.edaplayground.com/x/7Em

    https://www.edaplayground.com/x/5vEh

    https://nandland.com/7-segment-display/

    Make appropriate connection between o_TX_Serial and i_RX_Serial to form a loopback. The simulation result like below:

    Thanks,

    Best Regards,

    Sheng

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

      in test bench it is working

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

      Thank you sheng this helped me alot..

      for the link 1

      when i try to assain pins there are showing more than 50

      please tell me which pins should i assaign only 3 enough ???

      regards,

      Tex

      • ShengN_altera's avatar
        ShengN_altera
        Icon for Super Contributor rankSuper Contributor

        Hi Tex,

        Pins that should be assgined:

        I_clk

        I_reset

        I_txData (If you're getting the data externally from the board, then needed. Otherwise, not needed)

        O_tx, I_rx (Needed as to make loopback connection)

        O_rxData (If you're showing the received data externally to the board like LED or Monitor, then needed. Otherwise, not needed)

        For this I_txSig, you can comment out this input port and the rest in the code if you're not using it.

        For I_rxCont and I_clk_baud_count, you can declare them as signal instead of input port so that not need to make any pin assignment. For example like below:

        signal I_clk_baud_count : STD_LOGIC_VECTOR(15 downto 0) := X"01B2"; -- 115200bps @ 50Mhz Clk
        signal I_rxCont : STD_LOGIC := '1';

        Pins that not needed to be assigned (monitor and debug purpose):

        If you want to assign, you can assign to for example like LED respectively.

        O_txRdy

        O_rxSig

        O_rxFrameError

        D_rxClk

        D_rxState

        D_txClk

        D_txState

        Thanks,

        Best Regards,

        Sheng

  • ShengN_altera's avatar
    ShengN_altera
    Icon for Super Contributor rankSuper Contributor

    Hi Tex,


    Do you need any further help on this thread?


    Thanks,

    Best Regards,

    Sheng


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

    thanks for the help

    no more questions regarding this thread

    thank you

    regards

    Tex