Write verilog escape (#394)

* Fir for write_verilog issue 3826

Signed-off-by: dsengupta0628 <[email protected]>

* staToVerilog2 remove escaped_name+=ch

Signed-off-by: dsengupta0628 <[email protected]>

* updated regression to remove \ from module name

Signed-off-by: dsengupta0628 <[email protected]>

* Using helpers.tcl function to redirect results

Signed-off-by: dsengupta0628 <[email protected]>

* add std::string and remove trailing space, update regression name

Signed-off-by: dsengupta0628 <[email protected]>

* update regression to reflect correct output verilog name

Signed-off-by: dsengupta0628 <[email protected]>

---------

Signed-off-by: dsengupta0628 <[email protected]>
This commit is contained in:
Deepashree Sengupta
2026-03-02 16:48:15 -08:00
committed by GitHub
parent 73e1a392c5
commit eb0446d4e2
6 changed files with 46 additions and 9 deletions
+1
View File
@@ -165,6 +165,7 @@ record_public_tests {
suppress_msg
verilog_attribute
verilog_specify
verilog_write_escape
}
define_test_group fast [group_tests all]
+18
View File
@@ -0,0 +1,18 @@
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
module hier_block (childclk,
\Y[2:1] );
input childclk;
output [1:0] \Y[2:1] ;
BUFx2_ASAP7_75t_R \abuf_$100 (.A(childclk));
BUFx2_ASAP7_75t_R \ff0/name (.A(childclk));
endmodule
+10
View File
@@ -0,0 +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 verilog_file [make_result_file "verilog_write_escape.v"]
write_verilog $verilog_file
report_file $verilog_file
read_verilog $verilog_file
+13
View File
@@ -0,0 +1,13 @@
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] );
input childclk;
output [1:0] \Y[2:1] ;
wire [1:0] \Y[2:1] ;
BUFx2_ASAP7_75t_R \abuf_$100 (.A(childclk));
BUFx2_ASAP7_75t_R \ff0/name (.A(childclk));
endmodule // hier_block1