mirror of
https://github.com/lowRISC/ibex.git
synced 2025-06-27 17:00:41 -04:00
Check that the number of cycles are always as specified for the current configuration for data independent operations. The required input signals for each arithmetic operation are split into different files which are included into the testbench. For each combination of operation and configured configuration (slow/fast/single) a define stores the number of cycles in a separate file. A target exists for each combination. For a convenient execution the targets are grouped together in a makefile. The implementation is based on the formal/icache checks. For the selection of the single cycle multiplication with the fast multiplication the parameter is set directly to the enum integer value.
37 lines
1.1 KiB
Makefile
37 lines
1.1 KiB
Makefile
# Copyright lowRISC contributors.
|
|
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# A simple wrapper around fusesoc to make it a bit easier to run the formal flow
|
|
|
|
core-name := lowrisc:fpv:ibex_data_ind_timing
|
|
vlnv := $(subst :,_,$(core-name))
|
|
build-root := $(abspath ../../build/$(vlnv))
|
|
|
|
# Since we have a hacky hook that runs sv2v in place on fusesoc's
|
|
# copied source files, we have to generate different build roots for
|
|
# the two flavours (otherwise bad things will happen if you run make
|
|
# -j2)
|
|
mk-build-root = $(abspath ../../build/$(vlnv)/$(1))
|
|
|
|
mk-fusesoc-cmd = \
|
|
fusesoc --cores-root=../.. \
|
|
run --build-root=$(call mk-build-root,$(1)) \
|
|
--target=$(1) \
|
|
$(core-name) $(fusesoc-params)
|
|
|
|
.PHONY: all slow fast single
|
|
all: slow fast single
|
|
|
|
operations := mull mulh div rem
|
|
slow_tgts := $(addprefix slow_, $(operations))
|
|
fast_tgts := $(addprefix fast_, $(operations))
|
|
single_tgts := $(addprefix single_, $(operations))
|
|
all_tgts := $(slow_tgts) $(fast_tgts) $(single_tgts)
|
|
|
|
slow: $(slow_tgts)
|
|
fast: $(fast_tgts)
|
|
single: $(single_tgts)
|
|
|
|
$(all_tgts):
|
|
$(call mk-fusesoc-cmd,$@)
|