这里介绍一下Nand2Tetris课程里面用到的硬件模拟器的用法,可以在这里找到下载方式。
HDL语法
假如我们要构建一个非门,这时候我们需要创建一个文件,文件名为:Not.hdl
,内容如下:
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/01/Not.hdl
/**
* Not gate:
* out = not in
*/
CHIP Not {
IN in;
OUT out;
PARTS:
Nand(a=in, b=in, out=out);
}
以为//
开头,或者在/** **/
之间的是注释,这个和主流的编程语言一致。上面/** **/
之间的是Not
的描述。
CHIP
关键字定义了组件的名称,IN
定义了组件的输入端,OUT
定义了组价的输出,PARTS
下面是具体的实现。
我们来具体看实现:
Nand(a=in, b=in, out=out);
的意思是Nand
(与非门,默认提供)的输入端a
, b
作为Not
的输入in
,Nand
的输出out
作为Not
的输出out
。
当我们构建完Not
的时候,我们就可以把他作为组件在后续的代码中使用了。
关于课程中project1的其他组件以及对应的功能描述,可以去参考网站的资料,我已经写完并且上传到github,可以供大家参考。
硬件模拟器
这里的硬件模拟器是java写的,所以我们首先需要安装并配置jre,这里不再赘述。配置完java之后,运行平台的脚本文件即可。例如mac运行HardwareSimulator.sh
,windows运行HardwareSimulator.bat
即可。
打开后界面如下所示:
这时候我们点击File -> Load Chip
或者下面的第一个图标来加载一个组件。这时候我们可以改变Input pins
中输入的值,然后点击Run -> Single Step
或者下面对应的图标去单步执行,执行完之后我们可以在Output pins
中看到输出。
为了验证我们写的程序是否正确,我们可以使用压缩包中提供的测试文件来测试我们的程序:测试文件以.tst
结尾,例如Not.hdl
对应的测试文件就是Not.tst
。然后我们可以点击File -> LoadScript
或者对应的图标来加载测试测试脚本文件。
加载完成之后,可以在右侧看到脚本文件的具体内容,同样的,我们也可以点击Run -> Single Step
来单步执行测试脚本中的测试代码,或者Run -> Run
来执行全部的测试代码。
如果执行成功,我们可以在最下方看到运行成功的提示,否则会给出对应的报错。如下所示:
总结
到这里为止,我们了解了一些基础的逻辑电路,并且用HDL
描述了出来。使用硬件模拟器的好处是方便我们调试,验证逻辑是否正确,也不用手动去焊接电路。
课程中用到的硬件模拟器是以学习为目的的,是为了帮助我们了解计算机底层的电路结构。我这里也没有介绍的面面俱到,仅仅是介绍了最基本的用法。关于更详细的使用方式我们可以去查阅网站中的资料。
标签:Nand,硬件,一台,测试,模拟器,我们,out 来源: https://www.cnblogs.com/kaiux/p/15099760.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。