EDA365电子工程师网

标题: 论坛推荐:怎样写出好的脚本-流程的开发与建立 [打印本页]

作者: admin    时间: 2019-9-27 15:10
标题: 论坛推荐:怎样写出好的脚本-流程的开发与建立
我不是专业的程序员,我也没有太固定的coding style,只是最近在写一个utility,有些许感想,加上在之前网上收集了一些参考资料,遂想整理出来,以享需要之同志。$ B$ e5 W. z1 e; I: p
这个系列暂时还没想好写多少,目前有以下几个议题,在此基础上展开来写:; w% t/ c5 F; n8 g* P0 D
9 O& r( \6 W. J3 `
今天开始将第一个议题:流程的开发与建立' e- x) Y6 Z- f% T7 n. o9 h
flow chart
: Z! N( p/ n- Y7 k

0 @# B* ?) \4 x+ r  B+ e( q- T% k; K  q6 g
我是做IC的,大规模集成电路,在我们行业里,一切按流程办事早已成为一种共识,主要是因为集成电路的生产工艺要求很高,生产成本巨大,技术门槛相对较高(专业化),开发周期相对较长(相对传统制造业)。8 V2 s' M0 g- {
) _# H: M  o, j' x* A

. o- s& {2 k! ~) T, y, s3 QEDA工具都有一套行之有效地参考flow,每家公司都会开发一些flow和工具,来提高员工的工作效率,标准化开发手段。那么怎样的flow才是一个好的flow呢?大家的意见都是不同的,我只是管中窥豹地讲下我认为的好flow是怎么样子的。
4 H+ n# s6 Z6 u8 M6 w请看图(原创,如需引用请表明出处):
# v4 R- N8 I8 D; y2 A1 _
& L6 v/ f, [" c. e4 U) T! N* [% U( _

$ u# P. {  \7 V: @$ d5 y3 T9 E对于Tcl来做flow controller,以下两种方式的调用子功能的方法做个比较:5 i; E" Z2 }* f: E
— proc 实现子功能5 n' @! H9 e1 K& g* n
- o( C4 o% m+ V7 o$ y& m
— eval 运行子功能模块- \1 G, ^( }" ^9 C/ l: J
. K& w3 Y1 M- u0 H0 \
由于eval的第三条,我采用的是eval来运行具体的功能模块,相当于给具体的脚本加了一层wrapper,可以做到flow与具体功能脚本隔绝开来,能更好地对flow之外的过程进行详细的控制。' N! x4 ?* }0 Y" I0 Y
对于方便管理和责任明确,维护方便等优点,我自建了一套debug系统,自己建立数据联系,将脚本管理,维护方式,错误报告等统一起来。6 ?+ i8 M  p4 {* X. ~9 E5 Y
而复用这个问题上,eval的确没有proc来得强,也不可能做到封装,而灵活性本来就是eval的优点,这个要有所取舍了。
* X5 ~! ~% w0 d4 \* {8 g0 K* L我编写的这个flower cotrolloer有如下特性:
, N, I/ ]1 V2 ?0 L7 i8 B5 z$ N2 H' f! X% A7 o& E4 L2 F
这些事主要功能,还有很多贴心的小地方在用户的不断测试中在完善。+ M& W6 k6 j: }' t8 ^
分享一个Tcl运行cmd set的wrapper :整套cmd set包含exeCmdSet, msgCmdSet, cfgCmdSet三个命令和一个全局数组变量varCmdSet。2 B) J1 `! ~6 Y/ e
?Download execmdset.proc
& o# Q7 w4 j. F* X. }$ j- S; x复制代码




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2