Lazy loaded image
计组课件整理
字数 6412阅读时长 17 分钟
2025-11-2
2025-11-2
type
status
date
slug
summary
tags
category
icon
password

第二章 数字逻辑基础

分析题两道

1. 用卡诺图化简法将下列逻辑函数化为最简与-或式。
求解:
notion image
 
2. 用卡诺图化简法将下列逻辑函数化为最简与-或式。
求解:
notion image
 

第三章 组合逻辑电路

设计题一道

3. 已知一个组合逻辑电路的功能可用图1所示的真值表来描述,要求利用无关项进行化简,给出函数F的最简逻辑表达式,画出对应的逻辑电路图,并分析该逻辑电路是否存在竞争冒险?
notion image
notion image
notion image
 
答:利用无关性进行化简如图 2 所示,可能有 3 种化简结果:
观察第一个逻辑表达式,发现其乘积项中变量 存在逻辑相反的情况,若 时,,此时, 变为 时,会在输出端形成短暂的毛刺,因此该电路存在竞争冒险。通过增加冗余项 就可消除冒险。
同理,可分析其它两个表达式。

第四章 时序逻辑电路

设计题三道

4. 某时序逻辑电路能够检测并统计两个外部输入信号 的出现次数,如果 的出现次数累计为 的倍数,则输出信号 ,否则 。请画出这个电路的状态图。(提示:0 也是 的倍数。)
答: 表示初始状态以及当 输入 的累计次数为 的倍数时的状态, 表示 的累计输入次数为模 时的状态, 表示 的累计输入次数为模 时的状态, 表示 的累计输入次数为模 时的状态则,得到电路的状态图(转移条件表达式格式为 )如图 4 所示。
notion image
 
5. 化简状态图,并给出分析过程。
答:考察图中状态集合中两两之间的次态变化和输出情况可知,状态 和状态 是等价的(同一输入条件下次态和输出都相同)。由状态 和状态 等价可推导出状态 和状态 也等价(在输入 时,两个状态相互转移可认为等价)。 合并后,可发现 也属于类似情况,由此可知 都等价。基于上述分析,得到如图化简后的状态表。
notion image
notion image
 
6. 化简状态图,并给出分析过程。
答:如图所示,利用隐含表化简分析,寻找等效对,进行关联比较可知,原始状态表中的 个状态共构成 个等效对, 求出 个最大等效类 。然后进行状态合并,作出最小化状态表。 令 ,并代入原始状态表中,即可得到化简后的状态表。
notion image

第五章 FPGA设计和硬件描述语言

代码题两道

7. 在高性能处理器设计中可通过 PopCount 电路模块来统计每周期执行的指令数量。函数 PopCount(x) 的定义为 x 的二进制表示中“1”的数量,如 PopCount(5)=2,PopCount(11)=3。
假定 x 的位宽为 3 ,按以下要求用 Verilog 实现 PopCount 电路模块的功能:仅实例化全加器模块。
假定实现全加器功能的模块名为FA,以下是模块FA的代码:
仅实例化全加器模块的PopCount实现代码:
8. 设计一个 4 位二进制计数器,当输入信号 clk 的上升沿到来时,输出信号 q 的值加 1,如果 q 的值达到 10(即计数到最大值),则输出信号 overflow 为 1。
 
答:首先,我们定义输入和输出信号:
输入信号 clk:时钟信号,用于触发计数器操作。
输入信号 reset:复位信号,当复位信号为高电平时,计数器将被清零。
输出信号 q:4 位二进制输出信号,表示计数器的当前值。
输出信号 overflow:溢出信号,当计数器值达到最大值时为高电平。
然后,我们使用 Verilog HDL 语言实现这个计数器:
在上面的代码中,我们使用了一个 always 块来定义一个同步时序逻辑。在 always 块中,我们使用 @posedge 关键字来指定时钟信号的上升沿。当复位信号 reset 为高电平时,我们将计数器清零,并将溢出信号设置为 0 。否则,在时钟信号的上升沿时,我们将检查计数器的当前值。如果计数器的值为 11(即二进制数 1011),则将溢出信号设置为 1 。否则,我们将计数器的值加 1 。

第六章 运算方法和运算部件

计算题两道

9. 假设浮点数格式为:阶码是 4 位移码,偏置常数为 8 ,尾数是 6 位补码(采用双符号位)。用浮点运算规则分别计算在不采用任何附加位和采用 2 位附加位(保护位、舍入位)这两种情况下以下表达式的值。(假定对阶和右规时采用就近舍入到偶数方式)
(1)
(2)
(3)
(4)
解:假定采用隐藏位
根据题目所给的各种位数,可以得到在机器中表示为:
所以,
尾数 M 中小数点前面有三位,前两位为数符,表示双符号,第三位加了括号,是隐藏位“1”
没有附加位时的计算:
(1)
,根据对阶规则可知需要对 进行对阶,结果为:
尾数相加:,两位符号相等,数值部分最高位为 ,不需要进行规格化,所以最后结果为: , 即
(2)
,根据对阶规则可知需要对 进行对阶,结果为:
尾数相加:,两位符号相等,数值部分最高为 ,不需要进行规格化,所以最后结果为: , 即
(3)
,根据对阶规则可知不需要进行对阶
尾数相加: ,两位符号不等,说明尾数溢出,需要进行右规,最后结果为: , 即
(4)
,根据对阶规则可知不需要进行对阶
尾数相加: ,两位符号相等,数值部分最高位为 ,需要进行左规,所以最后结果为: , 即
如果有两位附加位精度上会有提高,在对阶的时候要注意小数点后就不是 6 位,而是 8 位,最后两位为保护位和舍入位。但是由于本题 6 位尾数已经足够,再加 2 位附加位,其结果是一样的
10. 采用 IEEE754 单精度浮点数格式计算下列表达式的值。
(1) (2)
解:
用 IEEE754 标准单精度格式表示为:
尾数 中小数点前面有两位,第一位为数符,第二位加了括号,是隐藏位“1”
以下是计算机中进行浮点数加减运算的过程(假定保留2位附加位:保护位和舍入位)
(1)
① 对阶:
,根据对阶规则可知需要对 进行对阶,结果 的尾数 右移 位,符号不变,数值高位补 ,隐藏位右移到小数点后面,最后移出的 位保留
② 尾数相加:(注意小数点在隐藏位后)
根据原码加/减运算规则,得: ,上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加红)
③ 规格化:根据所得尾数的形式,数值部分最高位为 ,所以不需要进行规格化
④ 舍入:把结果的尾数 中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果都一样,都是把最后两个 去掉,得
⑤ 溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。因此,阶码
最后结果为 ,即:
(2)
① 对阶:
,根据对阶规则可知需要对 进行对阶,结果为: 的尾数 右移 位,符号不变,数值高位补 ,隐藏位右移到小数点后面,最后移出的 位保留
② 尾数相减:(注意小数点在隐藏位后)
根据原码加/减运算规则,得: ,上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加红)
③ 规格化:根据所得尾数的形式,数值部分最高位为 ,所以不需要进行规格化
④ 舍入:把结果的尾数Mb中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果都一样,都是把最后两个 去掉,得
⑤ 溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。因此,阶码
最后结果为 ,即:

第七章 指令系统

分析题两道

11. 某计算机字长 16 位,每次存储器访问宽度 16 位,CPU中有 8 个 16 位通用寄存器。现为该机设计指令系统,要求指令长度字长整数倍至多支持 64 种不同操作,每个操作数都支持 4 种寻址方式:立即(I)、寄存器直接(R)、寄存器间接(S)和变址(X),存储器地址位数立即数均为 16 位任何一个通用寄存器都可作变址寄存器,支持以下 7 种二地址指令格式(R、I、S、X代表上述四种寻址方式):RR型、RI型、RS型、RX型、XI型、SI型、SS型。请设计该指令系统的 7 种指令格式,给出每种格式的指令长度、各字段所占位数含义,并说明每种格式指令需要几次存储器访问?
答:指令格式可以有很多种,只要满足以下的要求即可。
至多 64 种操作,故操作码字段:6 位;8 个通用寄存器,故寄存器编号:3 位;直接地址和立即数:16 位;变址寄存器编号:3 位;指令字总位数是 16 的倍数。
二地址指令格式,RI、XI和SI三种指令格式中,添加 3 个 0 ,是为了补足位数,以使指令长度为 16 的倍数。其中,RR、RS和SS型指令都是 16 位,RI、RX和SI型指令都是 32 位,XI型指令是 48 位。
指令格式示例1:
指令类型用专门的“类型”字段(最左 4 位)说明,因而无须对两个操作数的寻址方式进行说明。7 种类型只要 3 位编码即可,最后一位总是 0 。
notion image
指令格式示例2:
用专门的“寻址方式”字段分别说明两个操作数的寻址方式,其定义如下:
寻址方式字段(2位)
00:立即;
01:寄直;
10:寄间;
11:变址。
notion image
12. 存储器存取宽度为 16 位,每次从存储器取出 16 位。因此,读取 16 、32 和 48 位指令分别需要 1、2 和 3 次存储器访问。各类指令的功能和访存次数分别说明如下(表示存储器地址 x 的内容, 表示寄存器 x 中的内容)。
指令
功能
指令长度
取指访存
执行访存
总访存次数
RR
16位
1
0
1
RI
32位
2
0
2
RS
16位
1
1
2
RX
32位
2
1
3
XI
48位
3
2
5
SI
32位
2
2
4
SS
16位
1
3
4

第八章 中央处理器

分析题一道

13. 参照如图 1 所示的多周期数据通路,给出 Load 指令( ,存储单元地址为寄存器内容加立即数)执行过程的各阶段完成的功能,并给出各阶段所需的有效控制信号及其取值。
notion image
 
答:Load指令( ,存储单元地址为寄存器内容加立即数)执行过程包括 4 个阶段,各自完成的功能、所需的有效控制信号及其取值如下:
(1)取指令并计算下条指令地址(公共操作),记为 IFecth,根据 PC 读指令并保存到 IR ,PC+4
有效控制信号及其取值如下:
① R[IR] ← M[PC]:PCout = 1、MARout = 0、MemWr = 0、IRWr = 1
② PC ← PC+4:Add1MUX = 0、Add2MUX = 1、PCWr = 1
③ 其他写使能信号(如 MARWr、CCWr、MDRWr、ALUoutWr、RegWr )全部为 0
(2)译码并取数(公共操作),记为 Rfecth / ID,IR 的 OP 及 CC 送控制器译码,并根据 Rs 和 Rt 读取寄存器中数据,加法器空闲,投机计算主存地址有效控制信号及其取值为:ExtOP = 1 (符扩)、Add1MUX = 1、Add2MUX = 0、MARWr = 1、其他写使能信号全部为 0
Load 指令:地址已投机计算,还需两个时钟周期,记为 lwExec 、lwFinish 状态,根据投机计算好的地址( MAR 中)到主存中取数,送 MDR ,再将 MDR 内容写入 Rt
(3)lwExec 阶段有效控制信号及其取值:MARout = 1、PCout = 0、MemWr = 0、MDRMUX = 0、MDRWr = 1、其他写使能信号全为 0
(4)lwFinish 阶段有效控制信号及其取值:RegMUX = 0、RegWr = 1、其他写使能信号全为 0

第九章 存储器层次结构

分析题六道

14. 用 64K × 1 位的 DRAM 芯片构成 256K × 8 位的存储器。要求:
(1) 计算所需芯片数,并画出该存储器的逻辑框图。
(2) 若采用异步刷新方式,每单元刷新间隔不超过 2ms,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少读写周期?
参考答案:
(1)256KB / (64K×1位) = (256K×8位) / (64K×1位) = 4×8 = 32片。存储器逻辑框图见下页(图中片选信号CS为高电平有效
(2)因为每个单元的刷新间隔为 2ms ,所以,采用异步刷新时,在 2ms 内每行必须被刷新一次,且仅被刷新一次。因为 64K × 1 位的 DRAM 芯片存储阵列为 64K = 256×256 ,所以一共有 256 行。因此,存储器控制器必须每隔 2ms / 256 = 7.8µs 产生一次刷新信号。采用集中刷新方式时,整个存储器刷新一遍需要 256 个存储(读写)周期,在这个过程中,存储器不能进行读写操作,存在“死时间”。
notion image
 
15. 某计算机主存最大寻址空间为 4GB,按字节编址,假定用 64M × 8 位的具有 8 个位平面的 DRAM 芯片组成容量为 512MB 、传输宽度为 64位 的内存条(主存模块)。回答问题:
(1)每个内存条需要多少个 DRAM 芯片?
(2)构建容量为 2GB 的主存时,需要几个内存条?
(3)主存地址共有多少位?其中哪几位用作 DRAM 芯片内地址?哪几位为 DRAM 芯片内的行地址?哪几位为 DRAM 芯片内的列地址?哪几位用于选择芯片?
答:(1)因为 DRAM 芯片容量为 ,所以,每个内存条需要 个芯片。
(2)构建容量为 的主存时,需要 个内存条。
(3)DRAM 芯片容量为 位 , ,所以芯片内地址为 ~ ,其中, ~ 为 DRAM 芯片内的行地址, ~ 为 DRAM 芯片内的列地址
因为主存容量为 ,需要 个内存条,每个内存条容量 ,所以数据线为 位,故主存容量 ,所以地址线为 。其中低 位( ~ )分为两部分,直接跟芯片的行、列地址相接;剩余 根( ~ )经过一个 译码器,形成 个片选信号,用于选择不同的内存条。
16. 某计算机主存最大寻址空间为 64KB ,按字节编址,假定用 1K × 8位 的具有 8 个位平面的 DRAM 芯片组成容量为 16KB 的内存条,其传输宽度为 8 位。回答下列问题:
(1)每个内存条需要多少 DRAM 芯片?
(2)构建容量为 48KB 的主存时,需要几个内存条?
(3)主存地址共多少位?哪几位用于选择内存条?哪几位连到内存条的地址引脚上?
(4)每次读写的信息是否可能分布在多个 DRAM 芯片中?若按连续方式对 DRAM 芯片编址,则哪几位用作 DRAM 芯片内地址?哪几位为 DRAM 芯片内的行地址?哪几位为 DRAM 芯片内的列地址?
答:(1)每个内存条需要 16KB / ( 1K × 8位 ) = 16 × 1 = 16 片 DRAM 芯片。
(2)构建 48KB 内存需要 48KB / 16KB = 3 个内存条。
(3)因为是按字节编址,所以主存地址共 位,假定主存地址为 ,则最高 2 位 用于选择内存条,第 14 位 连到内存条的地址引脚上。
(4)因为每次在总线上传输 8 位数据,所以每次读写的信息一定位于同一个芯片中,而不是分布在多个芯片中。
每个内存条中有 16 个芯片,芯片内按连续方式编址,共有 1024 个存储单元,因此,14 条内存条地址引脚中的高 4 位 表示芯片号,用于选择芯片,第 10 位 表示芯片内地址,其中, 为行地址, 为列地址。
DRAM 芯片内各个存储单元的排列如下图所示,图中每个方框表示一个存储单元,由 8 个位平面中相同位置的 8 位组成,方框上面显示的是对应的存储单元地址,方框内显示的是存储阵列中所在位的行号和列号。从图中显示的地址来看,在同一行中的存储单元是连续的,即在 DRAM 的行缓冲器中数据的地址是连续的。
notion image
 
17. 假设某计算机的主存地址空间大小为 64MB,采用字节编址方式。其 cache 数据区容量为 4KB,采用 4 路组相联映射方式,块大小为 64B。请问:
主存地址字段如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。
参考答案:
cache 的划分为:,所以,cache 组号(组索引)占 4 位。
主存空间划分为:,因此,主存地址划分为三个字段:高 16 位为标志字段、中间 4 位为组号、最低 6 位为块内地址。
18. 假定某机主存空间大小 1GB,按字节编址。cache 的数据区(即不包括标记、有效位等存储区)有 64KB ,块大小为 128字节 ,采用直接映射和全写(write-through)方式。请问:
(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。
(2)cache 的总容量为多少位?
参考答案:
(1)主存空间大小为 1GB ,按字节编址,说明主存地址为 30位 。cache 共有 64KB / 128B = 512 行 ,因此,行索引(行号)为 9 位;块大小 128 字节,说明块内地址为 7 位。因此,30 位主存地址中,高 14 位为标志(Tag);中间 9 位为行索引;低 7 位为块内地址。
(2)因为采用直接映射,所以 cache 中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,而标志位和有效位总是必须有的,所以,cache 总容量为 512 × (128 × 8 + 14 + 1 ) = 519.5K 位。
19. 假定某中断系统有四个中断源,其响应优先级为 1 > 2 > 3 > 4 。假定在用户程序时同时发生 1 、 3 、和 4 级中断请求,执行 3 级中断服务程序时发生 2 级中断请求。分别写出处理优先级为 1 > 2 > 3 > 4 和 1 > 4 > 3 > 2 时各中断的屏蔽字及 CPU 完成中断处理的过程。
中断优先权的动态分配
(1) 中断处理优先级为 1 > 2 > 3 > 4 时:
notion image
notion image
 
 
(2) 中断处理优先级为 1 > 4 > 3 > 2 时:
notion image
notion image
 
上一篇
软件项目管理笔记
下一篇
期末备考 所有文章

评论
Loading...