Hnu电子电路实验2

目录

【说明】

与本次实验相关的代码及报告等文件见以下链接:

一、实验目的

二、实验内容

三:实验原理

1.指令译码器

2.AU 算术单元

四:实验过程

1.指令译码器

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

B)编写源代码

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

D)RTL 视图

E)功能仿真波形

F)时序仿真波形

G) 时序分析

2.算术单元AU

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

B)编写源代码

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

D)RTL视图

E)功能仿真波形

F)时序仿真波形

G)时序分析

五:思考题

1. 指令译码器必须要 12 个输出吗?可否将一些输出合并,哪些可以合并,为什么?

2. AU 中的 S[3…0]控制信号是来自哪里或者说与什么信息相同?

3、为何 AU 算术单元不执行加、减运算和 MOVA、MOVB 和 OUT 指令的数据传送功能时,输出为高阻态?

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


【说明】

电子电路每次实验的提交都是会进行查重的,不过后面的三次实验都比电子秤要好通过的多,这个不必太担心,这里给出的代码提交都是100分,可以参考一下。

与本次实验相关的代码及报告等文件见以下链接:

通过网盘分享的文件:电子电路实验二.zip

链接:https://pan.baidu.com/s/1EnuK8tZ-Exi1Hm7dvA-OHg

提取码:9785

一、实验目的

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

2.熟悉译码器、运算器的工作原理。

3.分析模型机的功能,设计指令译码器。

4.分析模型机的功能,设计 AU 算术单元。

二、实验内容

1.用 VERILOG 语言实现指令译码器;

2.用 VERILOG 语言实现 AU 算术单元。

三:实验原理

1.指令译码器

译码是将一个 n 位的输入码转换成一个 m 位的输出码,并且,以保证每一个有效的输入码都产生唯一的输出码。译码通过译码器实现,译码器是一个多输入多输出的组合电路,当其输入端加载一个 n 位的二进制码时,输出端产生一个 m 位的二进制码。

指令译码器根据表 1 指令系统表中的指令编码,对指令的操作码进行解析,判定是哪条指令,并且使该指令对应的输出为 1,否则输出为 0。

指令译码器的端口如上图所示,其中 en 为使能输入信号,ir[3..0]是指令的 4位操作码,输出是对应的 12 条指令。指令译码器的功能如下表所示:

2.AU 算术单元

运算器 ALU 是中央处理器(CPU)的重要组成部分,专门执行算术运算和

逻辑运算的组合逻辑电路。本模型机只执行算术运算,故此部件简称为 AU 算术

单元。模型机算术运算类指令:

ADD Rd, Rs

SUB Rd, Rs

ADD 指令与 SUB 指令的执行过程相似,具体过程为:

控制信号 SR1、SR0 选择源寄存器 Rs 的数据从 S 口输出,控制信号 DR1、DR0 选择目的寄存器 Rd 的数据从 D 口输出;在 AC3~AC0 和 AU_EN 的控制下,在 AU 中进行加法(减法)运算后将相加的和(相减的差)送入总线 BUS;S0为 1,BUS 上的数据传送至通用寄存器的输入端;在 WE 和 DR1、DR0 的控制下,时钟下降沿将输入端的数据写入目的寄存器 Rd。其中 SUB 指令影响状态位G,如果 Rd>Rs,则 G=1,否则 G=0。

指令功能如下:

AU 算术单元除了要完成 ADD、SUB 运算外,还需在 MOVA、MOVB 和 OUT三条指令执行时,提供将数据传送至总线的数据通路。AU 算术单元 的端口及功能如下所示:

四:实验过程

1.指令译码器

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

B)编写源代码

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

调试过程无错误

图示为警告信息

图示为资源消耗

D)RTL 视图

视图分析及结论:视图分析:

通过观察 RTL 视图可知:左侧为输入,右侧为输入,电路中有很多的元器件进行连接,如:比较器(输入相等输出 1,输入不相等输入 0)等,以及含有多路复用器,输入信号包含指令码 ir以及使能信号 en,输出信号为十二条相应操作指令,各个输出端口以及输入端口由导线相连接。

结论:

一个功能的实现需要多重门的处理,Verilog 中简单的代码对应的实际元件内部的结构原理十分复杂。

E)功能仿真波形

结果分析及结论:结果分析:

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

当 en 为 0 时,不管 ir 为何值,12 个输出全为 0当 en 为 1 时:

当 ir=0100 时,mova 输出为 1,其余输出为 0;当 ir=0101 时,movb 输出为 1,其余输出为 0;当 ir=0110 时,movc 输出为 1,其余输出为 0;当 ir=0111 时,movd 输出为 1,其余输出为 0;当 ir=1000 时,add 输出为 1,其余输出为 0;当 ir=1001 时,sub 输出为 1,其余输出为 0;当 ir=1010 时,jmp 输出为 1,其余输出为 0;当 ir=1011 时,jg 输出为 1,其余输出为 0; 当 ir=1100 时,in1 输出为 1,其余输出为 0;当 ir=1101 时,out1 输出为 1,其余输出为 0;当 ir=1110 时,movi 输出为 1,其余输出为 0;当 ir=1111 时,halt 输出为 1,其余输出为 0;当 ir 输出错误为其他值时,12 个输出全为 0;

结论:

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

F)时序仿真波形

结果分析及结论:

结果分析:

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

结论:

1、时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。

2、时序仿真不 仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。

G) 时序分析

 

结果分析及结论:

结果分析:

1、由图可得,Timing Analyzer Summmary 总结所有经典定时分析的结果,并报告每个定时特性的最坏情况定时。比如从 ir[2]到 movb 的最坏定时情况的 tpd 为 15.757ns。下面的 tpd 报告表则给出了源节点和目标节点之间的 tpd 延迟时间,比如第七行中 ir[3]到 sub 的 tpd 为 14.916ns。

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

2.算术单元AU

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

B)编写源代码

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

调试过程无错误

图示为警告信息

图示为资源消耗

D)RTL视图

结果分析及结论:

分析:通过观察 RTL 视图可知:左侧为输入,右侧为输入,电路中有很多的元器件进行连接,如:比较器(输入相等输出 1,输入不相等输入 0)等,以及含有多路复用器,输入信号包含使能信号 au_en、控制信号 ac 以及八位二进制数 a、b,输出信号为 ab 之间进行计算得到的结果 t, 个输出端口以及输入端口由导线相连接。

结论:一个功能的实现需要多重门的处理,Verilog 中简单的代码对应的实际元件内部的结构原理十分复杂。

E)功能仿真波形

结果分析:

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

au_en 为使能信号,当 au_en 为 0 时,无论 ab 输入多少均输出高阻态;当 au_en 为 1 时,使能有效:

当 ac=1000 时,执行加法操作:

输出 t=a+b,a=00000001,b=00000101 时,t=a+b=00000100,gf=0;

当 ac=1001 时,执行减法操作:

输出t=b-a,a=00000001,b=00000101 时,t=b-a=00000100,b>a 输出gf=1;    

a=11111011,b=00000001 时,t=b-a=00000110,b>a 输出 gf=1; a=00000001,b=11111011 时,t=b-a=11111010,b<a 输出 gf=0; a=11111011,b=11111111 时,t=b-a=00000100,b>a 输出 gf=1;

结论:

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

F)时序仿真波形

结果分析及结论:

分析:

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

结论:

1、时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。

2、时序仿真不仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。

G)时序分析

结果分析及结论:

结果分析:

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

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

五:思考题

1. 指令译码器必须要 12 个输出吗?可否将一些输出合并,哪些可以合并,为什么?

答:不一定,mova 和 add 可以合并,因为这两条输出指令在模型机中对应的控制信号完全相同,即进行相同的操作,以及 add、sub、in1、out1 可以进行合并,因为这四条输出指令对应的功能及控制信号基本一致,且输出为使能信号,可以用一个合并使能信号来代替这四个信号的使能信号。

2. AU 中的 S[3…0]控制信号是来自哪里或者说与什么信息相同?

答:AU 中的 S[3…0]控制信号来自于指令码 ir。

3、为何 AU 算术单元不执行加、减运算和 MOVA、MOVB 和 OUT 指令的数据传送功能时,输出为高阻态?

答: 因为 AU 算数单元的输出端与其他输出单元共用一根总线,当 AU 在不执行相应的运算和数据传送功能时,输出高阻态从而与总线断开,避免对其他输出端产生影响。

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

对于本实验的进行,需要基本了解模型机的内部结构和工作原理,同时需要熟悉译码器和 ALU 的工作原理,以及需要熟练使用 Verilog 语言进行电路程序的编写。但对 Quartus II 软件的使用不熟练,不了解功能仿真以及时序仿真的使用方法,通过搜索资料解决了该问题。经验教训:遇到不懂的问题一定要及时想办法解决,不要将问题积累,同时多使用仿真对电路进行检验。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言之图像文件的属性

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 图像文件属性提取系统设计与实现 目录 设计题目设计内容系统分析总体设计详细设计程序实现…

AI 新动态:技术突破与应用拓展

目录 一.大语言模型的持续进化 二.AI 在医疗领域的深度应用 疾病诊断 药物研发 三.AI 与自动驾驶的新进展 四.AI 助力环境保护 应对气候变化 能源管理 后记 在当下科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最具影响力的领域之一。AI 技…

ElasticSearch DSL查询之排序和分页

一、排序功能 1. 默认排序 在 Elasticsearch 中&#xff0c;默认情况下&#xff0c;查询结果是根据 相关度 评分&#xff08;score&#xff09;进行排序的。我们之前已经了解过&#xff0c;相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…

【NLP基础】Word2Vec 中 CBOW 指什么?

【NLP基础】Word2Vec 中 CBOW 指什么&#xff1f; 重要性&#xff1a;★★ CBOW 模型是根据上下文预测目标词的神经网络&#xff08;“目标词”是指中间的单词&#xff0c;它周围的单词是“上下文”&#xff09;。通过训练这个 CBOW 模型&#xff0c;使其能尽可能地进行正确的…

资料03:【TODOS案例】微信小程序开发bilibili

样式 抽象数据类型 页面数据绑定 事件传参

vim文本编辑器

vim命令的使用&#xff1a; [rootxxx ~]# touch aa.txt #首先创建一个文件 [rootxxx ~]# vim aa.txt #vim进入文件aa.txt进行编辑 vim是vi的升级版&#xff0c;具有以下三种基本模式&#xff1a; 输入模式(编辑模式) 点击i进入编辑模式 &#xff08;说明…

(undone) 并行计算学习 (Day2: 什么是 “伪共享” ?)

伪共享是什么&#xff1f; TODO: 这里补点文档&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 缓存一致性、同步的代价&#xff01;&#xff01;&#xff01; 也就是&#xff0c;当不同线程所访问的内存元素恰好在同一个 cache line 上时&#xf…

基于python的博客系统设计与实现

摘要&#xff1a;目前&#xff0c;对于信息的获取是十分的重要&#xff0c;我们要做到的不是裹足不前&#xff0c;而是应该主动获取和共享给所有人。博客系统就能够实现信息获取与分享的功能&#xff0c;博主在发表文章后&#xff0c;互联网上的其他用户便可以看到&#xff0c;…

使用插件SlideVerify实现滑块验证

作者gitee地址&#xff1a;https://gitee.com/monoplasty/vue-monoplasty-slide-verify 使用步骤&#xff1a; 1、安装插件 npm install --save vue-monoplasty-slide-verify 2、在main.js中进行配置 import SlideVerify from vue-monoplasty-slide-verify; Vue.use(SlideV…

【深度学习项目】语义分割-FCN网络(原理、网络架构、基于Pytorch实现FCN网络)

文章目录 介绍深度学习语义分割的关键特点主要架构和技术数据集和评价指标总结 FCN网络FCN 的特点FCN 的工作原理FCN 的变体和发展FCN 的网络结构FCN 的实现&#xff08;基于Pytorch&#xff09;1. 环境配置2. 文件结构3. 预训练权重下载地址4. 数据集&#xff0c;本例程使用的…

2024年博客之星主题创作|从零到一:我的技术成长与创作之路

2024年博客之星主题创作&#xff5c;从零到一&#xff1a;我的技术成长与创作之路 个人简介个人主页个人成就热门专栏 历程回顾初来CSDN&#xff1a;怀揣憧憬&#xff0c;开启创作之旅成长之路&#xff1a;从平凡到榜一的蜕变持续分享&#xff1a;打卡基地与成长复盘四年历程&a…

【整体介绍】

ODO&#xff1a;汽车总行驶里程 Chime: 例如安全带没系的报警声音 多屏交互就是中控屏的信息会同步到主驾驶的仪表盘上 面试问题&#xff1a;蓝牙电话协议HFP 音乐协议A2DP 三方通话测试的逻辑

PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控

一、简介 在现代深度学习的研究和开发中&#xff0c;模型的可视化和监控是不可或缺的一部分。PyTorch&#xff0c;作为一个流行的深度学习框架&#xff0c;通过其丰富的生态系统提供了多种工具来满足这一需求。其中&#xff0c;torch.utils.tensorboard 是一个强大的接口&…

2025寒假备战蓝桥杯01---朴素二分查找的学习

文章目录 1.暴力方法的引入2.暴力解法的思考 与改进3.朴素二分查找的引入4.朴素二分查找的流程5.朴素二分查找的细节6.朴素二分查找的题目 1.暴力方法的引入 对于下面的这个有序的数据元素的组合&#xff0c;我们的暴力解法就是挨个进行遍历操作&#xff0c;一直找到和我们的这…

Qt按钮美化教程

前言 Qt按钮美化主要有三种方式&#xff1a;QSS、属性和自绘 QSS 字体大小 font-size: 18px;文字颜色 color: white;背景颜色 background-color: rgb(10,88,163); 按钮边框 border: 2px solid rgb(114,188,51);文字对齐 text-align: left;左侧内边距 padding-left: 10…

ESP32下FreeRTOS实时操作系统使用

ESP32下FreeRTOS实时操作系统使用 文章目录 ESP32下FreeRTOS实时操作系统使用一、概述二、为什么要使用实时操作系统RTOS&#xff1f;三、FreeRTOS任务3.1 什么是 FreeRTOS 任务&#xff1f;3.2 FreeRTOS 任务的特点3.3 FreeRTOS 任务的生命周期3.4 FreeRTOS 任务的状态3.5 Fre…

包文件分析器 Webpack Bundle Analyzer

webpack-bundle-analyzer 是一个非常有用的工具&#xff0c;用于可视化和分析 Webpack 打包生成的文件。这使得开发者能够更好地理解应用的依赖关系、包的大小&#xff0c;以及优化打包的机会。以下是关于 webpack-bundle-analyzer 的详细介绍&#xff0c;包括它的安装、使用以…

BEVFusion论文阅读

1. 简介 融合激光雷达和相机的信息已经变成了3D目标检测的一个标准&#xff0c;当前的方法依赖于激光雷达传感器的点云作为查询&#xff0c;以利用图像空间的特征。然而&#xff0c;人们发现&#xff0c;这种基本假设使得当前的融合框架无法在发生 LiDAR 故障时做出任何预测&a…

二十七、资源限制-LimitRange

LimitRange生产必备 在调度的时候 requests 比较重要,在运行时 limits 比较重要。 一、产生原因 生产中只有ResourceQuota是不够的 只配置ResourceQuotas的情况下,pod的yaml文件没有配置resources配置,都是0的话,就可以无限配置,永远达不到limit LimitRange做了什么 如…

计算机网络 (54)系统安全:防火墙与入侵检测

前言 计算机网络系统安全是确保网络通信和数据不受未经授权访问、泄露、破坏或篡改的关键。防火墙和入侵检测系统&#xff08;IDS&#xff09;是维护网络系统安全的两大核心组件。 一、防火墙 定义与功能 防火墙是一种用来加强网络之间访问控制的特殊网络互联设备&#xff0c;它…