Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Different widths of data on same bus

Status
Not open for further replies.

rac70

Junior Member level 1
Joined
Jan 7, 2015
Messages
15
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
128
Hi all,
anyone help me in finding the logic for passing different widths of data on same bus
 

TrickyDicky

Advanced Member level 5
Joined
Jun 7, 2010
Messages
7,065
Helped
2,077
Reputation
4,171
Reaction score
2,030
Trophy points
1,393
Activity points
39,120
You cant, the bus width is fixed. depending on the interface there may be extra byte enable signals to mark specific bytes as not valid. But what interface are you using?
 

rac70

Junior Member level 1
Joined
Jan 7, 2015
Messages
15
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
128
You cant, the bus width is fixed. depending on the interface there may be extra byte enable signals to mark specific bytes as not valid. But what interface are you using?

thank you,
here the design uses axi interface, actually the case is like the data is of 128 bit width and mic is of 64 width can i pass both of them on same bus or need to pad zeros for mic to make it 128 bit width.
 

wesleytaylor

Full Member level 5
Joined
May 1, 2014
Messages
284
Helped
29
Reputation
58
Reaction score
24
Trophy points
18
Activity points
2,671
If I understand your question correctly.

send the 128 bit signal

then just snippet the relevant stuff such that

-- initialize
sig_a <= (others => '0')

-- assign
sig_a(63 downto 0) <= stuff_i_care_about;

then when sampling

-- retrieve
stuff_wanted <= sig_a(63 downto 0);

-------------------------------
Edit
-------------------------------
Axi is an interface provided by Xilinx and therefore if the components want 128 bit then keep that.
 

TrickyDicky

Advanced Member level 5
Joined
Jun 7, 2010
Messages
7,065
Helped
2,077
Reputation
4,171
Reaction score
2,030
Trophy points
1,393
Activity points
39,120
thank you,
here the design uses axi interface, actually the case is like the data is of 128 bit width and mic is of 64 width can i pass both of them on same bus or need to pad zeros for mic to make it 128 bit width.

Axi Streaming I assume?
This is going to depend on what you want to do with it, and will depend on what format the downstream device requires.
You could zero pad and set tkeep/tstrb to mark the valid bytes, and then the downstream device can extract the data appropriatly. But this would be rather innefficient.
Or you could mux the data together (ie. put 2 64 bit words into a single word), and you could run the 128 bit bus at half the clock speed. (good efficiency)

But how you do it depends.

Axi is an interface provided by Xilinx and therefore if the components want 128 bit then keep that.

Axi is defined by ARM and Xilinx have chosen to use the specification in most of their new IP.
 

xtcx

Advanced Member level 1
Joined
Dec 22, 2007
Messages
494
Helped
65
Reputation
130
Reaction score
58
Trophy points
1,308
Location
Bangalore, India
Activity points
5,003
Or you could mux the data together (ie. put 2 64 bit words into a single word), and you could run the 128 bit bus at half the clock speed. (good efficiency)

Axi is defined by ARM and Xilinx have chosen to use the specification in most of their new IP.

clocking two 64-bit words into one 128-bit word, unless the peer is a custom design it will not work. Also the AXI interface bus width can be configured to 64/32 bits wide as well instead.
 

rac70

Junior Member level 1
Joined
Jan 7, 2015
Messages
15
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
128
clocking two 64-bit words into one 128-bit word, unless the peer is a custom design it will not work. Also the AXI interface bus width can be configured to 64/32 bits wide as well instead.

Hi,
thankyou but on the same bus can i send the data byte by byte instead of word by word which is advantageous..
 

wesleytaylor

Full Member level 5
Joined
May 1, 2014
Messages
284
Helped
29
Reputation
58
Reaction score
24
Trophy points
18
Activity points
2,671
thankyou but on the same bus can i send the data byte by byte instead of word by word which is advantageous..

In that case
Use a fifo with 128 bit input & 8 bit output?

This can easily be done using vendor ip.

You have to read 16 times faster than you write otherwise the fifo will overflow.
 
Last edited by a moderator:
  • Like
Reactions: rac70

    rac70

    Points: 2
    Helpful Answer Positive Rating

xtcx

Advanced Member level 1
Joined
Dec 22, 2007
Messages
494
Helped
65
Reputation
130
Reaction score
58
Trophy points
1,308
Location
Bangalore, India
Activity points
5,003
Hi,
thankyou but on the same bus can i send the data byte by byte instead of word by word which is advantageous..

Yes you can. But the reading entity should also be aware of the lane positions (out of 128bit) that you are writing to. Agreeing mutually this can be done but potentially you are wasting 50% of performance
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top