From 6197a9353620e4458a1417365dcf7a152772241b Mon Sep 17 00:00:00 2001 From: John McMaster Date: Tue, 11 Sep 2018 17:32:50 -0700 Subject: [PATCH] timfuz: picorv32 project Signed-off-by: John McMaster --- .../007-timing/projects/oneblinkw/README.md | 2 + fuzzers/007-timing/projects/picorv32/Makefile | 2 + .../007-timing/projects/picorv32/README.md | 3 ++ .../007-timing/projects/picorv32/generate.sh | 8 ++++ .../007-timing/projects/picorv32/generate.tcl | 48 +++++++++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 fuzzers/007-timing/projects/oneblinkw/README.md create mode 100644 fuzzers/007-timing/projects/picorv32/Makefile create mode 100644 fuzzers/007-timing/projects/picorv32/README.md create mode 100755 fuzzers/007-timing/projects/picorv32/generate.sh create mode 100644 fuzzers/007-timing/projects/picorv32/generate.tcl diff --git a/fuzzers/007-timing/projects/oneblinkw/README.md b/fuzzers/007-timing/projects/oneblinkw/README.md new file mode 100644 index 00000000..ae7cac37 --- /dev/null +++ b/fuzzers/007-timing/projects/oneblinkw/README.md @@ -0,0 +1,2 @@ +Minimal, simple test + diff --git a/fuzzers/007-timing/projects/picorv32/Makefile b/fuzzers/007-timing/projects/picorv32/Makefile new file mode 100644 index 00000000..9c8b1947 --- /dev/null +++ b/fuzzers/007-timing/projects/picorv32/Makefile @@ -0,0 +1,2 @@ +include ../project.mk + diff --git a/fuzzers/007-timing/projects/picorv32/README.md b/fuzzers/007-timing/projects/picorv32/README.md new file mode 100644 index 00000000..0be27709 --- /dev/null +++ b/fuzzers/007-timing/projects/picorv32/README.md @@ -0,0 +1,3 @@ +picorv32 uses more advanced structures than simple LUT/FF tests (such as carry chain) +It attempts to provide some realistic timing data wrt fanout and used fabric + diff --git a/fuzzers/007-timing/projects/picorv32/generate.sh b/fuzzers/007-timing/projects/picorv32/generate.sh new file mode 100755 index 00000000..0ba2a7fc --- /dev/null +++ b/fuzzers/007-timing/projects/picorv32/generate.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -ex +source ../generate.sh + +vivado -mode batch -source ../generate.tcl +timing_txt2csv + diff --git a/fuzzers/007-timing/projects/picorv32/generate.tcl b/fuzzers/007-timing/projects/picorv32/generate.tcl new file mode 100644 index 00000000..a928a3bd --- /dev/null +++ b/fuzzers/007-timing/projects/picorv32/generate.tcl @@ -0,0 +1,48 @@ +source ../../../../../utils/utils.tcl +source ../../project.tcl + +proc build_design {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog ../../../src/picorv32.v + read_verilog ../top.v + synth_design -top top + + puts "Locking pins" + set_property LOCK_PINS {I0:A1 I1:A2 I2:A3 I3:A4 I4:A5 I5:A6} \ + [get_cells -quiet -filter {REF_NAME == LUT6} -hierarchical] + + puts "Package stuff" + set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_00) IOSTANDARD LVCMOS33" [get_ports clk] + set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_01) IOSTANDARD LVCMOS33" [get_ports stb] + set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_02) IOSTANDARD LVCMOS33" [get_ports di] + set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_03) IOSTANDARD LVCMOS33" [get_ports do] + + puts "pblocking" + create_pblock roi + set roipb [get_pblocks roi] + set_property EXCLUDE_PLACEMENT 1 $roipb + add_cells_to_pblock $roipb [get_cells roi] + resize_pblock $roipb -add "$::env(XRAY_ROI)" + + puts "randplace" + randplace_pblock 50 roi + + set_property CFGBVS VCCO [current_design] + set_property CONFIG_VOLTAGE 3.3 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + + puts "dedicated route" + set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_IBUF] + + place_design + route_design + + write_checkpoint -force design.dcp + # disable combinitorial loop + # set_property IS_ENABLED 0 [get_drc_checks {LUTLP-1}] + #write_bitstream -force design.bit +} + +build_design +write_info3 +