arg to limit num projects
diff --git a/configure.py b/configure.py
index 41c0f61..6a51051 100755
--- a/configure.py
+++ b/configure.py
@@ -6,9 +6,9 @@
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE, SIG_DFL)
-NUM_PROJECTS = 498
filler_project_url = 'https://github.com/mattvenn/wokwi_filler'
tmp_dir = '/tmp/tt'
+DEFAULT_NUM_PROJECTS = 498
class Projects():
@@ -167,8 +167,9 @@
class CaravelConfig():
- def __init__(self, projects):
+ def __init__(self, projects, num_projects):
self.projects = projects
+ self.num_projects = num_projects
@classmethod
def unique(cls, duplist):
@@ -215,11 +216,11 @@
fh.write("scan_controller")
fh.write(" vccd1 vssd1 vccd1 vssd1")
fh.write(", \\\n")
- for i in range(NUM_PROJECTS):
+ for i in range(self.num_projects):
fh.write(" ")
fh.write(self.projects.get_macro_instance(i))
fh.write(" vccd1 vssd1 vccd1 vssd1")
- if i != NUM_PROJECTS - 1:
+ if i != self.num_projects - 1:
fh.write(", \\\n")
fh.write('"\n')
@@ -227,7 +228,7 @@
logging.info("creating extra_lef_gds.tcl")
lefs = []
gdss = []
- for i in range(NUM_PROJECTS):
+ for i in range(self.num_projects):
lefs.append(self.projects.get_macro_lef_name(i))
gdss.append(self.projects.get_macro_gds_name(i))
@@ -304,9 +305,9 @@
with open('verilog/rtl/user_project_wrapper.v', 'w') as fh:
fh.write(pre)
- fh.write(assigns.format(NUM_PROJECTS))
+ fh.write(assigns.format(self.num_projects))
fh.write(scan_controller_template)
- for i in range(NUM_PROJECTS):
+ for i in range(self.num_projects):
logging.debug("instance {} {}".format(i, self.projects.get_macro_name(i)))
# instantiate template
instance = lesson_template.format(instance=self.projects.get_macro_instance(i), name=self.projects.get_macro_name(i), id=i, next_id=i + 1)
@@ -315,7 +316,7 @@
# build the user_project_includes.v file - used for blackboxing when building the GDS
verilogs = []
- for i in range(NUM_PROJECTS):
+ for i in range(self.num_projects):
verilogs.append(self.projects.get_verilog_include(i))
verilogs = CaravelConfig.unique(verilogs)
@@ -326,7 +327,7 @@
# build complete list of filenames for sim
verilog_files = []
- for i in range(NUM_PROJECTS):
+ for i in range(self.num_projects):
verilog_files += self.projects.get_verilog_names(i)
verilog_files = CaravelConfig.unique(verilog_files)
with open('verilog/includes/includes.rtl.caravel_user_project', 'w') as fh:
@@ -343,6 +344,7 @@
parser.add_argument('--list', help="list projects", action='store_const', const=True)
parser.add_argument('--update-projects', help='fetch the project data', action='store_const', const=True)
parser.add_argument('--update-caravel', help='configure caravel for build', action='store_const', const=True)
+ parser.add_argument('--limit-num-projects', help='only configure for the first n projects', type=int, default=DEFAULT_NUM_PROJECTS)
parser.add_argument('--debug', help="debug logging", action="store_const", dest="loglevel", const=logging.DEBUG, default=logging.INFO)
args = parser.parse_args()
@@ -364,7 +366,7 @@
log.addHandler(ch)
projects = Projects(update_cache=args.update_projects)
- caravel = CaravelConfig(projects)
+ caravel = CaravelConfig(projects, num_projects=args.limit_num_projects)
if args.update_caravel:
caravel.create_macro_config()