can somebody explain the code below input wire signed [16:0] D, output reg signed [16:0] Q ); always @ * begin Q = D; for(j=0;j<i;j=j+1) Q = (Q >> 1) | (D[16] << 16); Question: 1. What is the meaning D[`16] << 16? from i understand, it shift left 16 times of D whereby D only 1 bit due to D[16]. Am i misunderstand? 2. why it use Q and D in the statement "Q = (Q >> 1) | (D[16] << 16);" since D is assigned to Q? Thanks
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.