Continue to Site

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.

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
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).
 
  • Like
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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top