接着上一篇博客。
HDL定义的芯片(这里的“芯片”与市场上常见的复杂芯片无关,主要指各种门搭起来的电路)包含了两个部分,header和parts部分。header定义了芯片的接口(interface,我理解成输入输出),包括芯片名称、输入接口和输出接口。parts部分描述了芯片内部的更低一层次的元件(例如更低层次的芯片或门),记录了这些元件名字和各个部分的连接状况。每个元件都会有一个声明(statement)来描述它自己的名字和与其他元件的连接情况。要注意的是,在写元件的声明之前要先定义好这个元件的接口(例如输入接口和输出接口等,就好像C语言里的调用变量之前必须声明这个变量一样)。
元件之间的连接要用HDL来声明内部引脚,并通过声明的内部引脚进行连接。例如Not(…, out=nota)和And(a=nota,…),就是创建了一个名为nota的内部引脚,并将非门的输出接口连到这个nota上,最后将nota连接到与门的a输入接口上(Not和And括号内左边是输入,右边是输出)。注意数据可以同时输出到多个引脚上(脑补成硬件,HDL只是描述硬件用的,不像其他软件编程语言)。例如下面的输入a和b就被同时输入到两个门的输入引脚。
上面的图的左边是HDL程序,中间
The Elements of Computing Systems阅读笔记(3)
最新推荐文章于 2019-03-15 20:42:03 发布