From 6739dc792366612f336700fa8ce03f4179a9e972 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sun, 21 Feb 2021 15:11:08 -0800 Subject: [PATCH] minor update - registering execute units skid buffers --- hw/rtl/VX_instr_demux.v | 13 +++--- hw/syn/quartus/top4/Makefile | 79 ++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 hw/syn/quartus/top4/Makefile diff --git a/hw/rtl/VX_instr_demux.v b/hw/rtl/VX_instr_demux.v index a3e7d0bd..1649a50a 100644 --- a/hw/rtl/VX_instr_demux.v +++ b/hw/rtl/VX_instr_demux.v @@ -38,8 +38,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `ALU_BR_BITS + 1 + 32 + 1 + 1 + `NR_BITS + 1 + `NT_BITS + (2 * `NUM_THREADS * 32)), - .NOBACKPRESSURE (1), // ALU has no back pressure, - .BUFFERED (0) + .NOBACKPRESSURE (1) // ALU has no back pressure ) alu_buffer ( .clk (clk), .reset (reset), @@ -58,7 +57,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + `LSU_BITS + 32 + `NR_BITS + 1 + (2 * `NUM_THREADS * 32)), - .BUFFERED (0) + .BUFFERED (1) ) lsu_buffer ( .clk (clk), .reset (reset), @@ -77,7 +76,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + `CSR_BITS + `CSR_ADDR_BITS + `NR_BITS + 1 + 1 + `NR_BITS + 32), - .BUFFERED (0) + .BUFFERED (1) ) csr_buffer ( .clk (clk), .reset (reset), @@ -97,7 +96,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + `MUL_BITS + `NR_BITS + 1 + (2 * `NUM_THREADS * 32)), - .BUFFERED (0) + .BUFFERED (1) ) mul_buffer ( .clk (clk), .reset (reset), @@ -118,7 +117,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + `FPU_BITS + `MOD_BITS + `NR_BITS + 1 + (3 * `NUM_THREADS * 32)), - .BUFFERED (0) + .BUFFERED (1) ) fpu_buffer ( .clk (clk), .reset (reset), @@ -140,7 +139,7 @@ module VX_instr_demux ( VX_skid_buffer #( .DATAW (`NW_BITS + `NUM_THREADS + 32 + 32 + `GPU_BITS + `NR_BITS + 1 + (`NUM_THREADS * 32 + 32)), - .BUFFERED (0) + .BUFFERED (1) ) gpu_buffer ( .clk (clk), .reset (reset), diff --git a/hw/syn/quartus/top4/Makefile b/hw/syn/quartus/top4/Makefile new file mode 100644 index 00000000..55e25c01 --- /dev/null +++ b/hw/syn/quartus/top4/Makefile @@ -0,0 +1,79 @@ +FAMILY = "Arria 10" +DEVICE = 10AX115N3F40E2SG +FPU_CORE_PATH=../../../rtl/fp_cores/altera/arria10 + +#FAMILY = "Stratix 10" +#DEVICE = 1SX280HN2F43E2VG +#FPU_CORE_PATH=../../../rtl/fp_cores/altera/stratix10 + +PROJECT = vortex_afu +TOP_LEVEL_ENTITY = vortex_afu +SRC_FILE = vortex_afu.sv + +RTL_DIR=../../../rtl +FPU_INCLUDE = $(RTL_DIR)/fp_cores;$(FPU_CORE_PATH);$(RTL_DIR)/fp_cores/fpnew/src;$(RTL_DIR)/fp_cores/fpnew/src/fpu_div_sqrt_mvp/hdl;$(RTL_DIR)/fp_cores/fpnew/src/common_cells/include;$(RTL_DIR)/fp_cores/fpnew/src/common_cells/src +RTL_INCLUDE = $(RTL_DIR);$(RTL_DIR)/libs;$(RTL_DIR)/interfaces;$(RTL_DIR)/cache;../../../rtl/afu;../../../rtl/afu/ccip;$(FPU_INCLUDE) + +PROJECT_FILES = $(PROJECT).qpf $(PROJECT).qsf + +# Executable Configuration +SYN_ARGS = --parallel --read_settings_files=on +FIT_ARGS = --parallel --part=$(DEVICE) --read_settings_files=on +ASM_ARGS = +STA_ARGS = --parallel --do_report_timing + +# Build targets +all: $(PROJECT).sta.rpt + +syn: $(PROJECT).syn.rpt + +fit: $(PROJECT).fit.rpt + +asm: $(PROJECT).asm.rpt + +sta: $(PROJECT).sta.rpt + +smart: smart.log + +# Target implementations +STAMP = echo done > + +$(PROJECT).syn.rpt: smart.log syn.chg $(SOURCE_FILES) + quartus_syn $(PROJECT) $(SYN_ARGS) + $(STAMP) fit.chg + +$(PROJECT).fit.rpt: smart.log fit.chg $(PROJECT).syn.rpt + quartus_fit $(PROJECT) $(FIT_ARGS) + $(STAMP) asm.chg + $(STAMP) sta.chg + +$(PROJECT).asm.rpt: smart.log asm.chg $(PROJECT).fit.rpt + quartus_asm $(PROJECT) $(ASM_ARGS) + +$(PROJECT).sta.rpt: smart.log sta.chg $(PROJECT).fit.rpt + quartus_sta $(PROJECT) $(STA_ARGS) + +smart.log: $(PROJECT_FILES) + quartus_sh --determine_smart_action $(PROJECT) > smart.log + +# Project initialization +$(PROJECT_FILES): + quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src "$(SRC_FILE)" -sdc ../project.sdc -inc "$(RTL_INCLUDE)" -set "NOPAE" -set "NUM_CORES=4" + +syn.chg: + $(STAMP) syn.chg + +fit.chg: + $(STAMP) fit.chg + +sta.chg: + $(STAMP) sta.chg + +asm.chg: + $(STAMP) asm.chg + +program: $(PROJECT).sof + quartus_pgm --no_banner --mode=jtag -o "$(PROJECT).sof" + +clean: + rm -rf bin *.rpt *.chg *.qsf *.qpf *.qws *.log *.htm *.eqn *.pin *.sof *.pof qdb incremental_db tmp-clearbox