diff --git a/sims/vcs/Makefile b/sims/vcs/Makefile index e8a30b0c..6b388164 100644 --- a/sims/vcs/Makefile +++ b/sims/vcs/Makefile @@ -41,36 +41,7 @@ include $(base_dir)/common.mk ######################################################################################### VCS = vcs -full64 -VCS_CC_OPTS = \ - -CC "-I$(VCS_HOME)/include" \ - -CC "-I$(RISCV)/include" \ - -CC "-std=c++11" \ - $(RISCV)/lib/libfesvr.a - -VCS_NONCC_OPTS = \ - +lint=all,noVCDE,noONGS,noUI \ - -error=PCWM-L \ - -timescale=1ns/10ps \ - -quiet \ - -q \ - +rad \ - +v2k \ - +vcs+lic+wait \ - +vc+list \ - -f $(sim_common_files) \ - -sverilog \ - +incdir+$(build_dir) \ - +define+CLOCK_PERIOD=1.0 \ - $(sim_vsrcs) \ - +define+PRINTF_COND=$(TB).printf_cond \ - +define+STOP_COND=!$(TB).reset \ - +define+RANDOMIZE_MEM_INIT \ - +define+RANDOMIZE_REG_INIT \ - +define+RANDOMIZE_GARBAGE_ASSIGN \ - +define+RANDOMIZE_INVALID_ASSIGN \ - +libext+.v - -VCS_OPTS = -notice -line $(VCS_CC_OPTS) $(VCS_NONCC_OPTS) +VCS_OPTS = -notice -line $(VCS_CC_OPTS) $(VCS_NONCC_OPTS) $(VCS_DEFINE_OPTS) ######################################################################################### # vcs simulator rules diff --git a/vcs.mk b/vcs.mk index c0450da5..fb1e6781 100644 --- a/vcs.mk +++ b/vcs.mk @@ -3,8 +3,10 @@ PERMISSIVE_OFF=+permissive-off WAVEFORM_FLAG=+vcdplusfile=$(sim_out_name).vpd +CLOCK_PERIOD ?= 1.0 +RESET_DELAY ?= 777.7 + VCS_CC_OPTS = \ - -CC "-I$(VCS_HOME)/include" \ -CC "-I$(RISCV)/include" \ -CC "-std=c++11" @@ -21,12 +23,14 @@ VCS_NONCC_OPTS = \ +vc+list \ -f $(sim_common_files) \ -sverilog \ + -debug_pp \ +incdir+$(build_dir) \ $(sim_vsrcs) \ +libext+.v VCS_DEFINE_OPTS = \ - +define+CLOCK_PERIOD=1.0 \ + +define+CLOCK_PERIOD=$(CLOCK_PERIOD) \ + +define+RESET_DELAY=$(RESET_DELAY) \ +define+PRINTF_COND=$(TB).printf_cond \ +define+STOP_COND=!$(TB).reset \ +define+RANDOMIZE_MEM_INIT \ diff --git a/vlsi/Makefile b/vlsi/Makefile index 6eea3c64..533a4598 100644 --- a/vlsi/Makefile +++ b/vlsi/Makefile @@ -106,41 +106,28 @@ $(SIM_CONF): $(VLSI_RTL) $(HARNESS_FILE) $(HARNESS_SMEMS_FILE) $(sim_common_file done echo " input_files_meta: 'append'" >> $@ echo " timescale: '1ns/10ps'" >> $@ - echo " options: [" >> $@ - echo " '$(RISCV)/lib/libfesvr.a'," >> $@ - echo " '+lint=all,noVCDE,noONGS,noUI'," >> $@ - echo " '-error=PCWM-L'," >> $@ - echo " '-quiet'," >> $@ - echo " '-q'," >> $@ - echo " '+rad'," >> $@ - echo " '+v2k'," >> $@ - echo " '+vcs+lic+wait'," >> $@ - echo " '+vc+list'," >> $@ - echo " '-f $(sim_common_files)'," >> $@ - echo " '-sverilog'," >> $@ - echo " '-debug_pp']" >> $@ + echo " options:" >> $@ + for x in $(VCS_NONCC_OPTS); do \ + echo ' - "'$$x'"' >> $@; \ + done echo " options_meta: 'append'" >> $@ - echo " defines: [" >> $@ - echo " 'CLOCK_PERIOD=1.0'," >> $@ - echo " 'PRINTF_COND=$(TB).printf_cond'," >> $@ - echo " 'STOP_COND=!$(TB).reset'," >> $@ - echo " 'RANDOMIZE_MEM_INIT'," >> $@ - echo " 'RANDOMIZE_REG_INIT'," >> $@ - echo " 'RANDOMIZE_GARBAGE_ASSIGN'," >> $@ - echo " 'RANDOMIZE_INVALID_ASSIGN']" >> $@ + echo " defines:" >> $@ + for x in $(VCS_DEFINE_OPTS); do \ + echo ' - "'$$x'"' >> $@; \ + done echo " defines_meta: 'append'" >> $@ - echo " compiler_opts: [" >> $@ - echo " '-I$(RISCV)/include'," >> $@ - echo " '-std=c++11']" >> $@ + echo " compiler_opts:" >> $@ + for x in $(filter-out -CC,$(VCS_CC_OPTS)); do \ + echo ' - "'$$x'"' >> $@; \ + done echo " compiler_opts_meta: 'append'" >> $@ echo " execution_flags_prepend: ['$(PERMISSIVE_ON)']" >> $@ echo " execution_flags_append: ['$(PERMISSIVE_OFF)']" >> $@ - echo " execution_flags: [" >> $@ - echo " '+max-cycles=$(timeout_cycles)'," >> $@ + echo " execution_flags:" >> $@ + echo " - '+max-cycles=$(timeout_cycles)'" >> $@ for x in $(SIM_FLAGS); do \ - echo ' "'$$x'",' >> $@; \ + echo ' - "'$$x'"' >> $@; \ done - echo " ]" >> $@ echo " execution_flags_meta: 'append'" >> $@ echo " benchmarks: ['$(BINARY)']" >> $@ echo " tb_dut: 'testHarness.top'" >> $@ @@ -148,22 +135,19 @@ $(SIM_CONF): $(VLSI_RTL) $(HARNESS_FILE) $(HARNESS_SMEMS_FILE) $(sim_common_file $(SIM_DEBUG_CONF): $(VLSI_RTL) $(HARNESS_FILE) $(HARNESS_SMEMS_FILE) $(sim_common_files) mkdir -p $(dir $@) echo "sim.inputs:" > $@ - echo " defines: [" >> $@ - echo " 'DEBUG']" >> $@ + echo " defines: ['DEBUG']" >> $@ echo " defines_meta: 'append'" >> $@ - echo " execution_flags: [" >> $@ + echo " execution_flags:" >> $@ for x in $(VERBOSE_FLAGS) $(WAVEFORM_FLAG); do \ - echo ' "'$$x'",' >> $@; \ + echo ' - "'$$x'"' >> $@; \ done - echo " ]" >> $@ echo " execution_flags_meta: 'append'" >> $@ echo "sim.outputs.waveforms: ['$(sim_out_name).vpd']" >> $@ $(SIM_TIMING_CONF): $(VLSI_RTL) $(HARNESS_FILE) $(HARNESS_SMEMS_FILE) $(sim_common_files) mkdir -p $(dir $@) echo "sim.inputs:" > $@ - echo " defines: [" >> $@ - echo " 'NTC']" >> $@ + echo " defines: ['NTC']" >> $@ echo " defines_meta: 'append'" >> $@ echo " timing_annotated: 'true'" >> $@ @@ -179,13 +163,11 @@ $(POWER_CONF): $(VLSI_RTL) $(HARNESS_FILE) $(HARNESS_SMEMS_FILE) $(sim_common_fi echo " '$(OBJ_DIR)/sim-par-rundir/$(notdir $(BINARY))/ucli.saif'" >> $@ echo " ]" >> $@ echo " waveforms: [" >> $@ - echo " '$(OBJ_DIR)/sim-par-rundir/$(notdir $(BINARY))/$(sim_out_name).vcd'" >> $@ - echo " ]" >> $@ - echo " start_times: [" >> $@ - echo " 0" >> $@ + #echo " '$(OBJ_DIR)/sim-par-rundir/$(notdir $(BINARY))/$(sim_out_name).vcd'" >> $@ echo " ]" >> $@ + echo " start_times: ['0ns']" >> $@ echo " end_times: [" >> $@ - echo " 15000" >> $@ #timeout_cycles * clock_period + echo " '`bc <<< $(timeout_cycles)*$(CLOCK_PERIOD)`ns'" >> $@ echo " ]" >> $@ ######################################################################################### diff --git a/vlsi/hammer b/vlsi/hammer index ec0171a8..41feaed2 160000 --- a/vlsi/hammer +++ b/vlsi/hammer @@ -1 +1 @@ -Subproject commit ec0171a88950414f4d6dc59407cc3493f2705d9d +Subproject commit 41feaed2d42e59280538a4dc041af625f88a0edc diff --git a/vlsi/hammer-cadence-plugins b/vlsi/hammer-cadence-plugins index 6715c3de..cf2304c2 160000 --- a/vlsi/hammer-cadence-plugins +++ b/vlsi/hammer-cadence-plugins @@ -1 +1 @@ -Subproject commit 6715c3deb074a90860fb151564e83e04bbd24e44 +Subproject commit cf2304c21166cea140cc8e039824feeb51c89e0d diff --git a/vlsi/hammer-synopsys-plugins b/vlsi/hammer-synopsys-plugins index b2d4233f..451e0721 160000 --- a/vlsi/hammer-synopsys-plugins +++ b/vlsi/hammer-synopsys-plugins @@ -1 +1 @@ -Subproject commit b2d4233f4f6ca9df776931dc32c15c69c48bd93e +Subproject commit 451e072193f13f4a25cfa891426a52dbd7556c03