minor update
This commit is contained in:
@@ -89,8 +89,12 @@ kill -9 <pid>
|
|||||||
lsof +D build_ase_1c
|
lsof +D build_ase_1c
|
||||||
|
|
||||||
# quick off cache synthesis
|
# quick off cache synthesis
|
||||||
make -C pipeline > pipeline/build.log 2>&1 &
|
make -C pipeline clean && make -C pipeline > pipeline/build.log 2>&1 &
|
||||||
make -C cache > cache/build.log 2>&1 &
|
make -C cache clean && make -C cache > cache/build.log 2>&1 &
|
||||||
make -C core > core/build.log 2>&1 &
|
make -C core clean && make -C core > core/build.log 2>&1 &
|
||||||
make -C vortex > vortex/build.log 2>&1 &
|
make -C vortex clean && make -C vortex > vortex/build.log 2>&1 &
|
||||||
make -C top > top/build.log 2>&1 &
|
make -C top clean && make -C top > top/build.log 2>&1 &
|
||||||
|
|
||||||
|
# How to calculate the maximum operating frequency?
|
||||||
|
200 Mhz -> period = 1/200x10^6 = 5ns
|
||||||
|
if slack = +1.664 -> minimal period = 5-1.664 = 3.336 -> fmax = 1/3.336 = 300 Mhz
|
||||||
@@ -18,7 +18,7 @@ module VX_gpr_stage #(
|
|||||||
wire [`NUM_THREADS-1:0][31:0] rs2_data;
|
wire [`NUM_THREADS-1:0][31:0] rs2_data;
|
||||||
wire [`NW_BITS+`NR_BITS-1:0] raddr1;
|
wire [`NW_BITS+`NR_BITS-1:0] raddr1;
|
||||||
|
|
||||||
VX_gpr_ram gpr_int_ram (
|
VX_gpr_ram gpr_ram (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.we ({`NUM_THREADS{writeback_if.valid}} & writeback_if.thread_mask),
|
.we ({`NUM_THREADS{writeback_if.valid}} & writeback_if.thread_mask),
|
||||||
.waddr ({writeback_if.warp_num, writeback_if.rd}),
|
.waddr ({writeback_if.warp_num, writeback_if.rd}),
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ module VX_divide #(
|
|||||||
wire [WIDTHN-1:0] quotient_unqual;
|
wire [WIDTHN-1:0] quotient_unqual;
|
||||||
wire [WIDTHD-1:0] remainder_unqual;
|
wire [WIDTHD-1:0] remainder_unqual;
|
||||||
|
|
||||||
lpm_divide quartus_div (
|
lpm_divide divide (
|
||||||
.clock (clk),
|
.clock (clk),
|
||||||
.numer (numer),
|
.numer (numer),
|
||||||
.denom (denom),
|
.denom (denom),
|
||||||
@@ -36,13 +36,13 @@ module VX_divide #(
|
|||||||
);
|
);
|
||||||
|
|
||||||
defparam
|
defparam
|
||||||
quartus_div.lpm_type = "LPM_DIVIDE",
|
divide.lpm_type = "LPM_DIVIDE",
|
||||||
quartus_div.lpm_widthn = WIDTHN,
|
divide.lpm_widthn = WIDTHN,
|
||||||
quartus_div.lpm_widthd = WIDTHD,
|
divide.lpm_widthd = WIDTHD,
|
||||||
quartus_div.lpm_nrepresentation = NSIGNED ? "SIGNED" : "UNSIGNED",
|
divide.lpm_nrepresentation = NSIGNED ? "SIGNED" : "UNSIGNED",
|
||||||
quartus_div.lpm_drepresentation = DSIGNED ? "SIGNED" : "UNSIGNED",
|
divide.lpm_drepresentation = DSIGNED ? "SIGNED" : "UNSIGNED",
|
||||||
quartus_div.lpm_hint = "MAXIMIZE_SPEED=6,LPM_REMAINDERPOSITIVE=FALSE",
|
divide.lpm_hint = "MAXIMIZE_SPEED=9,LPM_REMAINDERPOSITIVE=FALSE",
|
||||||
quartus_div.lpm_pipeline = PIPELINE;
|
divide.lpm_pipeline = PIPELINE;
|
||||||
|
|
||||||
assign quotient = quotient_unqual [WIDTHQ-1:0];
|
assign quotient = quotient_unqual [WIDTHQ-1:0];
|
||||||
assign remainder = remainder_unqual [WIDTHR-1:0];
|
assign remainder = remainder_unqual [WIDTHR-1:0];
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ module VX_multiplier #(
|
|||||||
|
|
||||||
`ifdef QUARTUS
|
`ifdef QUARTUS
|
||||||
|
|
||||||
lpm_mult quartus_mult (
|
lpm_mult mult (
|
||||||
.clock (clk),
|
.clock (clk),
|
||||||
.dataa (dataa),
|
.dataa (dataa),
|
||||||
.datab (datab),
|
.datab (datab),
|
||||||
@@ -29,13 +29,13 @@ module VX_multiplier #(
|
|||||||
.sum (1'b0)
|
.sum (1'b0)
|
||||||
);
|
);
|
||||||
|
|
||||||
defparam quartus_mult.lpm_type = "LPM_MULT",
|
defparam mult.lpm_type = "LPM_MULT",
|
||||||
quartus_mult.lpm_widtha = WIDTHA,
|
mult.lpm_widtha = WIDTHA,
|
||||||
quartus_mult.lpm_widthb = WIDTHB,
|
mult.lpm_widthb = WIDTHB,
|
||||||
quartus_mult.lpm_widthp = WIDTHP,
|
mult.lpm_widthp = WIDTHP,
|
||||||
quartus_mult.lpm_representation = SIGNED ? "SIGNED" : "UNSIGNED",
|
mult.lpm_representation = SIGNED ? "SIGNED" : "UNSIGNED",
|
||||||
quartus_mult.lpm_pipeline = PIPELINE,
|
mult.lpm_pipeline = PIPELINE,
|
||||||
quartus_mult.lpm_hint = "DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=9";
|
mult.lpm_hint = "MAXIMIZE_SPEED=9,DEDICATED_MULTIPLIER_CIRCUITRY=YES";
|
||||||
`else
|
`else
|
||||||
|
|
||||||
wire [WIDTHP-1:0] result_unqual;
|
wire [WIDTHP-1:0] result_unqual;
|
||||||
|
|||||||
Reference in New Issue
Block a user