HNU-电路与电子学-实验3

实验 模型机组合部件的实现()(实验报告格式案例)

班级   计XXXXX       姓名    wolf      学号    2021080XXXXX   

一、实验目的

1.了解简易模型机的内部结构和工作原理。

2.分析模型机的功能,设计 8 重 3-1 多路复用器。

3.分析模型机的功能,设计移位逻辑。

4.分析模型机的工作原理,设计模型机控制信号产生逻辑。

二、实验内容

1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器;

2.用 VERILOG 语言设计模型机的移位模块;

3.用 VERILOG 语言设计模型机的控制信号产生逻辑。

[A]补=2*4-A

三、实验过程

1、8重3-1多路复用器

  1. 创建工程(选择的芯片为family=Cyclone II;name=EP2C5T144C8

步骤:【File】->【new project wizard】->【next】->【next】->【properties】

->【next】->选择芯片类型 family=Cyclone II,name= EP2C5T144C8->【next】

->【finish】完成工程创建。

  1. 编写源代码

【file】->【Verilog HDL】->写好源代码,保存文件

C) 编译与调试(包含编译调试过程中的错误、警告信息以及资源消耗)

D) RTL视图

视图分析:

分析:

由视图可得,视图左边为输入,右边为输出。其中连接有一系列的元器件。比如比较器:当输入相等时输出 1,不相等时输出 0;还有大部分的 2-1 选择器构成,当控制信号为 0 时,输出第一位,控制信号为 1 时,输出第二位。图中输入信号为 madd和 a,b,c,输出信号为 y。各个输出端口之间通过导线相连。

结论:

一个功能的实现需要经过多重门的处理后才能实现,一个元件的内部原理结构图十分复杂。

E) 功能仿真波形

结果分析及结论:

分析:

功能仿真是指不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证。由仿真波形可得,对于输入状态的变化,输出结果实时变化,没有延迟,其结果与电路设计的真值表的结果相对应。

madd=00 时,控制输出 y 等于 a,正确

madd=01 时,控制输出 y 等于 b,正确

Madd=10 时,控制输出 y 等于 c,正确

Madd=11 时,控制输出高阻态,正确

结论:

功能仿真操作简单,能体现和验证实验的功能,但忽略延迟的影响会使结果与实际结果有一定误差。

F) 时序仿真波形

结果分析及结论:

分析:

时序仿真是指在布线后进行,是最接近真实器件运行的仿真,它与特定的器件有关,又包含了器件和布线的延时信息。由波形可得,当输入状态发生改变时,输出结果并未同时改变,而是有一定延迟,同时由于输入状态的改变,导致电路出现“冒险”,导致输出结果并未与预期结果相同。

结论:

时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。时序仿真不仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。

G) 时序

操作方法是:编译后,在compilation report中选择【timing analysis】-【summary】和【tpd】

 结果分析及结论:

分析:

由图可得,Timing Analyzer Summmary 总结所有经典定时分析的结果,并报告每个定时特性的最坏情况定时。比如从 b[7]到 y[7]的最坏定时情况的 tpd 为 12.852ns。下面的tpd 报告表则给出了源节点和目标节点之间的 tpd 延迟间,比如第二行中 a[7]到 y[7] 的tpd 为 13.820ns。

结论:

实际连接图中个元器件连接之间是存在时间延迟的,而且不同的元器件之间的时间延迟也不相同。

2、移位逻辑

A)创建工程(选择的芯片为family=FLEX10K;name=EPF10K20TI144-4)

B) 编写源代码

  1. 编译与调试(包含编译调试过程中的错误、警告信息以及资源消耗)

警告信息:

无警告信息

资源消耗:

D) RTL视图

结果分析:

分析:

由视图可得,视图左边为输入,右边为输出。其中连接有一系列的元器件。比如比较器:当输入相等时输出 1,不相等时输出 0;还有大部分的 2-1 选择器构成,当控制信号为0 时,输出第一位,控制信号为 1 时,输出第二位。图中输入信号为 fbus,frbus,flbus 和 a,输出信号为 w。各个输出端口之间通过导线相连。

结论:

一个功能的实现需要经过多重门的处理后才能实现,一个元件的内部原理结构图十分复杂。

E) 功能仿真波形

结果分析及结论:

分析:

功能仿真是指不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证。由仿真波形可得,对于输入状态的变化,输出结果实时变化,没有延迟,其结果与电路设计的真值表的结果相对应。

当fbus=1,frbus=0,flbus=0,不执行移位操作,输出等于输入,cf 不改变

当fbus=0,frbus=1,flbus=0,执行右移,输出等于输入右移移位,有进位的话cf为1

当fbus=0,frbus=0,flbus=1,执行左移,输出等于输入左移一位,cf 不改变

当控制信号全为 0 时,输出为高阻态,正确

结论:

功能仿真操作简单,能体现和验证实验的功能,但忽略延迟的影响会使结果与实际结果有一定误差。

F) 时序仿真波形

结果分析及结论:

分析:

时序仿真是指在布线后进行,是最接近真实器件运行的仿真,它与特定的器件有关, 又包含了器件和布线的延时信息。由波形可得,当输入状态发生改变时,输出结果并未同时 改变,而是有一定延迟,同时由于输入状态的改变,导致电路出现“冒险”,导致输出结果并未与预期结果相同。

结论:

时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。时序仿真不仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。

G) 时序分析

结果分析及结论:

分析:

由图可得,Timing Analyzer Summmary 总结所有经典定时分析的结果,并报告每个定时特性的最坏情况定时。比如从 fbus 到 w[0] 的最坏定时情况的 tpd 为 20.700ns。下面的 tpd 报告表则给出了源节点和目标节点之间的 tpd 延迟时间,比如第二行中 fbus 到 w[7] 的tpd 为 20.700ns。

结论:

实际连接图中个元器件连接之间是存在时间延迟的,而且不同的元器件之间的时间延迟也不相同。

3、控制信号产生逻辑

A)创建工程(选择的芯片为family=FLEX10K;name=EPF10K20TI144-4)

B) 编写源代码

  1. 编译与调试(包含编译调试过程中的错误、警告信息以及资源消耗)

D) RTL视图

结果分析:

由视图可得,视图左边为输入,右边为输出。其中连接有一系列的元器件。比如比较器:当输入相等时输出 1,不相等时输出 0;还有大部分的与或门。图中输入信号为 sm 等20 个,输出信号包括 reg_ra 等 19 种情况。各个输出端口之间通过导线相连。

结论:

一个功能的实现需要经过多重门的处理后才能实现,一个元件的内部原理结构图十分复杂。

E) 功能仿真波形

结果分析及结论:

分析:

功能仿真是指不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验

证。由仿真波形可得,对于输入状态的变化,输出结果实时变化,没有延迟,其结果与电路

设计的真值表的结果相对应。

(1)当 mova 指令执行时,shi_fbus 和 sm_en 输出 1,其他输出为 0,madd 输出 00,

alu_s 输出为 1100,reg_ra 输出 01,reg_wa 输出 00,正确

(2)当 movb 指令执行时,ram_xl 和 shi_fbus 和 reg_we 和 sm_en 输出为 1,其他输出

为 0,madd 输出为 10,alu_s 输出为 1100,reg_ra 输出 01,reg_wa 输出 11,正确

(3)当 movc 指令执行时,ram_dl 和 sm_en 输出为 1,其他输出为 0,madd 输出 01,

alu_s 输出 1100,reg_ra 输出 11,reg_wa 输出 01,正确

(4)当 add 指令执行时,shi_fbus,alu_en,cf_en,zf_en,sm_en 输出为 1,其他输出

为 0,alu_s 为 1001,reg_ra 输出 01,reg_wa 输出 00,正确

(5)当 sub 指令执行时,shi_fbus 和 alu_m,cf_en,zf_en 和 sm_en 输出为 1,其他输

出为 0,alu_s 输出 0110,reg_ra 输出 01,reg_wa 输出 00,正确

(6)当 and1 指令执行时,shi_fbus 和 alu_m 和 sm_en 输出 1,其他输出 0,alu_s 输出

1011,reg_ra 输出 01,reg_wa 输出 00,正确

(7)not1 指令执行时,shi_fbus 和 alu_m 和 sm_en 输出 1,其他输出 0,alu_s 输出 0101,

reg_ra 输出 00,reg_wa 输出 00,正确

(8)rsl 指令执行时,shi_flbus 和 alu_m 和 cf_en 和 sm_en 输出 0,其他输出 0,alu_s

输出 1010,reg_ra 和 reg_wa 输出 00,正确

(9)rsr 指令执行时,shi_frbus 和 alu_m 和 cf_en 和 sm_en 输出 1,其他输出 0,alu_s

输出 10110,reg_ra 输出 11,reg_wa 输出 00,正确

(10)jmp 指令执行时,ram_dl,pc_ld,reg_we 和 sm_en 输出 1,其他输出 0,alu_s

输出 0001,reg_ra 和 reg_wa 输出 00,正确

(11)jz 指令为 1 和 jc 指令为 1 时,若 z 和 c 为 1 时,ram_dl 和 pc_ld 和 reg_we 和 sm_en输出为 1,其他输出为 0,正确

若 z 和 c 为 0 时,pc_inc 和 reg_we 和 sm_en 输出 1,其他输出 0,正确

(12)in1 指令执行时,sm_en 和 in_en 输出 1,其他输出 0,正确

(13)out1 指令执行时,sm_en 和 out_en 输出 1,其他输出 0,正确

(14)nop 指令执行时,sm_en 输出 1,其他输出 0,正确

(15)halt 指令执行时,输出全为 0,正确

结论:

功能仿真操作简单,能体现和验证实验的功能,但忽略延迟的影响会使结果与实际结

果有一定误差。0,reg_ra 输出 11,reg_wa 输出 00,正确

F) 时序仿真波形

分析:

时序仿真是指在布线后进行,是最接近真实器件运行的仿真,它与特定的器件有关,

又包含了器件和布线的延时信息。由波形可得,当输入状态发生改变时,输出结果并未同时

改变,而是有一定延迟,同时由于输入状态的改变,导致电路出现“冒险”,导致输出结果

并未与预期结果相同。

结论:

时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其

输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。时序仿真不

仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一

种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。

G) 时序分析

结果分析及结论:

分析:

由图可得,Timing Analyzer Summmary 总结所有经典定时分析的结果,并报告每个

定时特性的最坏情况定时。比如从 sub 到 reg_we 的最坏定时情况的 tpd 为 26.600ns。下面 的 tpd 报告表则给出了源节点和目标节点之间的 tpd 延迟时间,比如第二行中 and1 到

reg_we 的 tpd 为 26.300ns。

结论:

实际连接图中个元器件连接之间是存在时间延迟的,而且不同的元器件之间的时间延

迟也不相同。

四、思考题

1.移位逻辑不工作时,输出应该为何值?为什么?

答:输出应成高阻,防止数据通路发生冲突,产生主线竞争。

2.移位逻辑的输出Cf应该如何处理?

答:

当fbus=1,frbus=0,flbus=0,不执行移位操作,输出等于输入,cf 不改变;当fbus=0,frbus=1,flbus=0,执行右移,输出等于输入右移移位,有进位的话cf为1;

当fbus=0,frbus=0,flbus=1,执行左移,输出等于输入左移一位,cf 不改变

当控制信号全为 0 时,输出为高阻态;

3.如何产生正确的控制信号以及具体的编程实现?

答:应当逐个分析每个控制信号在不同的指令下对应的状态,利用逻辑函数进行状态的总和。

五、实验总结、必得体会及建议

1、从需要掌握的理论、遇到的困难、解决的办法以及经验教训等方面进行总结。

1需要掌握的理论基本了解了简易模型机的内部结构和工作原理。同时熟悉了选择器,移位逻辑,控制器的工作原理。学会 使用 Verilog 语言编写电路。

(2)遇到的困难:对于 QuartusII 的使用还不够熟练,特别是进行波形仿真的功能仿真和时许仿真分别怎么操作的方面有一定不足。

(3)解决方法:通过上网查询相关资料和询问同学后得以解决问题,并通过分析报告发现电路中的问题。有不理解的还请教了老师,不仅收获了方法还掌握的技巧。

(4)经验教训:对于电子电路的学习一定要肯动手,光是看是学不会的,一定要落到实处,多自己使用软件进行仿真,才能加深对于这门课程的理解。

2、对本实验内容、过程和方法的改进建议(可选项)。

控制器各个控制信号的输出功能表十分重要,可以先引导同学们列出这个对应表。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】LVM与磁盘配额

文章目录1.LVM1.1 LVM概述1.2 LVM机制1.3 LVM管理命令1.4 LVM应用实例2. 磁盘配额2.1 磁盘配额概述2.2 磁盘配额管理2.3 启用磁盘配额支持2.4 磁盘配额应用实例1.LVM 1.1 LVM概述 Logical Volume Manager,逻辑卷管理 ● 能够在保持现有数据不变的情况下动态调整磁盘…

43掌握自动化运维工具 Puppet 的基本用法,包括模块编写、资源管理

Puppet是一种自动化配置管理工具,可以自动化地部署、配置和管理大规模服务器环境。本教程将介绍Puppet的基本用法,包括模块编写和资源管理。 模块编写 在Puppet中,模块是一组相关的类、文件和资源的集合。模块可以用于部署和配置应用程序、服…

图形编辑器:排列移动功能的实现

大家好,我是前端西瓜哥。这次来实现一下图形编辑器排列(arrange)功能的实现。 先看效果。 有四种移动方式: 置顶(Front):将指定的图形移动到顶部;置底(Back&#xff09…

嵌入式学深度学习:1、Pytorch框架搭建

嵌入式学深度学习:1、Pytorch框架搭建1、介绍2、Pytorch开发环境搭建2.1、查看GPU是否支持CUDA2.2、安装Miniconda2.3、使用Conda安装pytorch2.4、安装常用库3、简单使用验证1、介绍 深度学习是机器学习的一种,如下图: 目前深度学习应用场景…

MySQL-四大类日志

目录 🍁MySQL日志分为4大类 🍁错误日志 🍃修改系统配置 🍁二进制日志 🍃查看二进制日志 🍃删除二进制日志 🍃暂时停止二进制日志的功能 🍁事务日志(或称redo日志) 🍁慢查…

chatgpt3中文辅助写作-gpt2中文文本生成

GPT-3是一种深度学习模型,具有潜在的巨大计算成本和训练麻烦。根据OpenAI公司的官方消息,训练GPT-3是一项昂贵的和耗时的过程,在OpenAI公司,训练GPT-3的成本已经超过了10亿美元。考虑到GPT-3的架构、规模和训练时间,这…

高分子PEG磷酸盐mPEG-phosphoric acid,Phosphate PEG,甲氧基聚乙二醇磷酸,可用于修饰金属氧化物表面

规格单位:g |货期:按照具体的库存进行提供 | 端基取代率:95% 中英文名:mPEG-phosphoric acid|Phosphate PEG|甲氧基聚乙二醇磷酸​ 一、Phosphate PEG化学结构式: 二、产品详情: 外观:灰白…

[oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选

中文编码GB2312 回忆上次内容 上次回顾了 日韩各有 编码格式 日本 有假名 五十音一字节 可以勉强放下 有日本汉字 字符数量超过20000 韩国 有谚文 数量超过500一个字节 放不下 有朝鲜汉字 字符数量超过20000 作为 汉字源头的中国 究竟应该 如何对汉字 进行编码 呢&#x…

操作系统-AOSOA

一、个人感受 1.1 权衡 在我写这份报告的时候,已经是 6 月 30 号了,经历了一个学期的“折磨”,我面对终点,已经没啥感觉了,就想着赶快呼噜完了就完事了。其实做这个项目最大的体会就是“人力有穷,一切皆权…

视频剪辑:教你如何调整视频画面的大小。

大家应该都会调整图片的大小吧,那你们会调整视频画面的大小吗?我想,应该会有人不还不知道要调整的吧,今天就让小编来教大家一个方法怎样去调整视频画面的大小尺寸。 首先,我们要有以下材料: 一台电脑 【…

列的类型定义——整形类型

文章目录 前言一、整数类型的附带属性 类型名称后面的小括号unsignedauto_increment总结前言 1)采用26字母和0-9的自然数加上下互相 ‘_’ 组成,命名简洁明确,多个单词用下划线 ‘_’ 隔开 2)全部小写命名,尽量避免…

【SpringBoot】自定义Starter

🚩本文已收录至专栏:Spring家族学习之旅 👍希望您能有所收获 一.概述 在使用SpringBoot进行开发的时候,我们发现使用很多技术都是直接导入对应的starter,然后就实现了springboot整合对应技术,再加上一些简…

【论文导读】Inferring deterministic causal relations

前段时间看Scholkopf教授的《Towards Causal Representation Learning》,看到这篇挺有意思来读读。 这一篇只在Arxiv上挂着,重点主要是研究发掘两变量之间的因果关系(无法应用独立性检验等方法),引入了信息论中的正则…

Elasticsearch:配置选项

Elasticsearch 带有大量的设置和配置,甚至可能让专家工程师感到困惑。 尽管它使用约定优于配置范例并且大部分时间使用默认值,但在将应用程序投入生产之前自定义配置是必不可少的。 在这里,我们将介绍属于不同类别的一些属性,并讨…

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(2.数据探索性分析)

前言 继续上一片数据预处理进行续写,利用预处理之后的数据进行数据分析并且解决问题一相关的问题。问题一主要目的是让研究各种因素对于需求量的影响,然后找到确定影响需求量的主要因素并且进行数据分析和主要特征抽取。 对于问题提出的八个小问&#…

解决云服务器ssh经常断开的问题

问题描述:无论是腾讯云服务器还是阿里云服务器等,在使用MobaXterm或者Xshell连接云服务器时,如果十分钟左右无任何操作,ssh就会自动断开,非常烦人,下面提供几种方法来解决该问题。 MobaXterm的报错如下&am…

Cookie和Session的工作流程及区别(附代码案例)

目录 一、 HTTP协议 1.1 为什么HTTP协议是无状态的? 1.2 在HTTP协议中流式传输和分块传输编码的区别 二、Cookie和Session 2.1 Cookie 2.2 Session 2.3 Cookie和Session的区别 三、servlet中与Cookie和Session相关的API 3.1 HttpServletRequest 类中的相关方…

mysql与redis区别

一、.redis和mysql的区别总结 (1)类型上 从类型上来说,mysql是关系型数据库,redis是缓存数据库 (2)作用上 mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢 redis用于存储使…

【新2023Q2押题JAVA】华为OD机试 - 挑选字符串

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:挑选字符串 题目 给定a-z,…

二.microchip samE54-- ATSAME54P20A 开发板使用总结

板子图片 2.1 板子硬件资源 2.1.1 外部插件1 2.2.2 外部插件2 2.2.3 外部插件3 2.2.IDE KIT连接(USB DEBUG) 板子自带,不是JLINK 出现这个说明板载 调试软件识别成功 2.3 编译与下载 D:\HarmonyProjects\usart\usart_echo_blocking\f…