1 |
4 |
kfleming |
srcdir = ../src
|
2 |
|
|
testdir = ../test
|
3 |
|
|
commondir = ../../common
|
4 |
|
|
fpgadir = ../fpga
|
5 |
|
|
bdir = build/bdir
|
6 |
|
|
vdir = build/vdir
|
7 |
|
|
cdir = build/cdir
|
8 |
|
|
simdir = build/simdir
|
9 |
|
|
libbase = ../../lib/bsv
|
10 |
|
|
goldendir = ../../C_implementation/
|
11 |
|
|
plbdir = $(libbase)/PLBMaster/src
|
12 |
|
|
plbconfigdir = $(libbase)/PLBMaster/common
|
13 |
|
|
feederdir = $(libbase)/BRAMFeeder/src
|
14 |
|
|
regdir = $(libbase)/Register/src
|
15 |
|
|
bramdir = $(libbase)/BRAM
|
16 |
|
|
|
17 |
|
|
BSC = bsc
|
18 |
|
|
|
19 |
|
|
VER_OPTS = +RTS -K100000000 --RTS -u -v -verilog -aggressive-conditions -vdir $(vdir) -bdir $(bdir)
|
20 |
|
|
SIM_OPTS = +RTS -K100000000 --RTS -u -v -sim -aggressive-conditions -show-schedule -vdir $(vdir) -bdir $(bdir)
|
21 |
|
|
EXE_OPTS = +RTS -K100000000 --RTS -simdir $(simdir) -sim
|
22 |
|
|
C_OPTS = -c -fPIC
|
23 |
|
|
|
24 |
|
|
#Synthesis params
|
25 |
|
|
mkdir = ../../toolflow
|
26 |
|
|
bsclib = ../../../../lib/bsclib
|
27 |
|
|
comp16top = mkCompressionFunction16
|
28 |
|
|
comp16srcs = $(vdir)/mkCompressionFunction16.v
|
29 |
|
|
|
30 |
|
|
build:
|
31 |
|
|
mkdir -p build
|
32 |
|
|
mkdir -p $(bdir)
|
33 |
|
|
mkdir -p $(vdir)
|
34 |
|
|
mkdir -p $(cdir)
|
35 |
|
|
mkdir -p $(simdir)
|
36 |
|
|
|
37 |
|
|
SimpleCompressionFunction_verilog: build
|
38 |
|
|
$(BSC) $(VER_OPTS) -p +:$(srcdir):$(bdir):$(commondir) -g mkSimpleCompressionFunction1 $(srcdir)/CompressionFunction.bsv
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
|
42 |
|
|
SimpleCompressionFunctionTestbench64: build $(cdir)/md6_compress64.o $(cdir)/CompressionFunctionTestbench64.o
|
43 |
|
|
$(BSC) $(SIM_OPTS) -D BIT64=0 -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -g mkCompressionFunctionTestbench $(testdir)/CompressionFunctionTestbench.bsv
|
44 |
|
|
$(BSC) $(EXE_OPTS) -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -e mkCompressionFunctionTestbench $(bdir)/mkCompressionFunctionTestbench.ba $(cdir)/CompressionFunctionTestbench64.o $(cdir)/md6_compress64.o
|
45 |
|
|
|
46 |
|
|
SimpleCompressionFunctionTestbench32: build $(cdir)/md6_compress32.o $(cdir)/CompressionFunctionTestbench32.o
|
47 |
|
|
$(BSC) $(SIM_OPTS) -D BIT32=0 -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -g mkCompressionFunctionTestbench $(testdir)/CompressionFunctionTestbench.bsv
|
48 |
|
|
$(BSC) $(EXE_OPTS) -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -e mkCompressionFunctionTestbench $(bdir)/mkCompressionFunctionTestbench.ba $(cdir)/CompressionFunctionTestbench32.o $(cdir)/md6_compress32.o
|
49 |
|
|
|
50 |
|
|
SimpleCompressionFunctionTestbench16: build $(cdir)/md6_compress16.o $(cdir)/CompressionFunctionTestbench16.o
|
51 |
|
|
$(BSC) $(SIM_OPTS) -D BIT16=0 -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -g mkCompressionFunctionTestbench $(testdir)/CompressionFunctionTestbench.bsv
|
52 |
|
|
$(BSC) $(EXE_OPTS) -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -e mkCompressionFunctionTestbench $(bdir)/mkCompressionFunctionTestbench.ba $(cdir)/CompressionFunctionTestbench16.o $(cdir)/md6_compress16.o
|
53 |
|
|
|
54 |
|
|
SimpleCompressionFunctionTestbench8: build $(cdir)/md6_compress8.o $(cdir)/CompressionFunctionTestbench8.o
|
55 |
|
|
$(BSC) $(SIM_OPTS) -D BIT8=0 -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -g mkCompressionFunctionTestbench $(testdir)/CompressionFunctionTestbench.bsv
|
56 |
|
|
$(BSC) $(EXE_OPTS) -p +:$(testdir):$(srcdir):$(bdir):$(commondir) -e mkCompressionFunctionTestbench $(bdir)/mkCompressionFunctionTestbench.ba $(cdir)/CompressionFunctionTestbench8.o $(cdir)/md6_compress8.o
|
57 |
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
|
61 |
|
|
$(cdir)/md6_compress64.o: build $(goldendir)/md6_compress.c
|
62 |
|
|
gcc $(C_OPTS) -Dmd6_w=64 -Dmd6_n=89 -Dmd6_c=16 \
|
63 |
|
|
-Dmd6_b=64 -Dmd6_v=1 -Dmd6_u=1 -Dmd6_k=8 -Dmd6_q=15 \
|
64 |
|
|
-Dt0=17 -Dt1=18 -Dt2=21 -Dt3=31 -Dt4=67 -Dt5=89 \
|
65 |
|
|
-iquote$(goldendir) -o$(cdir)/md6_compress64.o $(goldendir)/md6_compress.c
|
66 |
|
|
|
67 |
|
|
$(cdir)/md6_compress32.o: build $(goldendir)/md6_compress.c
|
68 |
|
|
gcc $(C_OPTS) -Dmd6_w=32 -Dmd6_n=178 -Dmd6_c=32 \
|
69 |
|
|
-Dmd6_b=128 -Dmd6_v=2 -Dmd6_u=2 -Dmd6_k=16 -Dmd6_q=30 \
|
70 |
|
|
-Dt0=33 -Dt1=35 -Dt2=49 -Dt3=53 -Dt4=111 -Dt5=178 \
|
71 |
|
|
-iquote$(goldendir) -o$(cdir)/md6_compress32.o $(goldendir)/md6_compress.c
|
72 |
|
|
|
73 |
|
|
$(cdir)/md6_compress16.o: build $(goldendir)/md6_compress.c
|
74 |
|
|
gcc $(C_OPTS) -iquote$(goldendir) -o$(cdir)/md6_compress16.o $(goldendir)/md6_compress.c
|
75 |
|
|
|
76 |
|
|
$(cdir)/md6_compress8.o: build $(goldendir)/md6_compress.c
|
77 |
|
|
gcc $(C_OPTS) -quote$(goldendir) -o$(cdir)/md6_compress8.o $(goldendir)/md6_compress.c
|
78 |
|
|
|
79 |
|
|
|
80 |
|
|
|
81 |
|
|
$(cdir)/CompressionFunctionTestbench64.o: build $(testdir)/CompressionFunctionTestbench.c
|
82 |
|
|
gcc $(C_OPTS) -Dmd6_w=64 -Dmd6_n=89 -Dmd6_c=16 \
|
83 |
|
|
-Dmd6_b=64 -Dmd6_v=1 -Dmd6_u=1 -Dmd6_k=8 -Dmd6_q=15 \
|
84 |
|
|
-Dt0=17 -Dt1=18 -Dt2=21 -Dt3=31 -Dt4=67 -Dt5=89 \
|
85 |
|
|
-iquote$(goldendir) -o$(cdir)/CompressionFunctionTestbench64.o $(testdir)/CompressionFunctionTestbench.c
|
86 |
|
|
|
87 |
|
|
|
88 |
|
|
$(cdir)/CompressionFunctionTestbench32.o: build $(testdir)/CompressionFunctionTestbench.c
|
89 |
|
|
gcc $(C_OPTS) -Dmd6_w=32 -Dmd6_n=178 -Dmd6_c=32 \
|
90 |
|
|
-Dmd6_b=128 -Dmd6_v=2 -Dmd6_u=2 -Dmd6_k=16 -Dmd6_q=30 \
|
91 |
|
|
-Dt0=33 -Dt1=35 -Dt2=49 -Dt3=53 -Dt4=111 -Dt5=178 \
|
92 |
|
|
-iquote$(goldendir) -o$(cdir)/CompressionFunctionTestbench32.o $(testdir)/CompressionFunctionTestbench.c
|
93 |
|
|
|
94 |
|
|
$(cdir)/CompressionFunctionTestbench16.o: build $(testdir)/CompressionFunctionTestbench.c
|
95 |
|
|
gcc $(C_OPTS) -iquote$(goldendir) -o$(cdir)/CompressionFunctionTestbench16.o $(testdir)/CompressionFunctionTestbench.c
|
96 |
|
|
$(cdir)/CompressionFunctionTestbench8.o: build $(testdir)/CompressionFunctionTestbench.c
|
97 |
|
|
gcc $(C_OPTS) -iquote$(goldendir) -o$(cdir)/CompressionFunctionTestbench8.o $(testdir)/CompressionFunctionTestbench.c
|
98 |
|
|
|
99 |
|
|
MD6Engine_fpga: build
|
100 |
|
|
$(BSC) $(VER_OPTS) -D BIT64=0 -D PLB_DEFAULTS=0 -p +:$(fpgadir):$(srcdir):$(bdir):$(commondir):$(plbdir):$(plbconfigdir):$(feederdir):$(bramdir) -g mkMD6Engine $(fpgadir)/MD6Engine.bsv
|
101 |
|
|
|
102 |
|
|
MD6_comp16_toolflow90: MD6Engine_fpga
|
103 |
|
|
make -f $(mkdir)/rc.mk "synthdir=${mkdir}" "toplevel=${comp16top}" "bscdir = ${vdir}" "vsrcs=${comp16srcs}" "libdir=${bsclib}"
|
104 |
|
|
make -f $(mkdir)/par90.mk "synthdir=${mkdir}" "vsrcs=syn-current/synthesized.v" "toplevel=${verilogtop}"
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
|
108 |
|
|
clean:
|
109 |
|
|
rm -rf build
|