<#718 Support for overriding the module parameter ...
# openlane
g
#718 Support for overriding the module parameter during synthesis New issue created by dineshannayya Prompt When Generic IP which has multiple parameter over-ride option, it would be better to provide module parameter over-ride during synthesis. Yosys support command to overide the module parameter. HERE is Yosys Example command Memory bits <= 18K; Data width <= 36; Address width <= 14: read_verilog ../common/blockram.v chparam -set ADDRESS_WIDTH 10 -set DATA_WIDTH 1 blockram This module parameter option is not supported in Openlane flow. Proposal Add additional environmental variable like : SYNTH_PARAMS set ::env(SYNTH_PARAMS) "BIST_ADDR_WD 8, BIST_DATA_WD 32, BIST_ADDR_START 9'h000, BIST_ADDR_END 9'h1FB, BIST_REPAIR_ADDR_START 9'h1FC, BIST_RAD_WD_I 9, BIST_RAD_WD_O 9 " Add the following logic in synth.tcl & synth_top.tcl Module level parameter overide if { [info exists ::env(SYNTH_PARAMS) ] } { log "Reading $::env(SYNTH_PARAMS) as a parameter" set records [split $::env(SYNTH_PARAMS) ","] foreach rec $records { chparam -set [lindex $rec 0] [lindex $rec 1] $vtop } } else { log "No parameter define found" } synth.txt synth_top.txt Attached the modified scripts/synth.tcl and scripts/synth_top.tcl Note: File name extension is changes from .tcl to .txt due to github attach error/ Alternatives Currently we have to manually hardcode the paremeter inside the generic module. The-OpenROAD-Project/OpenLane