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

14、P1 W2 U2.5 作业2 讲解

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

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

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

本周作业如下图

已知:上周完成的逻辑门

求:
HalfAdder
FullAdder
Add16
Inc16(自加1)
ALU

完成作业的方法,依然采取 上周总结的方法步骤。
1、真值表
2、布尔函数
3、HDL
4、测试

PS:第一周作业详情说了如何用 Hardware Simulator 硬件模拟器 进行测试。这里就贴一张图

Hardware_Simulator 本文最开始 软件处下载



一、HalfAdder (半加器)

已知下图:
完成 HalfAdder.hdl


提示:可以用两个基础逻辑门组成



二、FullAdder(带进位 全加器)

已知下图:
完成 FullAdder.hdl


提示:可以用两个半加器组成



三、Add16

已知下图:
完成 Add16.hdl

貌似很简单,这个参考 And16,Or16 之类的,就是考虑一下进位怎么搞。

提示:可以由16个全加器组成。进位可以一个接一个。最后的进位忽略。



四、Inc16

已知下图:
完成 Inc16.hdl
注:这个本周貌似没有提到,应该是 一个 16bit的二进制数,加1。


提示:在HDL里 1位的0 或 1位的1,可以对应用 false 和 true 来代替。最后的进位忽略



五、ALU

已知下图:
完成 ALU.hdl


提示:会用到Add16和第一周做的逻辑门组成。HDL的代码可以少于20行。





上周作业提到最佳实践,这周再增加一个:
你可以使用第一周自己做的逻辑门,但是我们建议你比如在第二周里先用内建的第一周的逻辑门,这样方便确认错误到底是因为第一周的设计引起的,还是第二周的错误引起的。

另外,如何在第二周使用第一周自己设计的逻辑门?
只需要将第一周写好的.hdl文件拷贝到第二周作业的文件夹下,硬件模拟器就会自动选用我们自己写好的.hdl,否则就会默认使用内建的逻辑门。


最佳实践
上一篇下一篇

猜你喜欢

热点阅读