《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.3 在VIPLE中创建计算机系统部件

简介: 本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第3章 ,第3.3节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 在VIPLE中创建计算机系统部件

在本节中,你将创建代表与门的活动,以及其他用来建立ALU的组件。

3.3.1 创建逻辑与门

创建一个新的项目并保存为“ALU_Simulation”。
1)插入一个活动并命名为“GateAND”,如下图所示。请基于逻辑真值表(机械模型)来实现这个逻辑门。
image

2)定义输入,双击Action按钮然后点击下图所示的橙色按钮。
image

3)对于一个与门,你需要定义两个输入值,如下图所示。
image

确保两个输入变量都是Integer类型。
4)将一个如果/否则活动添加到框图里。创建4个不同的条件来匹配每个可能的结果。添加两个数据活动,每个数据活动代表一个可能的结果,1或者0。然后拖放两个或并活动,并如下图所示连接每个活动。
image

为了测试你自己设计的活动的正确性,在“diagram”窗口中,添加所需的“data”输入并在输出上添加一个“Print Line”,用以查看活动的输出。运行程序并查看你的活动在所有基于真值表的输入组合情况下是否正确。
在你的测试中尝试不同的数据输入:0 0、01、10和1 1,如下图所示。
image

完成实验后请通知你的实验指导老师验收你的程序,然后换一个操作员进行下一个实验任务。
创建逻辑或门和创建逻辑非门及异或门的步骤与创建与门类似,故不再赘述。

3.3.2 创建一个1位全加器

在本节中,你会创建一个代表1位全加器的活动。下图给出了逻辑电路。请根据给出的框图并使用之前作业中创建的活动和服务来实现这个活动。
重要提示:绘图时应从左至右进行,一旦在设计中给出了连接的双方,就可以绘制双方的链接。这样可以保证活动和服务间的关系正确。如果从右到左绘图,将会出现许多错误。从理论上讲,一旦连接好所有的组件,上述错误将会消失。但在实践中,开发环境可能无法同时消除所有的错误。
image

为了测试自行设计活动的正确性,在“diagram”窗口中,添加所需的“数据”活动作为输入,并为每个活动添加一个“简单对话框”服务作为输出。运行程序并测试该活动正确与否。
image

将OneBitAdder活动导出成一个服务并测试这个服务。

3.3.3 创建一个2-1多路选择器

一个2-1多路选择器的数学模型(真值表的简写形式)在下图中给出。2-1多路选择器是4-1多路选择器的简单版本。你可以用之前实验创建的活动和服务。
image

3.3.4 创建一个4-1多路选择器

在接下来的两个练习中,将添加一个4-1多路选择器活动或者服务到项目中。4-1多路选择器的数学模型如下图所示。
image

你的4-1多路选择器应如下图所示。
image

为了测试设计的活动的正确性,在“diagram”窗口中给每个设计的活动添加所需数量的“数据”活动作为输入,并且添加一个“简单对话框”服务作为输出。运行该程序,看看设计的活动是否正确。

3.3.5 创建一个1位ALU

在构建这个ALU之前,它所需的所有的服务已经创建了,它们完成四个不同的功能:与、或、加和减。
image

给这个逻辑设计VIPLE程序,一个示范代码如下图所示。但是实验者仍然需要根据活动和服务的名字编写代码,还需要定义部件之间数据连接的值。下图中的数值可能有不同的名字。
image

1位ALU设计完成以后,添加输入数据和输出服务来测试这个ALU,如下图所示。测试方法和1位全加器类似,但是需要给op0、op1和op2添加3个额外的输入数据。
image

3.3.6 自动测试

在前面的实验中,你需要手动修改输入数据以采用不同的输入值来进行测试。在本练习中,你会构建基于Counter活动的一个自动测试样本生成机制。十进制输出被映射成了二进制数,用来作为全加器的测试样本。
首先我们需要将Counter的十进制数转成二进制数。下图给出了我们需要做的转换。
image

下图中的VIPLE代码大致给出了一个自动测试机制的基本实现。你仍需要实现Counter活动,它有两个输入参数:最小值和最大值。
image

下图给出了Counter活动。
image

下图给出了带真值表数值输出的OneBitAdder活动。
image

由于并行计算的特性,测试样本的生成是乱序的。保持并行线程之间的同步是有难度的。我们现在不解决这个问题,在分布式软件开发中,我们会花大量时间来解决线程监控和同步的问题。

相关文章
|
人工智能 算法 IDE
智能化测试新趋势:手淘 AI+IoT 机器人泛终端测试实战
“为模拟真实用户”,Robot-XT 极测机器人提供了为用户体验度量评测的能力,不仅可以最大程度地模拟用户真实操作,还实现了多设备跨终端的功能自动化和用户体验度量。同时,Robot-XT 极测机器人通过 IoT+AI 的智能化技术搭建一套支持多机操作并具备高稳定性的的 UEE 自动化解决方案,实现了覆盖从线上 App 到线下智能门店场景的端到端自动化测试,赋能行业,为软件绿色联盟的加盟 App 提供用户体验评测服务。
641 0
智能化测试新趋势:手淘 AI+IoT 机器人泛终端测试实战
|
机器学习/深度学习 JavaScript 物联网
温湿度计设备通过阿里云IoT物联网套件上报数据到钉钉群机器人实践
温湿度计通过MQTT协议连接到IoT套件,规则引擎针对数据上报Topic配置转发到函数计算(FunctionComputer)中编写好的函数pushData2DingTalk,Nodejs脚本函数处理数据,post到钉钉群机器人
4451 0
|
人工智能 机器人
《中国人工智能学会通讯》——7.33 丰心工程 为情感机器人安上“心脑”
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第7章,第7.33节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
1020 0
|
存储 数据可视化 机器人
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.2 计算机系统
本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第3章 ,第3.2节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2256 0
|
2月前
|
传感器 人工智能 监控
智能耕耘机器人
智能耕耘机器人
42 3
|
6月前
|
人工智能 自然语言处理 机器人
智能电话机器人核心技术:自然语言处理
什么是自然语言处理? 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法.自然语言处理是一门融语言学、计算机科学、数学于一体的科学.因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别. 自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统.因而它是计算机科学的一部分. 自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域.
|
1月前
|
传感器 人工智能 自然语言处理
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
|
2月前
|
传感器 机器学习/深度学习 算法
植保机器人具备智能感知与决策能力
植保机器人具备智能感知与决策能力
19 2

热门文章

最新文章