yosys synthesis refactoring
This commit is contained in:
@@ -49,7 +49,7 @@ smart.log: $(PROJECT_FILES)
|
||||
|
||||
# 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;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/pipe_regs;../../../rtl/cache"
|
||||
quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src $(SRC_FILE) -sdc ../project.sdc -inc "../../../rtl;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/cache"
|
||||
|
||||
syn.chg:
|
||||
$(STAMP) syn.chg
|
||||
|
||||
@@ -49,7 +49,7 @@ smart.log: $(PROJECT_FILES)
|
||||
|
||||
# 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;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/pipe_regs"
|
||||
quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src $(SRC_FILE) -sdc ../project.sdc -inc "../../../rtl;../../../rtl/libs;../../../rtl/interfaces"
|
||||
|
||||
syn.chg:
|
||||
$(STAMP) syn.chg
|
||||
|
||||
@@ -49,7 +49,7 @@ smart.log: $(PROJECT_FILES)
|
||||
|
||||
# Project initialization
|
||||
$(PROJECT_FILES):
|
||||
quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src $(SRC_FILE) -set "NOPAE" -sdc ../project.sdc -inc "../../../rtl;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/pipe_regs;../../../rtl/cache;../../../opae;../../../opae/ccip"
|
||||
quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src $(SRC_FILE) -set "NOPAE" -sdc ../project.sdc -inc "../../../rtl;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/cache;../../../opae;../../../opae/ccip"
|
||||
|
||||
syn.chg:
|
||||
$(STAMP) syn.chg
|
||||
|
||||
@@ -49,7 +49,7 @@ smart.log: $(PROJECT_FILES)
|
||||
|
||||
# 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;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/pipe_regs;../../../rtl/cache"
|
||||
quartus_sh -t ../project.tcl -project $(PROJECT) -family $(FAMILY) -device $(DEVICE) -top $(TOP_LEVEL_ENTITY) -src $(SRC_FILE) -sdc ../project.sdc -inc "../../../rtl;../../../rtl/libs;../../../rtl/interfaces;../../../rtl/cache"
|
||||
|
||||
syn.chg:
|
||||
$(STAMP) syn.chg
|
||||
|
||||
32
hw/syn/yosys/synth.sh
Executable file
32
hw/syn/yosys/synth.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
dir_list='../../rtl/libs ../../rtl/cache ../../rtl/interfaces ../../rtl'
|
||||
|
||||
inc_list=""
|
||||
for dir in $dir_list; do
|
||||
inc_list="$inc_list -I$dir"
|
||||
done
|
||||
|
||||
echo "inc_list=$inc_list"
|
||||
|
||||
{
|
||||
# read design sources
|
||||
for dir in $dir_list; do
|
||||
for file in $(find $dir -name '*.v' -o -name '*.sv' -type f)
|
||||
do
|
||||
echo "read_verilog -sv $inc_list $file"
|
||||
done
|
||||
done
|
||||
|
||||
echo "hierarchy -check -top Vortex"
|
||||
|
||||
# insertation of global reset
|
||||
echo "add -global_input reset 1"
|
||||
echo "proc -global_arst reset"
|
||||
|
||||
echo "synth -run coarse; opt -fine"
|
||||
echo "tee -o brams.log memory_bram -rules scripts/brams.txt;;"
|
||||
echo "write_verilog -noexpr -noattr synth.v"
|
||||
} > synth.ys
|
||||
|
||||
yosys -l synth.log synth.ys
|
||||
@@ -1,27 +0,0 @@
|
||||
# load design
|
||||
read_verilog -sv -I../../rtl -I../../rtl/libs -I../../rtl/interfaces -I../../rtl/pipe_regs -I../../rtl/cache ../../rtl/Vortex.v
|
||||
|
||||
# high-level synthesis
|
||||
proc; opt; fsm;; memory -nomap; opt
|
||||
|
||||
# substitute block rams
|
||||
techmap -map map_rams.v
|
||||
|
||||
# map remaining memories
|
||||
memory_map
|
||||
|
||||
# low-level synthesis
|
||||
techmap; opt; flatten;; abc -lut6
|
||||
techmap -map map_xl_cells.v
|
||||
|
||||
# add clock buffers
|
||||
select -set xl_clocks t:FDRE %x:+FDRE[C] t:FDRE %d
|
||||
iopadmap -inpad BUFGP O:I @xl_clocks
|
||||
|
||||
# add io buffers
|
||||
select -set xl_nonclocks w:* t:BUFGP %x:+BUFGP[I] %d
|
||||
iopadmap -outpad OBUF I:O -inpad IBUF O:I @xl_nonclocks
|
||||
|
||||
# write synthesis results
|
||||
write_edif synth.edif
|
||||
|
||||
Reference in New Issue
Block a user