minor update
This commit is contained in:
@@ -313,7 +313,7 @@
|
|||||||
|
|
||||||
// Miss Handling Register Size
|
// Miss Handling Register Size
|
||||||
`ifndef DMSHR_SIZE
|
`ifndef DMSHR_SIZE
|
||||||
`define DMSHR_SIZE `LSUQ_SIZE
|
`define DMSHR_SIZE (`LSUQ_SIZE / 2)
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
// DRAM Request Queue Size
|
// DRAM Request Queue Size
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ module VX_csr_arb #(
|
|||||||
VX_stream_arbiter #(
|
VX_stream_arbiter #(
|
||||||
.NUM_REQS (NUM_REQS),
|
.NUM_REQS (NUM_REQS),
|
||||||
.DATAW (RSP_DATAW),
|
.DATAW (RSP_DATAW),
|
||||||
.BUFFERED (BUFFERED_RSP)
|
.BUFFERED (BUFFERED_RSP),
|
||||||
|
.TYPE ("X") // fixed arbitration
|
||||||
) rsp_arb (
|
) rsp_arb (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
|
|||||||
@@ -29,7 +29,17 @@ module VX_fp_div #(
|
|||||||
wire stall = ~ready_out && valid_out;
|
wire stall = ~ready_out && valid_out;
|
||||||
wire enable = ~stall;
|
wire enable = ~stall;
|
||||||
|
|
||||||
for (genvar i = 0; i < LANES; i++) begin
|
for (genvar i = 0; i < LANES; i++) begin
|
||||||
|
|
||||||
|
wire fdiv_reset;
|
||||||
|
VX_reset_relay #(
|
||||||
|
.NUM_NODES(1)
|
||||||
|
) reset_relay (
|
||||||
|
.clk (clk),
|
||||||
|
.reset (reset),
|
||||||
|
.reset_o (fdiv_reset)
|
||||||
|
);
|
||||||
|
|
||||||
`ifdef VERILATOR
|
`ifdef VERILATOR
|
||||||
reg [31:0] r;
|
reg [31:0] r;
|
||||||
fflags_t f;
|
fflags_t f;
|
||||||
@@ -45,7 +55,7 @@ module VX_fp_div #(
|
|||||||
.RESETW (1)
|
.RESETW (1)
|
||||||
) shift_req_dpi (
|
) shift_req_dpi (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (fdiv_reset),
|
||||||
.enable (enable),
|
.enable (enable),
|
||||||
.data_in (r),
|
.data_in (r),
|
||||||
.data_out (result[i])
|
.data_out (result[i])
|
||||||
@@ -53,7 +63,7 @@ module VX_fp_div #(
|
|||||||
`else
|
`else
|
||||||
acl_fdiv fdiv (
|
acl_fdiv fdiv (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.areset (reset),
|
.areset (fdiv_reset),
|
||||||
.en (enable),
|
.en (enable),
|
||||||
.a (dataa[i]),
|
.a (dataa[i]),
|
||||||
.b (datab[i]),
|
.b (datab[i]),
|
||||||
|
|||||||
@@ -28,7 +28,17 @@ module VX_fp_sqrt #(
|
|||||||
wire stall = ~ready_out && valid_out;
|
wire stall = ~ready_out && valid_out;
|
||||||
wire enable = ~stall;
|
wire enable = ~stall;
|
||||||
|
|
||||||
for (genvar i = 0; i < LANES; i++) begin
|
for (genvar i = 0; i < LANES; i++) begin
|
||||||
|
|
||||||
|
wire fsqrt_reset;
|
||||||
|
VX_reset_relay #(
|
||||||
|
.NUM_NODES(1)
|
||||||
|
) reset_relay (
|
||||||
|
.clk (clk),
|
||||||
|
.reset (reset),
|
||||||
|
.reset_o (fsqrt_reset)
|
||||||
|
);
|
||||||
|
|
||||||
`ifdef VERILATOR
|
`ifdef VERILATOR
|
||||||
reg [31:0] r;
|
reg [31:0] r;
|
||||||
fflags_t f;
|
fflags_t f;
|
||||||
@@ -44,7 +54,7 @@ module VX_fp_sqrt #(
|
|||||||
.RESETW (1)
|
.RESETW (1)
|
||||||
) shift_req_dpi (
|
) shift_req_dpi (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (fsqrt_reset),
|
||||||
.enable (enable),
|
.enable (enable),
|
||||||
.data_in (r),
|
.data_in (r),
|
||||||
.data_out (result[i])
|
.data_out (result[i])
|
||||||
@@ -52,7 +62,7 @@ module VX_fp_sqrt #(
|
|||||||
`else
|
`else
|
||||||
acl_fsqrt fsqrt (
|
acl_fsqrt fsqrt (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.areset (reset),
|
.areset (fsqrt_reset),
|
||||||
.en (enable),
|
.en (enable),
|
||||||
.a (dataa[i]),
|
.a (dataa[i]),
|
||||||
.q (result[i])
|
.q (result[i])
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ module VX_stream_arbiter #(
|
|||||||
output wire valid_out,
|
output wire valid_out,
|
||||||
output wire [DATAW-1:0] data_out,
|
output wire [DATAW-1:0] data_out,
|
||||||
input wire ready_out
|
input wire ready_out
|
||||||
);
|
);
|
||||||
|
|
||||||
localparam LOG_NUM_REQS = $clog2(NUM_REQS);
|
localparam LOG_NUM_REQS = $clog2(NUM_REQS);
|
||||||
|
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ cd build_fpga && qsub-synth
|
|||||||
tail -n 10 ./build_fpga_1c/build.log
|
tail -n 10 ./build_fpga_1c/build.log
|
||||||
|
|
||||||
# Check if the job is submitted to the queue and running. Status should be R
|
# Check if the job is submitted to the queue and running. Status should be R
|
||||||
qstat | grep tinebp
|
qstat | grep <user>
|
||||||
|
|
||||||
# Constantly monitoring the job submitted to the queue. Stop this using Ctrl+C
|
# Constantly monitoring the job submitted to the queue. Stop this using Ctrl+C
|
||||||
watch ‘qstat | grep tinebp’
|
watch ‘qstat | grep <user>’
|
||||||
|
|
||||||
#
|
#
|
||||||
## Executing on FPGA
|
## Executing on FPGA
|
||||||
@@ -90,14 +90,6 @@ tar -cvjf trace.vcd.tar.bz2 trace.vcd run.log
|
|||||||
tar -zxvf vortex.vcd.tar.gz
|
tar -zxvf vortex.vcd.tar.gz
|
||||||
tar -xvf vortex.vcd.tar.bz2
|
tar -xvf vortex.vcd.tar.bz2
|
||||||
|
|
||||||
# launch Gtkwave
|
|
||||||
gtkwave ./build_ase_1c/work/vortex.vcd &
|
|
||||||
|
|
||||||
# kill process by Users
|
|
||||||
ps -u tinebp
|
|
||||||
kill -9 <pid>
|
|
||||||
ps -u tinebp | grep "blackbox" | awk '{print $1}' | xargs kill -9
|
|
||||||
|
|
||||||
# fixing device resource busy issue when deleting /build_ase_1c/
|
# fixing device resource busy issue when deleting /build_ase_1c/
|
||||||
lsof +D build_ase_1c
|
lsof +D build_ase_1c
|
||||||
|
|
||||||
@@ -113,11 +105,4 @@ make -C top1 clean && make -C top1 > top1/build.log 2>&1 &
|
|||||||
make -C top2 clean && make -C top2 > top2/build.log 2>&1 &
|
make -C top2 clean && make -C top2 > top2/build.log 2>&1 &
|
||||||
make -C top8 clean && make -C top8 > top8/build.log 2>&1 &
|
make -C top8 clean && make -C top8 > top8/build.log 2>&1 &
|
||||||
make -C top16 clean && make -C top16 > top16/build.log 2>&1 &
|
make -C top16 clean && make -C top16 > top16/build.log 2>&1 &
|
||||||
make -C top32 clean && make -C top32 > top32/build.log 2>&1 &
|
make -C top32 clean && make -C top32 > top32/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
|
|
||||||
|
|
||||||
# build rtlsim from driver tests
|
|
||||||
make -C ../../rtlsim clean && reset && make -C ../../rtlsim
|
|
||||||
@@ -10,19 +10,16 @@ set_global_assignment -name VERILOG_MACRO NDEBUG
|
|||||||
set_global_assignment -name MESSAGE_DISABLE 16818
|
set_global_assignment -name MESSAGE_DISABLE 16818
|
||||||
set_global_assignment -name TIMEQUEST_DO_REPORT_TIMING ON
|
set_global_assignment -name TIMEQUEST_DO_REPORT_TIMING ON
|
||||||
|
|
||||||
#set_global_assignment -name OPTIMIZATION_TECHNIQUE BALANCED
|
set_global_assignment -name OPTIMIZATION_TECHNIQUE SPEED
|
||||||
#set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE PERFORMANCE"
|
set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE PERFORMANCE"
|
||||||
#set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
|
set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
|
||||||
#set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS"
|
set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS"
|
||||||
#set_global_assignment -name ROUTER_TIMING_OPTIMIZATION_LEVEL MAXIMUM
|
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON
|
||||||
#set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON
|
set_global_assignment -name ROUTER_TIMING_OPTIMIZATION_LEVEL MAXIMUM
|
||||||
#set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
set_global_assignment -name ROUTER_CLOCKING_TOPOLOGY_ANALYSIS ON
|
||||||
#set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100
|
set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION ON
|
||||||
#set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON
|
||||||
#set_global_assignment -name ROUTER_CLOCKING_TOPOLOGY_ANALYSIS ON
|
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
|
||||||
#set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION ON
|
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||||
#set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL ON
|
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100
|
||||||
#set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON
|
set_global_assignment -name SEED 1
|
||||||
#set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
|
|
||||||
#set_global_assignment -name POWER_USE_TA_VALUE 65
|
|
||||||
#set_global_assignment -name SEED 1
|
|
||||||
@@ -45,22 +45,19 @@ set_global_assignment -name ALLOW_ANY_RAM_SIZE_FOR_RECOGNITION ON
|
|||||||
set_global_assignment -name USE_HIGH_SPEED_ADDER ON
|
set_global_assignment -name USE_HIGH_SPEED_ADDER ON
|
||||||
set_global_assignment -name MUX_RESTRUCTURE ON
|
set_global_assignment -name MUX_RESTRUCTURE ON
|
||||||
|
|
||||||
#set_global_assignment -name OPTIMIZATION_TECHNIQUE SPEED
|
set_global_assignment -name OPTIMIZATION_TECHNIQUE SPEED
|
||||||
#set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE PERFORMANCE"
|
set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE PERFORMANCE"
|
||||||
#set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
|
set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
|
||||||
#set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS"
|
set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS"
|
||||||
#set_global_assignment -name ROUTER_TIMING_OPTIMIZATION_LEVEL MAXIMUM
|
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON
|
||||||
#set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON
|
set_global_assignment -name ROUTER_TIMING_OPTIMIZATION_LEVEL MAXIMUM
|
||||||
#set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
set_global_assignment -name ROUTER_CLOCKING_TOPOLOGY_ANALYSIS ON
|
||||||
#set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100
|
set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION ON
|
||||||
#set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON
|
||||||
#set_global_assignment -name ROUTER_CLOCKING_TOPOLOGY_ANALYSIS ON
|
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
|
||||||
#set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION ON
|
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||||
#set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL ON
|
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100
|
||||||
#set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON
|
set_global_assignment -name SEED 1
|
||||||
#set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
|
|
||||||
#set_global_assignment -name POWER_USE_TA_VALUE 65
|
|
||||||
#set_global_assignment -name SEED 1
|
|
||||||
|
|
||||||
switch $opts(family) {
|
switch $opts(family) {
|
||||||
"Arria 10" {
|
"Arria 10" {
|
||||||
|
|||||||
Reference in New Issue
Block a user