网易首页 > 网易号 > 正文 申请入驻

在Python中藏了32年,这个神奇的编程语言,竟然成了芯片设计的霸主!

0
分享至

如果你学过Python,可能会知道Tkinter。

Tkinter 是Python 内置的图形界面(GUI)开发库,能开发类似这样的应用:


由于界面丑陋,老派,很多Python开发者根本就不用它,而是转向了PyQT/PySide。

鲜为人知的是,Tkinter里的GUI组件并不是Python实现的,而是由底层的Tk库提供,Tk通过Tcl解释器暴露接口,Python的Tkinter只是对Tcl/Tk API的一层封装。

也就是说,在Python当中,其实悄悄藏着另外一门编程语言,你完全可以调用它。

 hello, world

Tcl 从 Python1.1(1994年)开始,就入驻了Python,一直藏到了今天。

不仅如此,大名鼎鼎的Redis,原型也是用Tcl写的,后来为了性能和部署需求,核心重新用C实现。


世界上最流行的数据库SQLite,最早的时候就是Tcl的一个C语言插件,后来发现很有用,才剥离出来。


每个 Git 安装包自带的 git gui 和 gitk 工具都是 Tcl/Tk 应用程序,它们看起来“老旧”,因为它们仍然使用经典的 Tk 控件,但它们几乎“坚不可摧”,可以在任何操作系统上运行,无需任何依赖项。


你可能觉得这也没啥,毕竟Tcl现在已经没有多少人在学了。

但是,我要告诉你,Tcl最厉害的地方在EDA领域,它是芯片设计行业的“标准脚本语言”。

像 Cadence、Synopsys、Mentor Graphics 这些垄断全球芯片设计的顶级 EDA 软件,以及 Xilinx 、Intel 的 FPGA 综合工具,其内部的控制台和自动化脚本语言几乎全是 Tcl。


在数字设计领域,几乎不可能绕过 Tcl。

01

破局

故事要从加州大学伯克利分校说起。

1980年代,VLSI(超大规模集成电路)刚开始发展,大学研究者已经开始写自己的芯片设计软件。

当时 Berkeley 有一个非常著名的 VLSI 研究组,由 John Ousterhout 领导。


他们开发了一些早期 IC 设计工具,如Magic、Crystal。

这些工具很复杂,但当时GUI很少,需要各个各样的命令来控制、使用。

比如:


  • 放大某个区域

  • 查询某个晶体管

  • 批量修改版图

  • 自动运行分析


于是 Jonh 他们给每个工具都设计了一套自己的命令语言,当时大伙儿的兴奋点都在“芯片设计”本身,没人想花精力去专门设计一门控制语言,于是就随手糊弄,结果这些命令行语言写得功能有限,语法奇怪、不能复用。

时间长了,John自己都觉得这事儿太尴尬、太丢人了……

1987年,John Ousterhout 在学术休假期间,产生了一个想法:做一个通用的嵌入式脚本语言!

通用底层:变量、控制流(if/while)、函数这些基础设施由它统一搞定;

业务扩展:具体的软件(比如 Magic)只需要把自己专属的命令当成扩展塞进去就行。

不久以后,Tcl(Tool Command Language)就诞生了。


你看,Tcl专门就是为EDA软件设计的。

02

出圈

像很多语言一样,Tcl刚开始没啥影响力,只在一个很小的圈子里使用。

不过,转折点很快来了,GUI(图形用户界面)兴起,直观而丰富的交互方式吸引了大量用户。

不过,开发GUI程序被称为“程序员的噩梦”:写一个包含两个按钮和文本框的极简窗口,用原生的 C 语言往往要写几百行极其繁琐的代码,开发效率极低。

John想到,GUI应用最关键的就是按钮、列表、标签等控件,如果我把他们都实现了,然后再Tcl中使用,那岂不暴打C语言?

说干就干,John写了一个叫Tk的库,让程序员可以用简单的命令去创建GUI控件:

bind .hello 1 > click

原本用 C 语言编写需要 3 天的GUI界面,用 Tcl/Tk 脚本只需要半小时、几十行代码就能拼装完成,程序员生产率暴涨。

90年代早期,Windows API,X Window,Macintosh Toolbox 三套GUI体系互不兼容,开发跨平台GUI非常痛苦。

Tk 则实现了跨平台,这使得写一套 Tcl/Tk 代码,就能在 UNIX、Windows 和 Mac 上跑出原生风格的 GUI,成为当时最早的跨平台 GUI 框架之一。

许多 Tcl 用户声称,他们使用 Tcl 的唯一原因就是因为有了 Tk。 Tcl 和 Tk 从此在名称上就被绑到了一起。


Tcl/Tk的使用量每年大约增长一个数量级,从 1989 年的几个用户增长到 1993 年的几万个用户。

Python 语言在寻找自带的图形库时,直接选中了 Tk。

Python 内置的 tkinter 模块本质上就是对 Tcl/Tk 的 C API 封装,至今仍是 Python 官方标准库的一部分。

button.pack()

与此同时,Tcl那优秀的嵌入式能力,慢慢地进入了EDA软件巨头的视野。

03

统治

芯片设计,本质上是一条超级复杂的流水线。

一个现代芯片的诞生,大致要经历:


  • RTL设计:使用 Verilog/SystemVerilog 描述芯片功能;

  • 逻辑综合:把代码转换成门级电路;

  • 布局布线:决定数百万甚至上亿标准单元和连线的位置;

  • 静态时序分析(STA):分析芯片能否达到目标频率;


整个流程涉及几十种工具,每个步骤都有大量参数需要调整。

同时,芯片设计本身也是一个不断试错的过程:工程师需要反复测试不同约束、不同优化策略、不同工艺参数,寻找性能、功耗和面积之间的最佳平衡。

问题是,在早期 EDA 时代,各家工具厂商在自动化接口上各自发展,逐渐形成了一座“巴别塔”。


对于芯片公司的工程师来说,每增加一个工具,就意味着学习一套新的脚本体系;而想把多个厂商的工具串成完整设计流程,还需要编写大量定制化的胶水代码。

Tcl 的出现,恰好解决了这个问题。

它可以让 EDA 厂商可以非常轻松地把自己的复杂 C/C++ 工具能力封装成 Tcl 命令,而工程师又可以用 Tcl 的通用编程能力把这些命令组合成自动化流程。

Tcl 没有替代 EDA 工具,它成为了控制 EDA 工具的大脑。

90年代后期,Synopsys 开始将 Tcl 引入 Design Compiler、PrimeTime 等核心工具体系,逐渐用 Tcl 统一原有脚本接口。

与此同时,Synopsys 推出了 SDC(Synopsys Design Constraints)标准,用于描述芯片设计中的时钟、延迟和时序约束。

例如:

set_input_delay -max 0.5 -clock sys_clk [get_ports data_in*]

而SDC 就是一套建立在 Tcl 语法基础之上的 EDA 约束语言。

由于 Synopsys 在逻辑综合和静态时序分析领域长期占据领先地位,SDC 很快成为行业事实标准。

为了兼容主流设计流程,Cadence、Mentor、Ansys,以及 FPGA 厂商 Xilinx、Altera(Intel FPGA)等也纷纷支持 Tcl 和 SDC。

最终,在芯片设计这个价值数千亿美元的市场中,Tcl 成为了 EDA 工具链中事实上的标准自动化语言。

04

在通用的 Web、移动端和企业级后端开发中,Tcl 确实早已沦为极小众语言,但这并不影响它的历史地位。

Tcl是一个非常有特色的编程语言,在Tcl中,一切(代码、命令、参数、变量值)都是字符串,并且代码本身就是由字符串构成的列表(List),这让它成为元编程的利器。

我们用一段代码展示它的特点:

for $init $condition $step $hello_code

感兴趣的同学,可以评论区说一下这段代码的输出是什么。

1997年,John Ousterhout 因为对Tcl/Tk的贡献获得ACM 系统软件奖。

有意思的是,John后来又进入分布式系统领域,2014年,他和博士生 Diego Ongaro 提出了著名的Raft算法,解决了Paxos 晦涩难懂、极难工程落地的问题,嗯,能者果然是无所不能。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
心理学观察发现:不管你信不信,长大有本事的孩子,90%都出生在这两种家庭,错不了

心理学观察发现:不管你信不信,长大有本事的孩子,90%都出生在这两种家庭,错不了

心理观察局
2026-08-26 06:51:06
莫言:永远不要期望一个没有血缘关系的人,能站在你的角度替你考虑|成年人最大的清醒

莫言:永远不要期望一个没有血缘关系的人,能站在你的角度替你考虑|成年人最大的清醒

杏花烟雨江南的碧园
2026-07-27 11:15:03
4部影片定档2026国庆档

4部影片定档2026国庆档

界面新闻
2026-09-10 10:05:08
看蒋万安给他三个儿子起的名字,终于暴露了本性,再也藏不住了

看蒋万安给他三个儿子起的名字,终于暴露了本性,再也藏不住了

凡人侃史
2026-09-04 12:08:37
特斯拉零稀土电机仅装车45辆,金力永磁:动摇基本盘为时过早?

特斯拉零稀土电机仅装车45辆,金力永磁:动摇基本盘为时过早?

阿芒娱乐说
2026-09-10 11:07:13
何广沛未婚妻大秀傲人身材!比基尼凸显酥胸长腿

何广沛未婚妻大秀傲人身材!比基尼凸显酥胸长腿

游民星空
2026-09-09 12:32:30
哈马斯的地道到底谁修的?挖到最深处,答案让所有人后背发凉

哈马斯的地道到底谁修的?挖到最深处,答案让所有人后背发凉

民间胡扯老哥
2026-09-08 06:45:58
陈伟霆何穗一家三口同框,陈伟霆举起手机为母子二人拍照

陈伟霆何穗一家三口同框,陈伟霆举起手机为母子二人拍照

韩小娱
2026-09-09 15:48:15
拿下英超独家转播权,为什么成了咪咕的幸福“烦恼 ”?

拿下英超独家转播权,为什么成了咪咕的幸福“烦恼 ”?

独角兽挖掘机
2026-09-09 14:33:29
为啥大多数房东不待见男租户?网友:绝对不要租给小姑娘!都是泪!

为啥大多数房东不待见男租户?网友:绝对不要租给小姑娘!都是泪!

带你感受人间冷暖
2026-09-04 00:07:54
普京亲口保证,让特朗普放一万个心,俄军打完乌克兰绝不打欧洲

普京亲口保证,让特朗普放一万个心,俄军打完乌克兰绝不打欧洲

铁锤侃侃而谈
2026-09-10 09:29:37
英格兰公开赛中国6胜6负六人进16强,张安达放生塞尔比常冰玉憾负

英格兰公开赛中国6胜6负六人进16强,张安达放生塞尔比常冰玉憾负

天涯远行人
2026-09-10 06:21:28
9月4日,中国国防部正式宣布:中国人民解放军陆军受邀如约赴俄,准备参与东盟防长扩大会人道主义扫雷专家组主持的实兵演练

9月4日,中国国防部正式宣布:中国人民解放军陆军受邀如约赴俄,准备参与东盟防长扩大会人道主义扫雷专家组主持的实兵演练

扶苏聊历史
2026-09-07 17:42:55
张雪峰看景甜那一眼,我足足回拉了七次进度条, 结局早就被写好了

张雪峰看景甜那一眼,我足足回拉了七次进度条, 结局早就被写好了

八卦王者
2026-09-07 15:55:22
细思极恐!这是大S汪小菲第一次见面的照片,汪小菲像极了待宰羔羊

细思极恐!这是大S汪小菲第一次见面的照片,汪小菲像极了待宰羔羊

八卦王者
2026-09-10 11:30:09
贝克汉姆大儿子回应妻子身材评论:“不许谈论我的妻子,她美得无可挑剔,你永远不该对女性的身材评头论足,这种行为很可耻”

贝克汉姆大儿子回应妻子身材评论:“不许谈论我的妻子,她美得无可挑剔,你永远不该对女性的身材评头论足,这种行为很可耻”

韩小娱
2026-09-08 07:20:30
美国亮出"五美元杀招":用伊朗最擅长的打法,把革命卫队逼入绝境

美国亮出"五美元杀招":用伊朗最擅长的打法,把革命卫队逼入绝境

民间胡扯老哥
2026-09-07 07:13:20
随着欧冠积分榜出炉:巴黎6-1,阿森纳1-0,利物浦2-1逆转马竞!

随着欧冠积分榜出炉:巴黎6-1,阿森纳1-0,利物浦2-1逆转马竞!

霁寒飘雪
2026-09-10 11:30:36
内部员工曝光:别买中国轮胎?

内部员工曝光:别买中国轮胎?

新浪财经
2026-09-07 20:58:55
“眼神都拉丝了!”家长晒母子互动视频,引全网不适:儿大不避母的结果

“眼神都拉丝了!”家长晒母子互动视频,引全网不适:儿大不避母的结果

妍妍教育日记
2026-08-31 23:54:51
2026-09-10 12:31:00
码农翻身 incentive-icons
码农翻身
有趣且硬核的技术文章
309文章数 671关注度
往期回顾 全部

科技要闻

一文看懂:iPhone折叠屏顶配2万6,10月才卖

头条要闻

牛弹琴:美官员抹黑中国让全世界看笑话 鲁比奥都不信

头条要闻

牛弹琴:美官员抹黑中国让全世界看笑话 鲁比奥都不信

体育要闻

一年丢掉的积分排名,郑钦文用18天找回来

娱乐要闻

郭德纲被处罚2天,身边人传出好消息

财经要闻

银行新高!新一轮周期,刚开始!

汽车要闻

腾势Z9GT易三方闪充尊越型32.98万元上市

态度原创

教育
健康
时尚
艺术
公开课

教育要闻

这个孩子学习何如此困难?

中风康复为何像“抽丝剥茧”?

女人不管多大,都可以看看这些“条纹T恤”,非常减龄又简约

艺术要闻

禁止出境国宝!唐代孙位唯一存世真迹,宋徽宗亲笔题名

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版