From fcd95e74bb954b8ae04612b76640e7ebf2135e6b Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 3 Mar 2026 18:49:43 +0000 Subject: [PATCH 1/3] Follow up from previous to be in sync with prlx osta Signed-off-by: dsengupta0628 --- test/helpers.tcl | 41 +++++++++++++++++++++++++++++++++++ test/verilog_write_escape.tcl | 14 +++++------- test/verilog_write_escape.v | 4 ++-- verilog/VerilogWriter.cc | 2 +- 4 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 test/helpers.tcl diff --git a/test/helpers.tcl b/test/helpers.tcl new file mode 100644 index 00000000..d96fd224 --- /dev/null +++ b/test/helpers.tcl @@ -0,0 +1,41 @@ +# Helper functions common to multiple regressions. + +set test_dir [file dirname [file normalize [info script]]] +set result_dir [file join $test_dir "results"] + +# puts [exec cat $file] without forking. +proc report_file { file } { + set stream [open $file r] + if { [file extension $file] == ".gz" } { + zlib push gunzip $stream + } + gets $stream line + while { ![eof $stream] } { + puts $line + gets $stream line + } + close $stream +} + +proc report_file_filter { file filter } { + set stream [open $file r] + gets $stream line + while { ![eof $stream] } { + set index [string first $filter $line] + if { $index != -1 } { + set line [string replace $line $index [expr $index + [string length $filter] - 1]] + } + puts $line + gets $stream line + } + close $stream +} + +proc make_result_file { filename } { + variable result_dir + return [file join $result_dir $filename] +} + +proc sort_objects { objects } { + return [sta::sort_by_full_name $objects] +} \ No newline at end of file diff --git a/test/verilog_write_escape.tcl b/test/verilog_write_escape.tcl index 29ac26e8..5f68ea2b 100644 --- a/test/verilog_write_escape.tcl +++ b/test/verilog_write_escape.tcl @@ -1,14 +1,10 @@ # Check if "h1\x" and \Y[2:1] are correctly processed from input to output of Verilog +source helpers.tcl read_liberty gf180mcu_sram.lib.gz read_liberty asap7_small.lib.gz read_verilog verilog_write_escape.v link_design multi_sink -set output_file "verilog_write_escape_out.v" -write_verilog $output_file -set fp [open $output_file r] -while {[gets $fp line] >= 0} { - puts $line -} -close $fp -read_verilog $output_file -file delete $output_file +set verilog_file [make_result_file "verilog_write_escape.v"] +write_verilog $verilog_file +report_file $verilog_file +read_verilog $verilog_file \ No newline at end of file diff --git a/test/verilog_write_escape.v b/test/verilog_write_escape.v index aa7d99f3..e0c43c3e 100644 --- a/test/verilog_write_escape.v +++ b/test/verilog_write_escape.v @@ -1,10 +1,10 @@ -module \multi_sink (clk); +module multi_sink (clk); input clk; wire \alu_adder_result_ex[0] ; \hier_block \h1\x (.childclk(clk), .\Y[2:1] ({ \alu_adder_result_ex[0] , \alu_adder_result_ex[0] }) ); endmodule // multi_sink -module \hier_block (childclk, \Y[2:1] ); +module hier_block (childclk, \Y[2:1] ); input childclk; output [1:0] \Y[2:1] ; wire [1:0] \Y[2:1] ; diff --git a/verilog/VerilogWriter.cc b/verilog/VerilogWriter.cc index c18bdb0f..0dc0d51b 100644 --- a/verilog/VerilogWriter.cc +++ b/verilog/VerilogWriter.cc @@ -389,7 +389,7 @@ VerilogWriter::writeInstBusPin(const Instance *inst, if (!first_port) fprintf(stream_, ",\n "); - string port_vname = portVerilogName(network_->name(port)); + std::string port_vname = portVerilogName(network_->name(port)); fprintf(stream_, ".%s({", port_vname.c_str()); first_port = false; bool first_member = true; From d7e1b857a7e19ce618dbeea8ddf242fcc05190c3 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 3 Mar 2026 19:37:48 +0000 Subject: [PATCH 2/3] remove my copy of helpers and add the commit from jjcherry Signed-off-by: dsengupta0628 --- test/helpers.tcl | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 test/helpers.tcl diff --git a/test/helpers.tcl b/test/helpers.tcl deleted file mode 100644 index d96fd224..00000000 --- a/test/helpers.tcl +++ /dev/null @@ -1,41 +0,0 @@ -# Helper functions common to multiple regressions. - -set test_dir [file dirname [file normalize [info script]]] -set result_dir [file join $test_dir "results"] - -# puts [exec cat $file] without forking. -proc report_file { file } { - set stream [open $file r] - if { [file extension $file] == ".gz" } { - zlib push gunzip $stream - } - gets $stream line - while { ![eof $stream] } { - puts $line - gets $stream line - } - close $stream -} - -proc report_file_filter { file filter } { - set stream [open $file r] - gets $stream line - while { ![eof $stream] } { - set index [string first $filter $line] - if { $index != -1 } { - set line [string replace $line $index [expr $index + [string length $filter] - 1]] - } - puts $line - gets $stream line - } - close $stream -} - -proc make_result_file { filename } { - variable result_dir - return [file join $result_dir $filename] -} - -proc sort_objects { objects } { - return [sta::sort_by_full_name $objects] -} \ No newline at end of file From 1ba71c3ab27a12baf4f52aaf56c5eb5823d39b71 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 26 Feb 2026 09:32:20 -0800 Subject: [PATCH 3/3] test/helpers.tcl Signed-off-by: James Cherry --- test/helpers.tcl | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/helpers.tcl diff --git a/test/helpers.tcl b/test/helpers.tcl new file mode 100644 index 00000000..46eb84c9 --- /dev/null +++ b/test/helpers.tcl @@ -0,0 +1,41 @@ +# Helper functions common to multiple regressions. + +set test_dir [file dirname [file normalize [info script]]] +set result_dir [file join $test_dir "results"] + +# puts [exec cat $file] without forking. +proc report_file { file } { + set stream [open $file r] + if { [file extension $file] == ".gz" } { + zlib push gunzip $stream + } + gets $stream line + while { ![eof $stream] } { + puts $line + gets $stream line + } + close $stream +} + +proc report_file_filter { file filter } { + set stream [open $file r] + gets $stream line + while { ![eof $stream] } { + set index [string first $filter $line] + if { $index != -1 } { + set line [string replace $line $index [expr $index + [string length $filter] - 1]] + } + puts $line + gets $stream line + } + close $stream +} + +proc make_result_file { filename } { + variable result_dir + return [file join $result_dir $filename] +} + +proc sort_objects { objects } { + return [sta::sort_by_full_name $objects] +}