From Nand To Tetris 从与非门到俄罗斯方块

6、P1 W1 U1.5 硬件模拟

2019-07-27  本文已影响0人  shazizm

视频:
如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W1U1.5 - Hardware Simulation

软件:
全课程所需软件项目包(其中包含本节所需的HardwareSimulator程序)
官方软件项目包下载:
https://www.nand2tetris.org/software
备了一份软件项目包放在CSDN了,版本2.6支持Mac、Linux、Windows:
https://download.csdn.net/download/shazizm/11268147





当我们在上节课 获得了一个 XOR的HDL文件后。如何检查它写的是否逻辑正确,语法无误恩。这节就来介绍 一个 硬件模拟器,来解决上述问题。

下载官方软件包, 下图在Mac上的解压目录结构,Windows下用 .bat 后缀的文件,双击运行。
Mac或Linux下,先在tools目录下 chmod 755 *.sh,修改执行权限后。再用命令行 ./HardwareSimulator.sh 启动程序。


chmod 755 *.sh 改文件执行权限,通过 ls -al 查看修改结果

本节涉及四个主要内容:
一个上节课讲到的XOR的 HDL文件( HDL code )。
一个软件包已经给的测试文件( test script )。
一个可运行的硬件模拟器HardwareSimulator(如不能运行,请安装java运行环境)。
一个测试结果对比文件(compare files)


模拟器提供交互方式显示布尔结果,也可以基于脚本文件来测试,最后也可以输出仿真结果并和预设结果进行比较。

演示demo样例程序(Xor.hdl):
运行软件,点击左上菜单栏 File->Load Chip
选择软件包目录里的 projects/demo/Xor.hdl
软件调试功能 和 显示布局如下图。


此模拟器没法编辑修改加载的HDL文件。需要修改文件后,再加载上来。因为下图加载的hdl文件没有实现代码。所以内部逻辑区域对应没有显示东西。

注:本节课程视频的 8分27秒 - 12分05秒有一个上图的操作演示视频。简书不支持bilibili可播放插入。

演示demo测试脚本(Xor.tst):
运行软件,点击左上菜单栏 File->Load Script
选择软件包目录里的 projects/demo/Xor.tst


测试脚本在软件包里提供,可用于设计完自己的逻辑门.hdl后,用于检查设计是否正确,很重要,因为后面课程都是基于前面的基础逻辑门,所以一定要测试自己的设计。

注:本节课程视频的 18分20秒 - 22分55秒有一个上图的操作演示视频。这里有关于测试脚本的具体演示说明。

关于硬件模拟器:
和硬件描述语言一样,商业的专业软件也有很多。
我们用的就是专门为课程量身准备的,精小、简单、高效。


关于硬件模拟器,更多信息,上图官网链接提供。。。无效

关于结果对比文件 compare files(Xor.cmp):
Xor.cmp 在 demo 文件夹里,和Xor.tst 在同一目录,此文件格式和output文件格式一样,相当于老师提供的一个正确版本。用于自动对比我们设计运行结果是否和老师的一致。
下图 Xor.tst 里红色行,描述了 如何关联 比较文件Xor.cmp


注:Xor.cmp 和 Xor.tst 应放在同一文件夹下。运行测试脚本后,在硬件模拟器最下面提示信息处出会提示是否对比成功,有错误会以红色显示。

最后,老师介绍了一下 我们要做的硬件项目。
老师:扮演系统架构的角色(把“HACK”计算机,拆解成一个个小的组成部分)
学生:扮演开发者角色 (把一个个小的组成部分,用HDL语言实现)

总共会有30个小部件(逻辑门组成)需要学生在接下来的课程里阶段性的实现

本节我们主要讲解了,硬件模拟器和相关的文件和操作。
在进入真正的开发之前,下一节课还要再介绍一个关键的概念Multi-bits Buses (多bits的总线?)

上一篇下一篇

猜你喜欢

热点阅读