Re: Multiple components driving a single bus



On Tue, 21 Apr 2009 18:27:42 -0700 (PDT), Benjamin Couillard
<benjamin.couillard@xxxxxxxxx> wrote:

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,
....
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?

Look in the synthesis report for warnings that tri-states have been replaced by
muxes.

Any time I've tried it, it has worked - but XST will complain about it.

This ssumes ADDR is internal. If ADDR goes off chip, the synth tool can't
analyse the outside world. It may be smart enough to infer MUXes internally and
tristates on the I/O pins but I haven't verified that.

- Brian
.



Relevant Pages

  • Multiple components driving a single bus
    ... port map (CLK => CLK, ... ADDR => ADDR, ... Let's say that when the address is not 0, DATA_OUT of block1 will be ...
    (comp.lang.vhdl)
  • NVIDIA driver crashing the system
    ... video card: GeForce FX Go5200 ... # SCSI bus ... nvidia0: mem ... 0xe0000008 addr 0xe0000000 MEM PREFETCHABLE ...
    (freebsd-stable)
  • Re: Referenced signal not in sensitivity list
    ... The function I am implementing is a FIFO that reads data from the bus ... when clk and work_in are both high. ... the book presents the design of a complete RISC ... A typical function that you're trying to implement wants to clock data ...
    (comp.lang.verilog)
  • 6.1 hardware issues
    ... that's the same bus that the 896 is on.. ... pci0: <PCI bus> on pcib0 ... xl0: using port I/O ... BASE0 0xe0000008 addr 0xe0000000 MEM PREFETCHABLE ...
    (comp.unix.bsd.freebsd.misc)
  • Re: Timer ...
    ... i0 <= clk; ... Get rid of signals i0,i1 completely and connect the clock directly ... PORT MAP(en, per_time, clk); ...
    (comp.lang.vhdl)