Multiple components driving a single bus

Discussion in 'VHDL' started by Benjamin Couillard, Apr 22, 2009.

  1. Hi, I've got a question for you guys.

    Let's say I've got 2 blocks that can drive one bus (but there could be
    more).

    Block1 : Block
    generic map (Address => x"000")
    port map (CLK => CLK,
    ADDR => ADDR,
    BUS_STB => BUS_STB,
    RD_WR_N => RD_WR_N,
    DATA_OUT => BUS_DATA,
    ....);


    Block2 : Block
    generic map (Address => x"004")
    port map (CLK => CLK,
    ADDR => ADDR,
    BUS_STB => BUS_STB,
    RD_WR_N => RD_WR_N,
    DATA_OUT => BUS_DATA,
    ......);

    Let's say that when the address is not 0, DATA_OUT of block1 will be
    high-Z and when the addres is not 4 Data_out of block 2 will be high-
    Z. Will ISE synthesis engine be smart enough to realize there is no
    bus contention? Basically, will ISE infer muxes from that code? I
    realize that I could use a switch case, however I want a more scalable
    solution where I don't need to have an ugly 200-line switch case.

    I looked a Jonathan Bromley's solution too, it's very clever and it
    looks like a good solution, however I'd like to know your opinion on
    this method first. The reason, why I like the solution above is that
    the address is specified when we instantiate the block.

    Best regards.
    Benjamin Couillard, Apr 22, 2009
    #1
    1. Advertising

  2. Benjamin Couillard

    JohnDuq

    Joined:
    Dec 9, 2008
    Messages:
    88
    You'll need tri-state buffers (BUFT) on the DATA_OUT bus. Is there a way to 'infer' that in ISE?
    JohnDuq, Apr 22, 2009
    #2
    1. Advertising

  3. On 23 avr, 04:53, Jonathan Bromley <>
    wrote:
    > On Tue, 21 Apr 2009 18:27:42 -0700 (PDT), Benjamin Couillard wrote:
    >
    > [...]
    >
    > >Let's say that when the address is not 0, DATA_OUT of block1  will be
    > >high-Z and when the addres is not 4 Data_out of block 2 will be high-
    > >Z. Will ISE synthesis engine be smart enough to realize there is no
    > >bus contention? Basically, will ISE infer muxes from that code?

    >
    > This is the readback-decode problem that has caused me much pain
    > in the past.
    >
    > There was quite an interesting related discussion here back in
    > January, in the thread "Unassigned register decode", in which
    > I posted a sketch of one possible way to attack it - without
    > writing tri-states and then expecting the tool to convert
    > them to muxes.
    >
    > But I agree with you and Brian that the tristate=>mux solution
    > usually works pretty well.
    > --
    > Jonathan Bromley, Consultant
    >
    > DOULOS - Developing Design Know-how
    > VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
    >
    > Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
    > ://www.MYCOMPANY.com
    >
    > The contents of this message may contain personal views which
    > are not the views of Doulos Ltd., unless specifically stated.


    I tried my method, and it doesn't seem to scale well. ISE seems to
    synthesize just fine even though there are address conflicts (I put
    those conflicts on purpose)

    .. I think I'm gonna use your method Jonathan, it seems to scale
    reasonably well and it avoids the mess of having one huge process
    implementing all the registers (I have about 50 register so far, but
    the number could easily double).
    Benjamin Couillard, Apr 23, 2009
    #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. Henk De Denktenk
    Replies:
    6
    Views:
    676
  2. Mickey Segal
    Replies:
    0
    Views:
    867
    Mickey Segal
    Feb 2, 2004
  3. ela
    Replies:
    12
    Views:
    345
    Uri Guttman
    Apr 6, 2009
  4. Amish Rughoonundon
    Replies:
    1
    Views:
    691
    Paul Uiterlinden
    Jun 11, 2012
  5. TheHogs88

    Multiple Clocks on single bus

    TheHogs88, Jun 27, 2013, in forum: VHDL
    Replies:
    6
    Views:
    278
    TheHogs88
    Jun 28, 2013
Loading...

Share This Page