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 插件

  • 可通过pymodetclmode() 实时切换语言:
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 Tabstring 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体验


现在就免费下载试用:


  1. 具体调用的编辑器受 $crossprobe_exec 工具变量控制,具体用法参考man crossprobe_exec  ↩︎

  2. Golang 插件接口框架:https://gitee.com/challensys/fusionshell-plugin ↩︎