Timing Problem when using bitwise AND for large vertors

Status
Not open for further replies.

lqson

Newbie level 2
Joined
Jun 13, 2011
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,293
Hi,
I need some advices for my RTL design.
Is there any differences about timing performance between these two coding style below?
Does the second coding style have a better timing performance?

1)
wire [511:0] A, B, C;
assign C = A&B;

2)
wire [511:0] A, B, C;
wire [255:0] C1;
assign C1 = A[255:0] & B[255:0];

wire [255:0] C2;
assign C2 = A[511:256] & B[511:256];

assign C = {C2,C1};

Thanks
Son
 
Last edited:

There should not be any difference, as the 'and' operation is bit to bit i.e { A[511] & B[511], A[510] & B[510] ,........, A[1] & B[1], A[0] & B[0] }
 

Many years ago, the synthesis tool(DC) put a buffer on every assign statement and it would have made some difference in timing, but now a synthesis tool is much more sophisticated and I believe it probably doesn't make difference(but no proof for that).
 
Reactions: lqson

    lqson

    Points: 2
    Helpful Answer Positive Rating
Thank you so much!
I've just moved to ASIC design from FPGA design. Before, I met timing issue with this coding style on FPGA.
So it makes me confuse. Your answer helps me a lot.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…