Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module zad5
- #(parameter N=8)(
- input [N-1:0] a,b,
- output [N*2:0] p);
- wire [N-1:0] m[N-1:0];
- wire [N-1:0] s[1:N-1];
- wire cout[1:N-1];
- generate
- genvar i;
- for (i=0; i<N; i=i+1)
- begin: bf1
- assign m[i] = a & {N{b[i]}};
- end
- adder_N_bits #(N) ({1'b0,m[0][N-1:1]},m[1],1'b0,s[1],cout[1]);
- for (i=1; i<N-1; i=i+1)
- begin: bf2
- adder_N_bits #(N) ({cout[i],s[i][N-1:1]},m[i+1],1'b0,s[i+1],cout[i+1]);
- end
- for (i=0; i<N-1; i=i+1)
- begin: bf3
- assign p[i] = m[i][0];
- end
- endgenerate
- assign p[N*2-2:N-1] = s[N-1];
- assign p[N*2-1] = cout[N-1];
- endmodule
- module adder_N_bits
- #(parameter N=8)
- (input [N-1:0] A,B,
- input cin,
- output [N-1:0] S,
- output cout);
- assign {cout,S} = A + B + cin;
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement