赵成的声音在会议室里回荡,带着一种不容置疑的穿透力。
所有专家都停下了争论,茫然地看着他,不明白他是什么意思。
不区分“实例化”和“连线”?那还怎么设计硬件?
赵成没有理会他们的疑惑,他完全沉浸在了自己的顿悟之中。他的笔在白板上飞速舞动,好像那不是一支笔,而是一把正在解剖世界的刻刀。
“我们来看一个最简单的场景。”
“我们已经‘构建’好了一个‘加法器’的图纸,它有两个输入口A和B,一个输出口C。”
“我们还‘构建’了两个‘寄存器’的图纸,叫Reg1和Reg2,它们都有一个输入口D和一个输出口Q。”
“现在,我们的目标是:把Reg1和Reg2的输出,连接到加法器的输入,然后把加法器的结果,存到第三个寄存器Reg3里。”
这是一个最基础的硬件逻辑,所有硬件工程师都烂熟于心。用传统方法,他们会先在图纸上画出三个寄存器和一个加法器,然后用笔画出四条线把它们连起来。
“按照刚才的争论,我们可能要写:”
赵成在白板的一侧,写下了大家争论的几种方案。
方案一(过程式):
生成 加法器 add1;
生成 寄存器 reg1, reg2, reg3;
连接 reg1.Q -> add1.A;
连接 reg2.Q -> add1.B;
连接 add1.C -> reg3.D;
方案二(数据流式):
reg3.D 寄存器3.输入;
}
当这段代码出现在白板上时,整个会议室陷入了死一般的寂静。
所有人都瞪大了眼睛,看着那段代码,好像在看天书。
尤其是那最后一句:
加法器(A: 寄存器1.输出, B: 寄存器2.输出) -> 寄存器3.输入;
这是什么语法?
既不像函数调用,也不像简单的赋值。
它看起来……像一句话。
一个主语(加法器),带着两个宾语(寄存器1和寄存器2的输出),做了一个动作(计算),然后这个动作的结果,流向了另一个宾语(寄存器3的输入)。
而这一切,都发生在一个名为“节拍上升时”的