URL
https://opencores.org/ocsvn/next186/next186/trunk
[/] [next186/] [trunk/] [Next186_ALU.v] - Diff between revs 9 and 12
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 9 |
Rev 12 |
Line 89... |
Line 89... |
output reg [15:0]FOUT,
|
output reg [15:0]FOUT,
|
output reg [15:0]ALUOUT,
|
output reg [15:0]ALUOUT,
|
output reg ALUCONT,
|
output reg ALUCONT,
|
output NULLSHIFT,
|
output NULLSHIFT,
|
output COUT,
|
output COUT,
|
output SOUT,
|
|
input [2:0]STAGE,
|
input [2:0]STAGE,
|
input CLK
|
input CLK
|
);
|
);
|
|
|
reg CPLOP2;
|
reg CPLOP2;
|
Line 117... |
Line 116... |
// ADDER
|
// ADDER
|
assign {AF, SUMOUT[3:0]} = SUMOP1[3:0] + SUMOP2[3:0] + SCIN;
|
assign {AF, SUMOUT[3:0]} = SUMOP1[3:0] + SUMOP2[3:0] + SCIN;
|
assign {SC8OUT, SUMOUT[7:4]} = SUMOP1[7:4] + SUMOP2[7:4] + AF;
|
assign {SC8OUT, SUMOUT[7:4]} = SUMOP1[7:4] + SUMOP2[7:4] + AF;
|
assign {SC16OUT, SUMOUT[15:8]} = SUMOP1[15:8] + SUMOP2[15:8] + SC8OUT;
|
assign {SC16OUT, SUMOUT[15:8]} = SUMOP1[15:8] + SUMOP2[15:8] + SC8OUT;
|
assign COUT = (WORD ? SC16OUT : SC8OUT) ^ CPLOP2;
|
assign COUT = (WORD ? SC16OUT : SC8OUT) ^ CPLOP2;
|
assign SOUT = WORD ? SUMOUT[15] : SUMOUT[7];
|
|
|
|
// SHIFTER
|
// SHIFTER
|
reg [4:0]SHNOPT; // optimized shift
|
reg [4:0]SHNOPT; // optimized shift
|
wire [4:0]SHN = {STAGE[2:1] ^ SHNOPT[4:3], SHNOPT[2:0]};
|
wire [4:0]SHN = {STAGE[2:1] ^ SHNOPT[4:3], SHNOPT[2:0]};
|
assign NULLSHIFT = ~|SHNOPT;
|
assign NULLSHIFT = ~|SHNOPT;
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.