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

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

3.3.1 创建逻辑与门

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

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

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

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

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

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

3.3.2 创建一个1位全加器

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

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

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

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

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

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

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

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

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

3.3.5 创建一个1位ALU

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

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

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

3.3.6 自动测试

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

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

下图给出了Counter活动。

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

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

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

  1. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.1 VIPLE的工程设计过程...

    2.2.1 VIPLE的工程设计过程 我们来看一下整个工程设计过程: 1)明确问题和需求: 2)研究: 3)草拟解决方案: 4)建模(画流程图): 5)分析: 6)模拟: 7)建立原型: 8)最终选定 ...

  2. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2 VIPLE IoT/机器人开发环境...

    2.2 VIPLE IoT/机器人开发环境 现在已有很多优秀的用于计算和工程领域的可视化编程环境.ASU的VIPLE是一个面向服务的软件开发环境,用于设计IoT(Internet of Things) ...

  3. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.1 计算机科学和工程的课程体系及职业发展...

    1.1 计算机科学和工程的课程体系及职业发展 计算机科学与工程具有巨大的社会影响,这个领域就业前景一直良好,而且是严谨的.理智的.充满活力的.多方面的.毫不夸张地说,我们的生活和现代文明很大程度上依赖 ...

  4. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.2 VIPLE的活动和服务...

    2.2.2 VIPLE的活动和服务 现在我们开始学习VIPLE中的常用工具."基本活动"(Basic Activities)工具箱窗口包含所有组成数据流以及创建数据类型和变量的常用 ...

  5. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一第2章 机器人开发环境和VIPLE入门...

    第2章 机器人开发环境和VIPLE入门 前面我们介绍了计算机领域的发展和职业选择可能,并且已经组建了团队,为我们的开发工作做好了准备.在正式开发之前,我们要先认识工作环境--VIPLE(Visual ...

  6. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.2 计算机系统...

    3.2 计算机系统 3.2.1 计算机系统的类型 计算机系统可以按不同的方法来分类.图3-2给出了一个按用户和用途的分类.下面我们对一些典型的系统做更详细的介绍. 1.工作站和大型机 工作站和大型机主 ...

  7. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.2.2 团队组建...

    1.2.2 团队组建 组建团队时,团队成员应尽快熟悉和相互了解,一方面使团队氛围更加融洽.和谐:另一方面有利于尽快开展工作.以下是一组组建团队时的练习,通过这些练习,团队成员可快速熟悉彼此.增强信任, ...

  8. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3 VIPLE的使用...

    2.3 VIPLE的使用 从VIPLE网站下载VIPLE并启动VIPLE,等待一两分钟让操作系统加载程序.程序加载完成后,你会看到如下界面. 接下来,与你的团队完成下面各小节的工作(可以选择英文或中文 ...

  9. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3.3 使用或并和If活动创建条件循环...

    2.3.3 使用或并和If活动创建条件循环 本小节将用到VIPLE程序中的条件循环.因此,我们先了解下If语句和While循环语句. 1.If语句 If语句是从传统编程规范里继承而来的.If语句也被称 ...

最新文章

  1. 看看人家 SpringBoot 的全局异常处理,多么优雅...
  2. (二)阅读器客户端开发实战_需求阐述
  3. python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片
  4. P1875 佳佳的魔法药水 (最短路,DP)
  5. 代码同步工具_可以多重连接的数据库管理工具
  6. 数据可视化(BI报表的开发)第二天
  7. java中instanceof使用详细介绍
  8. Halcon算子学习:surface_normals_object_model_3d
  9. linux 动态传参执行shell脚本
  10. 004-全局应用程序类Global.asax
  11. 64 SD配置-交货凭证配置-在交货时定义项目类别确定
  12. 实战篇|风控策略效率的测试、调优与评估
  13. 【.NET】XML文件的创建,修改,删除
  14. Java项目:淘淘商城
  15. 【Java 8 新特性】Java Stream 通过min()和max()获取列表最小值和最大值
  16. 信号在PCB走线中的延迟
  17. 城链科技董事长肖金伟:践行数据经济系国家战略,引领数字时代新消费发展!
  18. 前端学习从入门到高级全程记录之8 (PS基本使用综合案例)
  19. github上的html项目怎么运行,GitHub搭建简单的项目“Hello HTML”
  20. 从网页到微信小程序开发:一:小程序与普通网页的区别

热门文章

  1. 金属牙科烧瓶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 【Luat-air551G】5 用lvgl显示GGA数据
  3. redis ps、kill 一次性关闭集群
  4. Flann在python3中的实现
  5. vue webtrc 浏览器录屏
  6. 第十三届蓝桥杯竞赛板CT107D模块驱动
  7. 导师遭遇gigix——怒了
  8. 有关Inner、Outer等相关词汇的理解(二)
  9. 【ES插件】analysis-icu和analysis-kuromoji
  10. (转)JMS简明学习教程