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

班级 计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、对本实验内容、过程和方法的改进建议(可选项)。

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

HNU-电路与电子学-实验3相关推荐

  1. 计算机仿真电路实验感想,电路计算机仿真 实验报告.doc

    电路计算机仿真分析 实验报告 实验一 直流电路工作点分析和直流扫描分析 实验目的 1.学习使用Pspice软件,熟悉它的工作流程,即绘制电路图.元件类别的选择及其参数的赋值.分析类型的建立及其参数的设 ...

  2. 三相桥式全控整流电路matlab仿真实验,三相全控桥式整流电路仿真实验

    三相全控桥式整流电路仿真实验 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验九 电力电子电路的仿真实验(三相全控桥式整流电路仿 ...

  3. FPGA 电路开发入门实验

    FPGA 电路开发入门实验 第0章:基础知识 如图1,本实验使用实验板为altera DE0,板子型号为Cyclone Ⅲ, EP3C16F484C6,编译软件为QuartusⅡ9.0. 图 1 Qu ...

  4. 电子电路测试软件,清华大学出版社-图书详情-《电子电路软件仿真实验教程》...

    前言 为帮助学生在学习"电路与信号系统""电子技术基础(模拟.数字)""电工学"课程的同时,加强仿真操作技能的培养,特编写本书以帮助学生进一 ...

  5. MIT 6.002电路与电子学笔记

    MIT 6.002电路与电子学笔记 集总电路抽象介绍 麦克斯韦方程 使用质点离散化,进行集总元件抽象,以简单的代数代替微分方程 基本电路分析方法(线性) KVL(基尔霍夫电压定律) .KCL(基尔霍夫 ...

  6. matlab仿真报告,电路Matlab仿真实验精选报告.docx

    电路 Matlab 仿真实验报告 武汉大学电气工程学院仿真实验报告 武汉大学电气工程学院 MATLAB 电路仿真实验报告 姓名: 班级: 学号: 2015 级大二上仿真报告 武汉大学电气工程学院仿真实 ...

  7. 微机实验五 —— 8255A接口电路应用设计实验(基于Proteus工具)

    微机实验五 -- 8255A接口电路应用设计实验(基于Proteus工具) 复习 74LS273 74LS32 7411 8255A 一.实验题目 二.实验代码 复习 in 是读端口-(I/O) mo ...

  8. 【模电实验】基本放大电路的研究实验

    实验四    基本放大电路的研究实验(2小时) -.实验目的 (1)充分认识分压式偏置放大电路的电压放大作用,了解其静态工作点的调节.测量,认识截止失真和饱和失真现象,了解消除截止失真和饱和失真的方法 ...

  9. 计算机电路与电子学试卷,华北科技学院电路与电子学试卷.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp工学 华北科技学院电路与电子学试卷.doc6页 本文档一共被下 ...

  10. 用模拟计算机求电路方程的解实验报告,电路计算机辅助分析实验报告..docx

    电路计算机辅助分析实验报告. 大连理工大学实验报告电路计算机辅助分析与设计课 程 名 称: 电路计算机辅助分析与设计学部(学院): 电子信息与电气工程学部专 业: 电气工程及其自动化班 级: 电气13 ...

最新文章

  1. 数据挖掘导论读书笔记1
  2. 自己动手写了个 Web 框架,我膨胀了
  3. 下载历史版本的 xCode
  4. MySql Socket 完成数据库的增查Demo
  5. spring cloud eureka注册原理-注册失败填坑
  6. Flutter文本组件Text
  7. 【华为云技术分享】三大前端技术(React,Vue,Angular)探密(下)
  8. 案例-三角形(CSS3)
  9. 企业如何选择SSL证书?
  10. MFC中Ribbon界面关于按钮禁用
  11. PSPICE仿真数据转MATLAB
  12. zabbix Trapper 监控项配置(39)
  13. bitmap.compress(图片压缩的两种方式)(1,质量压缩;2,采样率压缩)
  14. 云慧计算机有限公司触屏,工业平板电脑触摸屏使用注意事项
  15. python 中的 __repr__() 方法
  16. C-class Week1.Day2
  17. 利用FFmpeg玩转Android视频录制与压缩
  18. (转)《杂 文》 之 教你制作一份属于自己的简历
  19. 【Python 爬虫】(二)使用 Requests 爬取豆瓣短评
  20. 计算机休眠好吗,计算机休眠有什么具体的好处吗?

热门文章

  1. 从网页输入url到页面展示,浏览器一顿操作猛如虎
  2. Vue框架-01-了解并使用Vue
  3. 存储区域网络将占下一代数据存储市场的 7%
  4. python爬取百度搜索_Python-Scrapy抓取百度数据并分析
  5. __name__属性的作用是什么
  6. Hosts文件无法屏蔽网站
  7. 思科关闭日志_禁止console口的日志
  8. 雷曼兔(vijos1474)
  9. solid works学习记录8(椭圆 椭圆弧)
  10. 贷前审查和贷中审查_大技术受到审查