DashRTL
…慢
…还是慢。
全芯片 RTL 编译,实在太慢了
是时候用 DashRTL 大幅提速
- 真正的 analyze 和 elaborate 阶段并行加速
- 没有最高 CPU 核数限制
- 针对 编译—代码修正—重编译 迭代的额外提速
- 全芯片级的容量支持
- 独有的 Tcl + Python 命令行 FusionShell™️
场景示例
设计读入
无论是综合工程师习惯的脚本方式启动…
% dashrtl -files your_script.tcl
还是验证工程师习惯的 RTL 文件 / 列表方式…
%dashrtl -run -f top.lst
%dashrtl -run top.v sub.v
还是从 GUI 界面输入,DashRTL 工具都支持。
高速并行 analyze + elaborate
前所未有的全芯片 RTL 秒级读入体验
使用 top 命令随时查看 DashRTL 编译并行度:
定位问题代码
当发现语法错误时,DashRTL 总是能给出最详尽的错误信息。
Error: expecting 'scalared', 'vectored', 'signed', '(', '[', '#' or identifier but get '1'. (ANA-EXPECT-ID) Line: 2 File: /home/project/rtl/illegal_net_example.v
DashRTL 永远不会给出类似 “某个 Token 附近出现语法错误” 这样的简略提示。
一键跳转到任意编辑器
我们尊重用户选择自己惯用的编辑器的研发习惯。
在 DashRTL 定位错误后,仅需键入
dashrtl-tcl> crossprobe
或点击图标,DashRTL 便会用你指定的编辑器1打开代码文件,跳转到错误所在行。
一键重编译
完成代码编辑并保存后,仅需键入
dashrtl-tcl> reload_design
或点击图标,DashRTL 便可自动重新执行 analyze + elaborate 流程,查找下一个错误。
审阅设计潜在问题

独有的 Tcl + Python 命令行 – FusionShell™,现已支持 Golang 插件
- 可通过
pymode
和tclmode()
实时切换语言:
dashrtl-tcl>set a hello,user
hello,user dashrtl-tcl>pymode
dashrtl-py>a
'hello,user'
- 或在 Tcl 中直接用独有的
call
命令调用 Python 函数:
dashrtl-tcl> call 'abc'.upper
ABC
- 提供 Golang 插件接口,支持用户以接近原生 EDA 工具的性能水平下进行二次开发2
go build -buildmode=plugin -o Golang_compiled_plugin.so dashrtl-tcl>plugin load Golang_compiled_plugin.so Golang_func_name
dashrtl-tcl>plugin call Golang_func_name args...
- 支持作为独立混合脚本解释器调用
#!DASHRTL_INSTALL_PATH/bin/tclpysh
set arg_msg "args from shell: $argv"
pymode
print(arg_msg)
独有的 Ctrl+C 打断增强
- 执行任意命令中途Ctrl+C打断支持:
dashrtl-tcl> while 1 {}
用上述命令进入 while 循环后,键入Ctrl+C体验
这个看似很基本的功能,目前在绝大多数 EDA 工具中不支持。
独有的命令行 Tab 增强
- 不止支持
-switch
Tab:
键入string
Tab或string is
Tab体验:
dashrtl-tcl> string
bytelength equal index last map range replace tolower toupper trimleft
compare first is length match repeat reverse totitle trim trimright
- alias 增强:
dashrtl-tcl> alias si "string is"
按上述命令定义 alias 后键入si
Tab体验:
dashrtl-tcl> si
alnum ascii control double graph list print space upper wordchar
alpha boolean digit false integer lower punct true wideinteger xdigit
- man 增强:
支持对子命令的 man 查询,如 man string is
键入man string
Tab体验
现在就免费下载试用:
-
具体调用的编辑器受 $crossprobe_exec 工具变量控制,具体用法参考
man crossprobe_exec
↩︎ -
Golang 插件接口框架:https://gitee.com/challensys/fusionshell-plugin ↩︎