-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefrag-verilog
49 lines (40 loc) · 1.32 KB
/
Makefrag-verilog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#--------------------------------------------------------------------
# Verilog Generation
#--------------------------------------------------------------------
FIRRTL_JAR := $(base_dir)/firrtl.jar
$(FIRRTL_JAR): $(shell find $(base_dir)/src/main/scala -name '*.scala')
$(MAKE) -C $(FIRRTL_DIR) SBT="$(SBT)" root_dir=$(base_dir) build-scala
mkdir -p $(@D)
cp -p $(FIRRTL_DIR)/utils/bin/firrtl.jar $@
touch $@
jar: $(FIRRTL_JAR)
# Build .fir
$(FIRRTL_FILE): $(FIRRTL_JAR)
mkdir -p $(dir $@)
cd $(base_dir) && \
$(SBT) "runMain $(GENERATOR) -td $(build_dir) -T $(PROJECT).$(MODEL) -C $(PROJECT).$(CONFIG)"
fir: $(FIRRTL_FILE)
# Build .v
FIRRTL_TRANSFORMS := \
firrtl.passes.InlineInstances \
FIRRTL := $(JAVA) $(JAVA_ARGS) -cp $(FIRRTL_JAR) firrtl.stage.FirrtlMain
$(VLOG_FILE) $(MEM_CONF): $(FIRRTL_FILE)
mkdir -p $(dir $@)
$(FIRRTL) -i $< \
-o $(VLOG_FILE) \
-X verilog \
--infer-rw $(MODEL) \
--repl-seq-mem -c:$(MODEL):-o:$(MEM_CONF) \
-td $(build_dir) \
-fct $(subst $(SPACE),$(COMMA),$(FIRRTL_TRANSFORMS)) \
# Build SRAM
$(SRAM_FILE): $(MEM_CONF) $(VLSI_MEM_GEN)
cd $(build_dir) && \
rm -f $@ && \
$(VLSI_MEM_GEN) $(MEM_CONF) >> [email protected] && \
mv [email protected] $@
# Build ROM
$(BOOTROM_VLOG): $(VLOG_FILE)
$(MAKE) -C $(BOOTROM_DIR) romvlog
.PHONY: verilog
verilog: $(VLOG_FILE) $(SRAM_FILE) $(BOOTROM_VLOG)