Questions about sending 'transaction attribute behavior across entities.

Discussion in 'VHDL' started by R Paley, Nov 19, 2004.

  1. R Paley

    R Paley Guest

    With the MTI simulator version 5.7b, i notice the following with the
    code snippet below:

    -------------------------------------------------

    Block block_a has the following code:

    entity block_a is
    port (
    x_out : in x_rec_typ ; -- some record.
    );
    end entity block_a;

    architecture bhv of block_a is
    begin

    main : process
    begin
    wait on x_out'transaction;
    -- do something.
    end process main;

    end bhv;

    Block block_b has the following code.

    entity block_b is
    port (
    x_out : out x_rec_typ ; -- some record.
    );
    end entity block_b;

    architecture bhv of block_b is

    signal x_int : x_rec_typ;

    begin

    x_out <= x_int;

    main : process
    variable x_v : x_rec_typ;
    begin

    x_v.field_1 := 0 ;
    x_v.field_2 := 1 ;

    -- do some other things.

    x_int <= x_v ;
    end process main;

    end bhv;

    In a higher level, x_out of block_a is connected to x_out of block_b.

    I expect the 'transaction of x_out in

    I would expect the 'transaction attribute of x_out in block_a to
    behave the
    same as the 'transaction attribute of x_int in block_b, after all,
    x_int is assigned to output port x_out. In the MTI simulator, version
    5.7b, this does not occur. A 'transaction only occurs on x_out in
    block_a when the value changes in block_b. So, the waveform's for
    x_out'transaction in block_a DO NOT match the waveform for
    x_int'transaction in block_b. Can anyone please explain to me why this
    happens?

    thank you very much.
     
    R Paley, Nov 19, 2004
    #1
    1. Advertising

  2. > Block block_a has the following code:
    >
    > entity block_a is
    > port (
    > x_out : in x_rec_typ ; -- some record.
    > );
    > end entity block_a;
    >
    > architecture bhv of block_a is
    > begin
    >
    > main : process
    > begin
    > wait on x_out'transaction;
    > -- do something.
    > end process main;
    >
    > end bhv;
    >
    > Block block_b has the following code.
    >
    > entity block_b is
    > port (
    > x_out : out x_rec_typ ; -- some record.
    > );
    > end entity block_b;
    >
    > architecture bhv of block_b is
    >
    > signal x_int : x_rec_typ;
    >
    > begin
    >
    > x_out <= x_int;
    >
    > main : process
    > variable x_v : x_rec_typ;
    > begin
    >
    > x_v.field_1 := 0 ;
    > x_v.field_2 := 1 ;
    >
    > -- do some other things.
    >
    > x_int <= x_v ;
    > end process main;
    >
    > end bhv;
    >
    > In a higher level, x_out of block_a is connected to x_out of block_b.
    >
    > I expect the 'transaction of x_out in
    >
    > I would expect the 'transaction attribute of x_out in block_a to
    > behave the
    > same as the 'transaction attribute of x_int in block_b, after all,
    > x_int is assigned to output port x_out. In the MTI simulator, version
    > 5.7b, this does not occur. A 'transaction only occurs on x_out in
    > block_a when the value changes in block_b. So, the waveform's for
    > x_out'transaction in block_a DO NOT match the waveform for
    > x_int'transaction in block_b. Can anyone please explain to me why this
    > happens?
    >
    > thank you very much.



    Process main in block_b is not having any wiat statement or
    sensitivity list ,hence it causes a infinite loop like structure(that
    is it goes on executing the process body for infinite time at first
    simulation cycle). Because of this x_int never gets the value of
    variable x_v(that is x_int has its default value).

    Almost every simulator gives a warning if a process doesn't have any
    sensitivity list and wait statement, I dont know about your simulator.
    Please try to give the complete code and a working model.
     
    Mohammed khader, Nov 20, 2004
    #2
    1. Advertising

  3. Re: Questions about sending 'transaction attribute behavior acrossentities.

    R Paley wrote:

    > I would expect the 'transaction attribute of x_out in block_a to
    > behave the
    > same as the 'transaction attribute of x_int in block_b, after all,
    > x_int is assigned to output port x_out.


    The signal assignment x_out <= x_int does not pass through transactions,
    only events. So consecutive assignments of the same value on x_int will
    cause only one transaction: the first time, which is an event as well at
    the same time.

    Paul.
     
    Paul Uiterlinden, Nov 20, 2004
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    1
    Views:
    474
    EricF
    Aug 1, 2007
  2. luca
    Replies:
    3
    Views:
    5,457
  3. Johndow

    how to make a transaction across two WCF methods

    Johndow, Feb 11, 2008, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    127
    Johndow
    Feb 11, 2008
  4. Vencz Istv?n
    Replies:
    2
    Views:
    295
  5. Jim Higson
    Replies:
    3
    Views:
    227
    Eric Amick
    Jul 25, 2004
Loading...

Share This Page