UVM Ques: Describe the handshake between uvm_sequence, uvm_sequencer, uvm_driver and interface/DUT?

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 26

  • @kirtikansal7388
    @kirtikansal7388 3 года назад +7

    this question is best answered here nowhere else,
    ur approach to explain pictorially with diagrams make us easy to relate things and understand the flow very well.. Keep uploading more such videos.
    Thanks alot

    • @KenIntQ
      @KenIntQ  3 года назад

      Glad it helped

    • @nirupamasankar8355
      @nirupamasankar8355 2 года назад +2

      Yes your pictorial representation makes it very easy to grasp the concepts. This topic is best explained here.

  • @pathanjohnkhan8012
    @pathanjohnkhan8012 4 года назад +3

    thank you for your videos.....it is heplful alot

    • @KenIntQ
      @KenIntQ  4 года назад +1

      Glad to hear that

  • @venkateshprathipati3907
    @venkateshprathipati3907 3 года назад +2

    Thank you.

    • @KenIntQ
      @KenIntQ  3 года назад

      You're welcome!

  • @ManalShah2907
    @ManalShah2907 6 месяцев назад

    How does the driver handles if the DUT is giving more then one or out of order responses back, how the driver send same response back to original sequence and not any other sequence?

  • @naseemshaik5023
    @naseemshaik5023 2 года назад +1

    Hi Ken. I have few queries,
    1)What is the argument passed in item done function?
    2) when we use item_done () with and without argument in our environment?

    • @KenIntQ
      @KenIntQ  2 года назад +1

      Hi Naseem,
      1) Item done take a ref of the sequence item that has finished running.
      2) Item done is typically called without an argument, when you call it from within the sequence item itself and is called with an argument when called from outside the seq item

  • @zebra00024
    @zebra00024 Год назад

    What was the idea behind having sequencer?
    In most cases it looks like an extra layer without good purpose.
    Most of sequencers implementations I saw were plain proxy between sequencer and driver. Sequencer layer weren't doing any work.
    I would say it only make sense if you actually have an arbitration based on priority or you have to control sequencer e.g. by purging FIFO when reset or end of the test comes.

    • @kuangquan08
      @kuangquan08 Год назад +1

      there are multiple reasons, the first as you mentioned providing a arbitration for sequence request and grand. second, sequencer provide a hierarchical component for sequence, if you wanna pass some config setting, sequence can retrieve the seqr handler to config your transaction in running time. Then if you are trying to implement some complicate sequence like layer sequences, sequencer offer a convenient way to implement that.

    • @zebra00024
      @zebra00024 Год назад

      @@kuangquan08 1. what do you mean by layer sequences?
      2. I don't see why configuration idea is good unless that is runtime driver specific configuration (there are better uvm ways, imo for other configurations). Then, again, why don't use driver for that type of configuration?
      I believe arbitration argument is good other arguments not so much convincing.

  • @umadevivattikoti9814
    @umadevivattikoti9814 3 года назад +1

    Who will initiate the transaction driver or sequencer? Most of them say driver why? Is it because we connect port to driver and export to sequencer?

    • @KenIntQ
      @KenIntQ  2 года назад +1

      The transactions to the DUT are initiated by the sequencer. The driver's start item method is called by the sequencer in order to submit the transaction to the DUT. The item done function on the sequencer is then called by the driver to signal that the transaction is finished after it has waited for a response from the DUT.

  • @balajideva6503
    @balajideva6503 2 года назад

    1) While using second option of handshake(using get and put method in driver side), whether finish_item() in sequence is non blocking func? If yes, then how its blocking for 1st approach and non blocking for 2nd approach?
    2) During 2nd approach, what will happen to rsp port? Can you please explain how port will work in both approach?

  • @ganauvm270
    @ganauvm270 4 года назад +1

    pre_do(),post_do(),mid_do() why these methods are calling when the seq is calling?can you explain these methods .thank you

    • @KenIntQ
      @KenIntQ  4 года назад

      hi Gana,
      Added it to my list.

  • @flyhigh1702
    @flyhigh1702 4 года назад +1

    Why configuration database is used?...can you explain

    • @KenIntQ
      @KenIntQ  4 года назад +2

      Hi Tejasvi , added it to my list. Will upload a video soon. Thanks

    • @AmanKumar-ph4my
      @AmanKumar-ph4my 3 года назад

      make make video on AXI

  • @Negedge
    @Negedge 3 года назад +1

    Thanks, Could you describe the raise objection and drop objection mechanism in next video, looking forward for that.

    • @KenIntQ
      @KenIntQ  3 года назад +2

      Added to my list. Will upload soon.Thanks

  • @flyhigh1702
    @flyhigh1702 4 года назад

    what are handshaking signals ?...should we exactly explain all the setup

    • @KenIntQ
      @KenIntQ  4 года назад +2

      HI Tejasvi, the main things to remember in this question is the order of method being called and their names. TLM connection related details i.e. uvm_sequence_item_pull_port/export) between sequencer and driver can be ignored if the question is just about the handshake between sequence, sequencer, driver and dut. But you do need to know which methods/tasks belong to sequence (start_item/finsih_item) and driver (get_next_item/item_done). and whether they are blocking or not.

    • @flyhigh1702
      @flyhigh1702 4 года назад +1

      @@KenIntQ thanks for explaining