作者zxvc (执着)
看板Electronics
标题Re: [问题] Design Compiler- define_name_rules
时间Sat Nov 28 15:37:00 2009
※ 引述《zxvc (执着)》之铭言:
: 请问有用Design Compiler 2008.09的人有没有发现有几个指令好像不太有效?
: 就是:
: define_name_rules
: change_names
: report_names
: 我学长发现Design Compiler 2008.09合出来的netlist会有"\"字元。
: 我试着去测试上述指令,与manual战斗了一个下午,很失败。
: 我觉得我应该没有误解manual,也搜过google但就是试不出想要的结果。
: 只能推论软体有bugs。
: 我学长之前旧版的Design Compiler就没有此问题。
: 我觉得照理来讲最简单的作法拿掉"\"可以用以下指令:
: define_name_rules myrule -restricted "\\"
: change_names -rules myrule -hierachy
: 但DC 2008.09写出的netlist还是有"\"。
: 有没有人遇到类似问题?
经过两天来的战斗,终於把反斜线的问题给解决了,得到以下心得。
1. define_name_rules的-map的map string的格式是:
{{"pattern", "replacement"}, {"pattern", "replacement"}*}
但在使用-map时map string外部还要再加上一层{}。如:
define_name_rules MyRule -map {{{"a", "A"}, {"b", "B"}}}
(详情请看DC manuals)
2. 如果write的Verilog netlist有incomplete net busses
(如abc[2], abc[0],却没有abc[1]),
或斜线"/"(如A/B, A/B/C),
那麽在用DC写出Verilog netlist时,DC会在这些nets前加上反斜线"\"字元,
并且在最後面加上一个space character " ",
(否则NC-Verilog或ModelSim会compile失败)。
例如:
合法: wire \abc[2] , \abc[0] , xxx;
不合法:wire abc[2] , xxx; wire \abc[2], xxx;
所以在写出netlist前必须把"["、"]"、"/"用别的字元替换掉。
但你无法用define_name_rules的-restricted限制这些字元(原因不名)。
似乎只能用-map,如:
define_name_rules MyRule -map {{{"[", "_"}, {"]", "_"}, {"/", "_"}}}
change_names -rules MyRule -hierarchy
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.206.104
1F:→ zxvc:哭哭,刚才翻了IEEE 1364-2005才知道incomplete net busses 11/28 15:59
2F:→ zxvc:的命名是follow IEEE 1364-2005 3.7.1 Escaped identifiers。 11/28 16:00
3F:→ zxvc:才短短的几行字没看到,就花费我不少时间研究。 11/28 16:03
4F:→ zxvc:之前都以为絶不会用奇怪的字元命名,都直接忽略escaped 11/28 16:05
5F:→ zxvc:identifiers的观念不看。 11/28 16:05
6F:→ zxvc:这个name rule更好: 11/28 16:25
7F:→ zxvc:-remove_irregular_net_bus -restricted "/\[\]" 11/28 16:25
8F:→ zxvc:不会把busses展开成难阅读的格式。 11/28 16:28
9F:→ zxvc:看来-restricted是不能直接处理escaped identifiers。 11/28 16:29
10F:推 UBL:推!! 11/28 17:20
11F:推 Trai:1 11/28 17:28