chipsalliance / Cores-VeeR-EL2

VeeR EL2 Core
https://chipsalliance.github.io/Cores-VeeR-EL2/html/
Apache License 2.0
243 stars 73 forks source link

Add a way of injecting user module for clock gate(s) #54

Closed mkurc-ant closed 1 year ago

mkurc-ant commented 1 year ago

This PR allows injecting user modules that replace clock gates without the need for modifying RTL code (answer to https://github.com/chipsalliance/Cores-VeeR-EL2/issues/50).

The config script allows to set additional parameters which end up in code as capitalized defines:

There's an example user module in testbench/user_cells.sv that can be used to test the new behavior. One can do:

configs/veer.config -set=fpga_optimize=0 -set=user_ec_rv_icg=user_clock_gate -set=tech_specific_ec_rv_icg=1
make -f tools/Makefile

which will run verilated simulation that uses the user module.

rahuljainNV commented 1 year ago

This change looks good to me.