计算机组成原理 数据通路组成实验

news2024/11/17 20:33:22

一、实验目的

(1)将双端口通用寄存器堆和双端口存储器模块联机;

(2)进一步熟悉计算机的数据通路;

(3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;

(4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。

二、实验任务

(1)将实验电路与控制台的有关信号进行线路连接。

(2)用8位数据开关向RF中的四个通用寄存器分别置入以下数据: R0=0FH, R1=0F0H, R2 =55H,R3= 0AAH。给R0置入0FH的步骤是:先用8位数码开关SW0-SW7 将0FH置入ER,并且选择WR1=0、WR0=0、WRD=1,再将ER的数据置入RF。给其他通用寄存器置入数据的步骤与此类似。

(3)分别将R0至R3中的数据同时读入到DR2寄存器中和DBUS上,观察其数据是否是存入R0至R3中的数据,并记录数据。其中DBUS. 上的数据可直接用指示灯显示,DR2中的数据可通过运算器ALU, 用直通方式将其送往DBUS。

(4)用8位数码开关SW0-SW7 向AR1送入一个地址0FH,然后将R0中的0FH写入双端口RAM。用同样的方法,依次将R1至R3中的数据写入RAM中的0F0H、55H、 0AAH 单元。

(5)分别将RAM中0AAH单元的数据写入R0,55H 单元的数据写入R1,0F0H单元写入R2,0FH单元写入R3。然后将R3、R2、R1、 R0中的数据读出到DBUS上,通过指示灯验证读出的数据是否正确,并记录数据。

(6)进行RF并行输入输出试验。

a.选择RS端口(B端口)对应R0, RD端口(A端口)对应R1, WR端口对应R2, 并使WRD= 1,观察并行输入输出的结果。选择RS端口对应R2, 验证刚才的写入是否生效。记

录数据。

b.保持RS端口(B端口)和WR端口同时对应R2,WRD=1,而ER中置入新的数据,观察并行输入输出的结果,RS 端口输出的是旧的还是新的数据?

(7)在数据传送过程中,发现了什么故障?如何克服的?

三、实验工具

模拟程序

四、实验步骤及实验结果

1、根据数据通路仿真面板要求进行连线

  

2、向RF中的四个通用寄存器分别置入数据

令K1(RS_BUS#)=1,K2(ALU_BUS)=0,K3(CEL#)=1,K4(LRW)=1,K5(LDAR1)=0,K6 (LDDR2) = 0, K8 (RS0) = 0,K9 (RS1) = 0, K10 (RD0) =0, K11 (RD1) =0,K12 (WR0) = 0,K13 (WR1) = 0,K14 (WRD) = 0。令K0 (SW_ BUS#) =0,K7 (LDER) = 1。置SW7-SW0 为0FH,按一次QD按钮,将0FH写入暂存寄存器ER。

令K7(LDER)=0,K14(WRD)=1,K12(WR0)=0,K13(WR1)=0,按一次QD按钮,将0FH (在ER中)写入R0寄存器。

令K0 (SW_ BUS#) = 0, K7 (LDER) = 1。置SW7-SW0 为0F0H,按一次QD按钮,将0FOH写入暂存寄存器ER。

令K7 (LDER) = 0,K14 (WRD) = 1, K12 (WR0) = 1,K13 (WR1)=0,按一次QD按钮,将0FOH (在ER中)写入R1寄存器。

令K0 (SW_ BUS#) = 0, K7 (LDER) = 1。置SW7-SW0为55H,按一次QD按钮,将55H写入暂存寄存器ER。

令K7(LDER)=0,K14(WRD)=1,K12(WR0)=0,K13(WR1)=1,按一次QD按钮,将55H (在ER中)写入R2寄存器。

令K0(SW_ BUS#) = 0,K7 (LDER) = 1。置SW7-SW0 为0AAH,按一次QD按钮,将0AAH写入暂存寄存器ER。

令K7(LDER)=0,K14(WRD)=1,K12(WR0)=1,K13(WR1)=1,按一次QD按钮,将0AAH (在ER中)写入R3寄存器。

3、 分别将R0至R3中的数据同时读入到DR2寄存器中和DBUS上,观察其数据是否是存入R0至R3中的数据。

a.令K0(SW_BUS#)=1,K2(ALU_BUS)=0,K3(CEL#)=1,K4(LRW)=1,K5(LDAR1)=0,K6 (LDDR2) =0,K7 (LDER) =0,K10 (RD0) =0, K11 (RD1) =0,K12 (WR0) =0,K13 (WR1)=0,K14(WRD)=0。将开关IR/DBUS至于DBUS位置。令K1 (RS_ BUS#) = 0,使寄存器堆中的数据送DBUS总线。令K8 (RS0)=0, K9 (RS1) =0, R0中的数据通过B端口送DBUS,数据指示灯应显示0FH。

令K8 (RS0)= 1,K9 (RS1) = 0,R1中的数据通过B端口送DBUS, 数据指示灯应显示0F0H。

令K8 (RS0) = 0,K9 (RS1) =1, R2中的数据通过B端口送DBUS,数据指示灯应显示55H。

令K8 (RS0)=1, K9 (RS1)=1,R3中的数据通过B端口送DBUS,数据指示灯应显示OAAH。

b.令K0(SW_BUS#)=1,K1(RS_BUS#)=1,K3(CEL#)=1,K4(LRW)=1,K5(LDAR1)=0,K7(LDER)=0,K8(RS0)=0,K9(RS1)=0,K12(WR0)=0,K13(WR1)=0,K14(WRD)= 0。将开关IR/DBUS至于DBUS位置。令K2 (ALU_ BUS) =1,使运算器ALU的运算结果送DBUS总线。

由于S2接GND,S1接GND,S0接VCC,ALU做直通运算,因此DBUS数据指示灯显示的是DR2寄存器的值。令K10(RD0)=0,K11(RD1)=0,K6(LDDR2)=1,按一次QD按钮,R0中的数据通过A端口送入DR2,DBUS 数据指示灯应显示0FH。

令K10 (RD0) = 1, K11 (RD1) = 0,K6 (LDDR2) = 1,按一次QD按钮,R1 中的数据通过A端口送入DR2,DBUS 数据指示灯应显示0F0H。

令K6 (LDDR2) =1,K10 (RD0) = 0,K11 (RD1) = 1,按一次QD按钮,R2中的数据通过A端口送入DR2,DBUS数据指示灯应显示55H。

令K10 (RD0) = 1, K11 (RD1) = 1, K6 (LDDR2) = 1,按一次QD按钮,R3中的数据通过A端口送入DR2,DBUS数据指示灯应显示0AAH。

4、将R0、R1、R2、R3中的数据依次送入存储器0FH、 0F0H、 55H、 0AAH单元。

令K2 (ALU_BUS) = 0, K5 (LDAR1) = 0, K6 (LDDR2) = 0,K7 (LDER) = 0,K10(RD0)=0,K11(RD1)=0,K12(WR0)=0,K13(WR1)=0,K14(WRD)=0。置AR1/AR2开关到AR1位置。令K1 (RS_ BUS#) = 1, K0 (SW_ BUS#) = 0, K5 (LDAR1) = 1, K3(CEL#) = 1,置SW7-SW0为0FH,按一次QD按钮,将AR1置为0FH,地址指示灯应显示0FH。

令K0 (SW_ BUS#) = 1,K1 (RS_BUS#) = 0,禁止数据开关SW7-SW0送DBUS,允许寄存器堆送数据总线DBUS。令K5(LDAR1)=0,K8(RS0)=0,K9(RS1)=0,K3(CEL#)=0,K4(LRW)=0,按一次QD按钮,将R0中的数据写入存储器0FH单元。

置AR1/AR2开关到AR1位置。令K1 (RS_BUS#) = 1,K0 (SW_ BUS#) = 0, K5 (LDAR1) = 1, K3(CEL#) = 1,置SW7-SW0为0F0H,按一次QD按钮,将AR1置为0F0H,地址指示灯应显示0F0H。

令K0 (SW_ BUS#)= 1, K1 (RS_ BUS#) = 0,禁止数据开关SW7-SW0 送DBUS,允许寄存器堆送数据总线DBUS。令K5(LDAR1)=0,K8(RS0)=1,K9(RS1)=0,K3(CEL#)=0,K4(LRW)=0,按一次QD按钮,将R1中的数据写入存储器0F0H单元。

置AR1/AR2开关到AR1位置。令K1 (RS_BUS#) = 1, K0 (SW_BUS#) = 0, K5 (LDAR1) = 1,K3(CEL#)= 1,置SW7-SW0为55H,按一次QD按钮,将AR1置为55H,地址指示灯应显示55H。

令K0 (SW_ BUS#) = 1,K1 (RS_BUS#) = 0,禁止数据开关SW7-SW0送DBUS,允许寄存器堆送数据总线DBUS。令K5 (LDAR1) = 0, K8 (RS0) = 0,K9 (RS1)= 1,K3 (CEL#)=0,K4 (LRW)=0,按一次QD按钮,将R2中的数据写入存储器55H单元。

置AR1/AR2开关到AR1位置。令K1 (RS_BUS#) = 1, K0 (SW_ BUS#) = 0, K5 (LDAR1)= 1,K3(CEL#)=1,置SW7—SW0为0AAH,按一次QD按钮,将AR1置为OAAH,地址指示灯应显示0AAH。

令K0 (SW_ BUS#)= 1, K1 (RS_ BUS#) = 0,禁止数据开关SW7-SW0送DBUS, 允许寄存器堆送数据总线DBUS。令K5(LDAR1)=0,K8(RS0)=1,K9(RS1)=1,K3(CEL#)=0,K4(LRW)=0,按一次QD按钮,将R3中的数据写入存储器0AAH单元。

5.将RAM中0AAH、55H、 0F0H、 0FH 单元的数据依次写入R0、R1、 R2、 R3。 然后将R3、R2、 R1、R0中的数据读出到DBUS上,通过指示灯验证读出的数据是否正确。

a.令K1(RS_BUS#)=1,K2(ALU_BUS)=0,K6(LDDR2)=0,K8(RS0)=0,K9(RS1)=0,K10 (RD0) = 0, K11 (RD1) = 0。令K0 (SW_BUS#) =0, K5 (LDAR1) =1, K3 (CEL#) =1, K14 (WRD) =0,置SW7-SW0为0AAH,按一次QD按钮,将AR1置为0AAH。

令K14 (WRD)=0, K0 (SW_ BUS#)=1, K3 (CEL#)=0, K4 (LRW)= 1, K5 (LDAR1)= 0, K7 (LDER) = 1,按一次QD按钮,将存储器0AAH单元的内容读出,写入到暂存寄存器ER。

令K0 (SW_BUS#)=1, K5 (LDAR1) =0, K7 (LDER) =0, K3 (CEL#)= 1, K14 (WRD)= 1,K12 (WR0) = 0, K13 (WR1) = 0,按一次QD按钮,将ER中的数据写入R0。

令K0 (SW_BUS#) = 0, K5 (LDAR1) = 1,K3 (CEL#) = 1, K14 (WRD) = 0,置SW7-SW0为55H,按一次QD按钮,将AR1置为55H。

令K14 (WRD) =0, K0 (SW_BUS#)=1, K3 (CEL#)=0, K4 (LRW)= 1,K5 (LDAR1) =0, K7 (LDER)= 1,按一次QD按钮,将存储器55H单元的内容读出,写入到暂存寄存器ER。

令K0 (SW_BUS#) =1,K5 (LDAR1) =0,K7 (LDER) =0, K3 (CEL#) = 1, K14 (WRD)= 1, K12 (WR0) = 1, K13 (WR1) = 0,按一次QD按钮,将ER中的数据写入R1。

令K0 (SW_BUS#) =0, K5 (LDAR1) =1, K3 (CEL#) =1, K14 (WRD) =0,置SW7-SW0为0F0H,按一次QD按钮,将AR1置为0F0H。

令K14 (WRD)=0, K0 (SW­­­­­­­­_BUS#)=1, K3 (CEL#)=0, K4 (LRW)= 1, K5 (LDAR1)= 0, K7 (LDER) = 1,按一次QD按钮,将存储器0F0H单元的内容读出,写入到暂存寄存器ER。

令K0(SW_BUS#)=1,K5 (LDAR1)=0,K7 (LDER)=0,K3 (CEL#)=1, K14 (WRD)= 1,K12 (WR0) = 0, K13 (WR1) = 1,按一次QD按钮,将ER中的数据写入R2。

令K0 (SW_BUS#) = 0, K5 (LDAR1) = 1,K3 (CEL#) = 1, K14 (WRD) = 0,置SW7-SW0为0FH,按一次QD按钮,将AR1置为0FH。

令K14 (WRD) =0, K0 (SW_ BUS#)=1, K3 (CEL#)=0, K4 (LRW)= 1, K5 (LDAR1) =0,K7 (LDER)= 1,按一次QD按钮,将存储器OFH单元的内容读出,写入到暂存寄存器ER。

令K0 (SW_BUS#) =1,K5 (LDAR1) =0,K7 (LDER) =0,K3 (CEL#) = 1, K14 (WRD)= 1, K12 (WR0) = 1, K13 (WR1) = 1,按一次QD按钮,将ER中的数据写入R3。

b.令K0(SW_ BUS#)= 1,K2 (ALU_ BUS) = 0, K3 (CEL#) = 1, K4 (LRW) = 1,K5 (LDAR1) = 0,K6 (LDDR2) =0,K7 (LDER) =0,K10 (RD0) =0,K11 (RD1) =0,K12 (WR0) =0,K13 (WR1)= 0, K14 (WRD)=0。将开关IR/DBUS 至于DBUS位置。

令K1 (RS_ BUS#) = 0,K8 (RS0) = 0,K9 (RS1)= 0,数据指示灯显示R0的值,应为0AAH。

令K8 (RS0) = 1, K9 (RS1) =0,数据指示灯显示R1的值,应为55H。

令K8(RS0)=0,K9(RS1)=1,数据指示灯显示R2的值,应为0F0H。

令K8(RS0)=1,K9 (RS1) = 1,数据指示灯显示R3的值,应为0FH。

6.进行RF并行输入输出试验

a.选择RS端口(B端口)对应RO,RD端口(A端口)对应R1,WR端口对应R2,并使WRD= 1,观察并行输,入输出的结果。选择RS端口对应R2,验证刚才的写入是否生效。

令K3 (CEL#) = 1, K4 (LRW) = 1,K5 (LDAR1) = 0。将开关IR/DBUS至于DBUS位置。令K0 (SW_ BUS#) =0, K1 (RS_BUS#) =1, K2 (ALU_ BUS) =0,K6 (LDDR2) =0,K7 (LDER) = 1, K14 (WRD) =0。将SW7-SW0置为35H,按一次QD按钮,将35H写入暂存寄存器ER。

令K0 (SW_BUS#) = 1, K1 (RS_BUS#) = 0,K2 (ALU_ BUS) = 0, K14 (WRD) = 1,K6 (LDDR2)=1。再令K8(RS0)=0,K9(RS1)=0,RS端口选择R0;K10(RD0)=1,K11(RD1)=0,RD端口选择R1; K12 (WR0) = 0, K13 (WR1) = 1, WR 端口选择R2。按一次QD按钮,这时ER中的数据(35H)写入了R2,同时R1中的数据(55H) 写入了DR2,R0中的数据送数据总线DBUS ( 其实,R0中的数据并不受QD按钮的影响)。数据指示灯应显示R0中的数据0AAH。

如果令K1 (RS_BUS#)=1,K2(ALU_BUS)= 1,数据指示灯应显示DR2的内容(即R1的内容),应为55H。

再令K1 (RS_ BUS#)= 0,K2 (ALU_ BUS) = 0,使数据指示灯仍显示RS端口的内容,同时令K8 (RSO) = 0, K9 (RS1) =1,RS端口选择R2,数据指示灯应显示新的R2的值,即35H。

b.保持RS端口(B端口)和WR端口同时对应R2,WRD= 1,而ER中置入新的数据,观察并行输入输出的结果,RS端口输出的是旧的还是新的数据?

令K2 (ALU_ BUS) =0,K3 (CEL#) = 1,K4 (LRW) = 1, K5 (LDAR1) =0, K6 (LDDR2) =0,K10(RD0) = 0,K11 (RD1) = 0。将开关IR/DBUS至于DBUS位置。令K0(SW_BUS#) = 0, K1 (RS_BUS#) = 1,K7 (LDER) = 1,K14 (WRD)=0。将SW7-SW0置为53H,按一次QD 按钮,将53H写入暂存寄存器ER。

令K0 (SW_ BUS#)=1, K1 (RS_ BUS#) =0,K8 (RS0) =0,K9 (RS1) = 1, RS端口选择R2,数据指示灯显示R2的值,应为35H。

令K14 (WRD)= 1, K12 (WR0)= 0, K13 (WR1)= 1, WR 端口选择R2,允许写操作。当按下QD按钮时,新的值53H从ER写入R2,数据指示灯立即变为53H。

7.在数据传送过程中,遇到的问题

数据传输的过程中发现,双端口RAM中F0的地址存放的数据不是F0的数据,导致在传过去ER时,数据不是F0。

解决:结合上次实验的步骤内容,重新给F0的地址赋予F0的数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于CSS3制作专属可自由旋转的立方体

一、代码区域 1.1 css3代码区域 <style>* {padding: 0;margin: 0;list-style: none;}/* 1) 定义动画 */keyframes loop {0% {transform: rotateX(348deg) rotateY(67deg) rotateZ(95deg);}50% {transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);}100% {transform:…

【C++】1597. 买文具

问题&#xff1a;1597. 买文具 类型&#xff1a;基本运算、整数运算 题目描述&#xff1a; 花花去文具店买了 1 支笔和 1块橡皮&#xff0c;已知笔 x 元/ 支&#xff0c;橡皮 y元 / 块&#xff0c;花花付给了老板 n 元&#xff0c;请问老板应该找给花花多少钱&#xff1f; 输…

SQLiteC/C++接口详细介绍sqlite3_stmt类(十三)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十二&#xff09; 下一篇&#xff1a; 待续 51、sqlite3_stmt_scanstatus_reset sqlite3_stmt_scanstatus_reset 函数用于重置指定语句对象最近一次执行的 WHER…

基于python+vue的OA公文发文管理系统flask-django-php-nodejs

系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对OA公文发文管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的…

大模型分布式推理ray

一、目录 1 框架 2. 入门 3. 安装教程 4. 相关文档、案例阅读 二、实现 1 框架&#xff1a;Ray&#xff1a;将一个模型拆分到多个显卡中&#xff0c;实现分布式预测、训练等功能。 2. 入门 &#xff1a; 案例&#xff1a;通过ray 实现分布式部署&#xff0c;分布式推理服务。…

【ReactJS】使用GoJS实现自己的图表App

目录 1:用于绘制自定义图表的JavaScript库:用于绘制UML(或BPMN或ERD …)图表的JavaScript库:2:为什么选择GoJS?3:让我们使用现有的React应用程序:步骤1:步骤2:步骤3:步骤4:推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战1:…

Kubernetes自动化配置部署

在新建工程中&#xff0c;使用k8s的devops服务&#xff0c;自动化部署项目 1、在搭建好k8s的集群中&#xff0c;确认已开启devops服务&#xff1b; 2、新建Maven项目之后&#xff0c;创建dockerfile、deploy和Jenkins文件 例如&#xff1a; Dockerfile FROM bairong.k8s.m…

数据仓库的数据处理架构Lambda和Kappa

1.数据仓库 数据仓库(Data Warehouse),简写DW。顾名思义,数据仓库是一个很大的数据存储集合,为企业分析性报告和决策支持而创建,是对多元业务数据的筛选与整合,具备一定的BI能力,主要用于企业的数据分析、数据挖掘、数据报表等方向,指导业务流程改进、监视时间、成本、…

斯坦福大学研究团队革新电机技术,助力机器人性能飞跃提升

文 | BFT机器人 在科技日新月异的今天&#xff0c;我们期望机器能够胜任的任务愈发复杂且多变。无论是为失去肢体的人提供动力的假肢&#xff0c;还是那些独立在外部世界自由穿梭的机器人&#xff0c;它们都需要在多种场景下展现出卓越的行动能力。 然而传统的标准电动机&…

【Java基础】了解Java安全体系JCA,使用BouncyCastle的ED25519算法生成密钥对、数据签名

文章目录 一.Java安全体系结构二.JCA和JCE三.CSP(加密服务提供程序)与Engine类1.CSP2.Engine类如何使用引擎类 四.查看当前JDK支持的算法服务提供商(Provider)五.BouncyCastle是什么六.如何使用BouncyCastle&#xff1f;七.bouncycastle实现ED25519工具类 一.Java安全体系结构 …

DeepLabv1网路介绍

模型创新点 在论文引言中&#xff0c;作者提出了目前语义分割存在的问题&#xff0c;并且给出了解决办法&#xff1a; 下采样会导致我们图像空间分辨率降低——解决办法 使用膨胀卷积 目前语义分割网络基本都是采用CNN网络作为主干网络&#xff0c;但是CNN网络主要适用于目标检…

获取淘宝商品评论的爬虫技术分享(已封装API,可测试)

item_review-获得淘宝商品评论 公共参数 请求地址: taobao/item_review 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,it…

鸿蒙Harmony应用开发—ArkTS-@Provide装饰器和@Consume装饰器:与后代组件双向同步

Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递&#xff0c;Provide和Consume摆脱参数传递机制的束缚&#xff0c;实现跨层级传递。 其中Provide装饰的变…

基于python+vue文学名著分享系统的设计与实现flask-django-nodejs-php

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的文学名著分享系统。当前的信息管理存在工作效率…

设计模式之单例模式解析

单例模式 1&#xff09;动机 对于软件系统的某些类&#xff0c;无须创建多个实例&#xff0c;如 Windows 系统的任务管理器&#xff0c;重复对象会浪费系统资源。 2&#xff09;概述 1.定义 确保某个类只有一个实例&#xff0c;而且自行实例化&#xff0c;并向整个系统提供…

Android Kotlin(六)协程的并发问题

书接上回&#xff1a;Android Kotlin知识汇总&#xff08;三&#xff09;Kotlin 协程 协程的并发问题 在一个协程中&#xff0c;循环创建10个子协程且单独运行各自Default线程中&#xff0c;并让每个子协程对变量 i 进行1000次自增操作。示例如下&#xff1a; fun main() …

Jupyter服务器端为R语言安装readr包

1.登录debian服务器 方式1.Windows10中可利用putty登录linux服务器 方式2.自从搭建了Jupyter服务器后&#xff0c;还可以从juypyter的终端来登录linux服务器 2.进入R语言命令行 3.安装readr包 >install.packages(‘readr’) …

使用CSS3画出一个叮当猫HTML源码

我们经常使用PS或者Flash制作动画&#xff0c;本文则介绍了如何用CSS3画出个叮当猫&#xff0c;实现过程很有趣&#xff0c;感兴趣的朋友可以参考一下 首先&#xff0c;先把HTML结构搭建好&#xff1a; <div class"wrapper"> <!--叮当猫整体--> <di…

DP动态规划入门(数字三角形、破损的楼梯、安全序列)

一、动态规划&#xff08;DP&#xff09;简介 动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;是运筹学的一个分支&#xff0c;它是一种通过将复杂问题分解成多个重叠的子问题&#xff0c;并通过子问题的解来构建整个问题的解的算法。在动态规划中&am…