mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Starting code cleanup
This commit is contained in:
parent
334b616d6f
commit
6789f32154
@ -110,7 +110,7 @@ module ebu import cvw::*; #(parameter cvw_t P) (
|
|||||||
.HWRITEOut(LSUHWRITEOut), .HSIZEOut(LSUHSIZEOut), .HBURSTOut(LSUHBURSTOut),
|
.HWRITEOut(LSUHWRITEOut), .HSIZEOut(LSUHSIZEOut), .HBURSTOut(LSUHBURSTOut),
|
||||||
.HTRANSOut(LSUHTRANSOut), .HADDROut(LSUHADDROut), .HREADYIn(HREADY));
|
.HTRANSOut(LSUHTRANSOut), .HADDROut(LSUHADDROut), .HREADYIn(HREADY));
|
||||||
|
|
||||||
// output mux //*** switch to structural implementation
|
// output mux
|
||||||
assign HADDR = LSUSelect ? LSUHADDROut : IFUSelect ? IFUHADDROut : '0;
|
assign HADDR = LSUSelect ? LSUHADDROut : IFUSelect ? IFUHADDROut : '0;
|
||||||
assign HSIZE = LSUSelect ? LSUHSIZEOut : IFUSelect ? IFUHSIZEOut: '0;
|
assign HSIZE = LSUSelect ? LSUHSIZEOut : IFUSelect ? IFUHSIZEOut: '0;
|
||||||
assign HBURST = LSUSelect ? LSUHBURSTOut : IFUSelect ? IFUHBURSTOut : '0; // If doing memory accesses, use LSUburst, else use Instruction burst.
|
assign HBURST = LSUSelect ? LSUHBURSTOut : IFUSelect ? IFUHBURSTOut : '0; // If doing memory accesses, use LSUburst, else use Instruction burst.
|
||||||
|
@ -190,7 +190,7 @@ module fcvt import cvw::*; #(parameter cvw_t P) (
|
|||||||
// shifter
|
// shifter
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// kill the shift if it's negative
|
// kill the shift if it is negative
|
||||||
// select the amount to shift by
|
// select the amount to shift by
|
||||||
// fp -> int:
|
// fp -> int:
|
||||||
// - shift left by CalcExp - essentially shifting until the unbiased exponent = 0
|
// - shift left by CalcExp - essentially shifting until the unbiased exponent = 0
|
||||||
@ -201,7 +201,7 @@ module fcvt import cvw::*; #(parameter cvw_t P) (
|
|||||||
// - shift left by LeadingZeros - to shift till the result is normalized
|
// - shift left by LeadingZeros - to shift till the result is normalized
|
||||||
// - only shift fp -> fp if the intital value is subnormal
|
// - only shift fp -> fp if the intital value is subnormal
|
||||||
// - this is a problem because the input to the lzc was the fraction rather than the mantissa
|
// - this is a problem because the input to the lzc was the fraction rather than the mantissa
|
||||||
// - rather have a few and-gates than an extra bit in the priority encoder??? *** is this true?
|
// - rather have a few and-gates than an extra bit in the priority encoder???
|
||||||
always_comb
|
always_comb
|
||||||
if(ToInt) ShiftAmt = Ce[P.LOGCVTLEN-1:0]&{P.LOGCVTLEN{~Ce[P.NE]}};
|
if(ToInt) ShiftAmt = Ce[P.LOGCVTLEN-1:0]&{P.LOGCVTLEN{~Ce[P.NE]}};
|
||||||
else if (ResSubnormUf) ShiftAmt = (P.LOGCVTLEN)'(P.NF-1)+Ce[P.LOGCVTLEN-1:0];
|
else if (ResSubnormUf) ShiftAmt = (P.LOGCVTLEN)'(P.NF-1)+Ce[P.LOGCVTLEN-1:0];
|
||||||
|
@ -218,7 +218,6 @@ module fpu import cvw::*; #(parameter cvw_t P) (
|
|||||||
{{P.FLEN-P.H_LEN{1'b1}}, 2'b0, {P.H_NE-1{1'b1}}, (P.H_NF)'(0)},
|
{{P.FLEN-P.H_LEN{1'b1}}, 2'b0, {P.H_NE-1{1'b1}}, (P.H_NF)'(0)},
|
||||||
{2'b0, {P.NE-1{1'b1}}, (P.NF)'(0)}, FmtE, BoxedOneE); // NaN boxing zeroes
|
{2'b0, {P.NE-1{1'b1}}, (P.NF)'(0)}, FmtE, BoxedOneE); // NaN boxing zeroes
|
||||||
assign FmaAddSubE = OpCtrlE[2]&OpCtrlE[1]&(PostProcSelE==2'b10);
|
assign FmaAddSubE = OpCtrlE[2]&OpCtrlE[1]&(PostProcSelE==2'b10);
|
||||||
// ***simplified from appearently redundant assign FmaAddSubE = OpCtrlE[2]&OpCtrlE[1]&(FResSelE==2'b01)&(PostProcSelE==2'b10);
|
|
||||||
mux2 #(P.FLEN) fyaddmux (PreYE, BoxedOneE, FmaAddSubE, YE); // Force Y to be 1 for add/subtract
|
mux2 #(P.FLEN) fyaddmux (PreYE, BoxedOneE, FmaAddSubE, YE); // Force Y to be 1 for add/subtract
|
||||||
|
|
||||||
// Select NAN-boxed value of Z = 0.0 in proper format for FMA for multiply X*Y+Z
|
// Select NAN-boxed value of Z = 0.0 in proper format for FMA for multiply X*Y+Z
|
||||||
|
@ -46,9 +46,9 @@ module ram1p1rwbe import cvw::*; #(parameter USE_SRAM=0, DEPTH=64, WIDTH=44, PRE
|
|||||||
|
|
||||||
bit [WIDTH-1:0] RAM[DEPTH-1:0];
|
bit [WIDTH-1:0] RAM[DEPTH-1:0];
|
||||||
|
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// TRUE SRAM macro
|
// TRUE SRAM macro
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
if ((USE_SRAM == 1) & (WIDTH == 128) & (DEPTH == 64)) begin // Cache data subarray
|
if ((USE_SRAM == 1) & (WIDTH == 128) & (DEPTH == 64)) begin // Cache data subarray
|
||||||
genvar index;
|
genvar index;
|
||||||
// 64 x 128-bit SRAM
|
// 64 x 128-bit SRAM
|
||||||
@ -79,9 +79,9 @@ module ram1p1rwbe import cvw::*; #(parameter USE_SRAM=0, DEPTH=64, WIDTH=44, PRE
|
|||||||
.A(addr), .D(din),
|
.A(addr), .D(din),
|
||||||
.BWEB(~BitWriteMask), .Q(dout));
|
.BWEB(~BitWriteMask), .Q(dout));
|
||||||
|
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// READ first SRAM model
|
// READ first SRAM model
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
end else begin: ram
|
end else begin: ram
|
||||||
integer i;
|
integer i;
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ module ram2p1r1wbe import cvw::*; #(parameter USE_SRAM=0, DEPTH=1024, WIDTH=68)
|
|||||||
localparam SRAMWIDTH = 32;
|
localparam SRAMWIDTH = 32;
|
||||||
localparam SRAMNUMSETS = SRAMWIDTH/WIDTH;
|
localparam SRAMNUMSETS = SRAMWIDTH/WIDTH;
|
||||||
|
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// TRUE Smem macro
|
// TRUE SRAM macro
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
if ((USE_SRAM == 1) & (WIDTH == 68) & (DEPTH == 1024)) begin
|
if ((USE_SRAM == 1) & (WIDTH == 68) & (DEPTH == 1024)) begin
|
||||||
|
|
||||||
@ -107,9 +107,9 @@ module ram2p1r1wbe import cvw::*; #(parameter USE_SRAM=0, DEPTH=1024, WIDTH=68)
|
|||||||
|
|
||||||
end else begin
|
end else begin
|
||||||
|
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// READ first SRAM model
|
// READ first SRAM model
|
||||||
// ***************************************************************************
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
integer i;
|
integer i;
|
||||||
/*
|
/*
|
||||||
initial begin // initialize memory for simulation only; not needed because done in the testbench now
|
initial begin // initialize memory for simulation only; not needed because done in the testbench now
|
||||||
|
Loading…
Reference in New Issue
Block a user