📢
本系列文章只提供课上测试的解读
所有课下作业的源代码请按下面指示前往我的Github仓库~

BUAA-2023-CO

通过阅读本文,您可以大致了解 2023 年秋季北航计算机组成原理课程 P0 课上测试的题目内容、难度和解题思路
P0 课上测试 3题做出2题 通过。主要内容是对 logisim 的使用综合考察
题目每年都会发生变化,题意描述大致清晰,但是可能与原题有一定差异

T0·未出现的正整数

题目描述

本题中,你需要设计组合电路,找出输入中未出现的最小正整数。

简介

使用 Logisim 搭建一个组合电路。给定输入的 5 个任意无符号二进制数。确定输入中未出现的最小正整数是多少。

例如:输入为 3,0,1,2,7 时,正整数 1,2,3 已经出现,未出现的最小正整数是 4

输入输出

名称 功能 位宽 方向
input1 数据输入 8 I
input2 数据输入 8 I
input3 数据输入 8 I
input4 数据输入 8 I
input5 数据输入 8 I
输出 结果 8 O

输入:五个整数(8bit)
输出:输入中未出现的最小正整数(8bit)

求解思路

我们设最终输出的结果为out。显然,out是一个正整数。
对于5个输入的情况,经过分析,我们会有如下结论:

out的最大值是6,最小值是1。取6的情况是:五个输入分别是1、2、3、4、5。而取1的情况是五个输入中没有1

这是整道题的核心。根据这个结论,我们可以直接穷举结果。
若五个输入没有1,out取1;若有1,则继续判断
若五个输入没有2,out取2;若有2,则继续判断
若五个输入没有3,out取3;若有3,则继续判断
若五个输入没有4,out取4;若有4,则继续判断
若五个输入没有5,out取5;若有5,则取6

T1·回字楼游走

题目描述

本题中,你需要设计 Mealy 型状态机模拟在回型建筑中移动的学生。

简介

某校有一栋回字型的建筑,可以分为八个单元,由右上角起顺时针编号为 1 至 8,结成一个环。现一名学生从编号 1(东北角)的单元开始移动。
7 8 1
6 空 2
5 4 3
当学生恰好移动向相邻单元方向时,学生进入该相邻单元,输出其编号
当学生的移动方向上没有单元,这次不移动,直接输出当前所在单元格编号
输入输出如下:

输入 00 时,学生试图向上(北)移动。
输入 01 时,学生试图向下(南)移动。
输入 10 时,学生试图向左(西)移动。
输入 11 时,学生试图向右(东)移动。

输出学生试图移动到的建筑单元。

输入输出

名称 功能 位宽 方向
input 方向输入 2 I
reset 异步复位信号 1 I
clk 时钟信号 1 I
output 结果 4 O

输入:移动方式(2bit),异步复位信号(1bit),时钟信号(1bit)。
输出:建筑单元编号(4bit)。

求解思路

按题目要求,必须用 Mealy 型状态机。
这题目不难。状态表示现在所处位置,8个状态3位二进制表示
次态逻辑对照行走规则,输出逻辑与状态一一对应。

T2·识别十六进制合法序列

本题中,你需要设计 Moore 型状态机模拟识别字符序列。

题目描述

简介

每周期输入一个16进制数(4位2进制表示)。
当三个周期内连续出现:
EEE,输出1
A0E,输出2
0A0,输出3
其余状态输出0。

注意,可以重叠识别,例如A0EEE,在第3、第5周期输出21

输入输出

名称 功能 位宽 方向
input 数字输入 4 I
reset 异步复位信号 1 I
clk 时钟信号 1 I
output 结果 2 O

输入:十六进制数(4bit),异步复位信号(1bit),时钟信号(1bit)。
输出:相应结果(2bit)。

求解思路

按题目要求,必须用 Moore 型状态机。

次态逻辑

状态表示识别情况,共10个状态4位二进制表示

状态(十进制) 识别情况
0 无效
1 E
2 A
3 0
4 EE
5 A0
6 0A
7 EEE
8 A0E
9 0A0

注意重叠识别,然后就能得到次态逻辑。

输出逻辑

按照输出规则即可。

助教问答环节

这部分只提供问题。

  1. 在logisim中,如何实现同步复位?
  2. 在logisim中,probe元件的作用和用法?
  3. 在logisim中,导线蓝色和橙色分别说明了什么情况?