数字电路实验(三)——加法器、运算器

数字电路实验(三)——加法器、运算器1、实验步骤:A全加器:1个vhd文件,用来定义顶层实体1个vwf文件,用来进行波形仿真,将验证的波形输入1、新建,编写源代码。(1).选择保存项和芯片类型:【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\全加器】)-【next】(设…

大家好,又见面了,我是你们的朋友全栈君。

1、实验步骤:
A全加器:

1个vhd文件,用来定义顶层实体
1个vwf文件,用来进行波形仿真,将验证的波形输入
1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\全加器】)-【next】(设置文件名【gg】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(gg.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入jinwei0,jiashu1,jiashu2,jieguo,jinwei1五个节点(jinwei0,jiashu1,jiashu2为输入节点,jieguo,jinwei1为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置jinwei0,jiashu1,jiashu2的输入波形…点击保存按钮保存。(操作为:点击name(如:jinwei0))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name jiashu1,jiashu2(如0,1,5),保存)。然后【start simulation】,出name jieguo,jinwei1的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

B串行加法器:

4个vhd文件,四个实体,一个定义顶层实体,三个定义底层实体
1个vwf文件,用来进行波形仿真,将验证的波形输入
1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\串行加法器】)-【next】(设置文件名【goodluck】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(goodluck.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入clock,input_a,input_b,select_s,output_o,output_c六个节点(clock,input_a,input_b,select_s为输入节点,output_o,output_c为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置clock,input_a,input_b,select_s的输入波形…点击保存按钮保存。(操作为:点击name(如:clock))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name input_a,input_b,select_s(如0,1,5),保存)。然后【start simulation】,出name output_o,output_c的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

C并行加法器-串行进位加法器:

2个vhd文件,用来定义顶层实体,以及底层实体(全加器)
1个vwf文件,用来进行波形仿真,将验证的波形输入
1、 新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\并行加法器】)-【next】(设置文件名【goodluck】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(goodluck.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入jiashu1,jiashu2,jinwei,jieguo四个节点(jiashu1,jiashu2为输入节点,jinwei,jieguo为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置jiashu1,jiashu2的输入波形…点击保存按钮保存。(操作为:点击name(如:jiashu1))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name jiashu2(如0,1,5),保存)。然后【start simulation】,出name jinwei,jieguo的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

D并行加法器-快速进位加法器:

2个vhd文件,用来定义顶层实体,以及底层实体(全加器)
1个vwf文件,用来进行波形仿真,将验证的波形输入
1、 新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\并行加法器】)-【next】(设置文件名【goodluck】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(goodluck.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入input_x,input_y,output_s,output_c四个节点(input_x,input_y为输入节点,output_s,output_c为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置input_x,input_y的输入波形…点击保存按钮保存。(操作为:点击name(如:input_x))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name input_y(如0,1,5),保存)。然后【start simulation】,出name output_s,output_c的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

E运算器:

8个vhd文件,一个用来定义顶层实体,七个用来定义底层实体
1个vwf文件,用来进行波形仿真,将验证的波形输入
1、 新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\运算器】)-【next】(设置文件名【goodluck】)-【next】(设置芯片类型为【cyclone-EP1CT144C8】)-【finish】
(2).新建:【file】-【new】(【design file-VHDL file】)-【OK】
2、写好源代码,保存文件(goodluck.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译。编译结果有一个警告,文件编译成功。
4、波形仿真及验证。新建一个vector waveform file。按照程序所述插入clock,en,input_a,input_b,input_c,signal_s,output_c,output_r1,output_r2九个节点(clock,en,input_a,input_b,input_c,signal_s为输入节点,output_c,output_r1,output_r2为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置clock,en,input_a,input_b,input_c,signal_s的输入波形…点击保存按钮保存。(操作为:点击name(如:clock))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name en,input_a,input_b,input_c,signal_s(如0,1,5),保存)。然后【start simulation】,出name output_c,output_r1,output_r2的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

2、实验过程
A.全加器实验
a.源代码

在这里插入图片描述
代码解释:
一个实体的vhdl文件,实体中主要执行数据流赋值操作。
b.逻辑图
在这里插入图片描述
c.波形仿真
在这里插入图片描述
波形设计解释:
在这里插入图片描述
结果分析及结论
符合输出结果,正确

B.串行加法器
a.源代码

第一个,触发器
在这里插入图片描述
第二个,存储器
在这里插入图片描述
第三个,全加器
在这里插入图片描述
第四个,顶层实体
在这里插入图片描述
在这里插入图片描述
代码解释:
四个实体的vhdl文件,第一个实体进行的是定义了一个触发器,第二个实体是定义了一个存储器,第三个实体是定义了一个全加器,第四个通过时钟信号,将原始数据存储在两个存储器中,通过重复调用全加器来实现四位二进制数加法
b.逻辑图
在这里插入图片描述
c.波形仿真
在这里插入图片描述
波形设计解释:
通过时钟信号clock,实现输入数据,以及对输入的原始数据的存储,并通过重复调用全加器对原始数据实现相加
结果分析及结论
第一个时钟周期,模拟开机,无操作
第二个时钟周期,将原始数据存入四位存储器
第三个时钟周期到第六个时钟周期,从四位数的最低位开始,对每位进行相加,并将结果导入
第一次相加为1+0,下位进位为0,产生进位为0,结果为1,输入,故第三个周期输出1000
第二次相加为1+1,下位进位为0,产生进位为1,结果为0,输入,故第四个周期输出0100
第三次相加为0+1,下位进位为1,产生进位为1,结果为0,输入,故第三个周期输出0010
第四次相加为1+1,下位进位为1,产生进位为1,结果为1,输入,故第四个周期输出1001
加法结束

C.并行加法器—串行进位
a.源代码

第一个文件
在这里插入图片描述
第二个文件
在这里插入图片描述
代码解释:
底层文件为一个一位全加器,顶层实体是通过对全加器的迭代电路实现四位的相加
b.逻辑图
在这里插入图片描述
c.波形仿真
在这里插入图片描述
波形设计解释:
对jiashu1和jiashu2进行相加
结果分析及结论:
对0110和0001进行相加,手动验算结果为0111,无进位,结果正确

D.并行加法器—快速进位
a.源代码

第一个文件
在这里插入图片描述
第二个文件
在这里插入图片描述
在这里插入图片描述
代码解释:
底层文件为一个一位全加器,顶层实体是通过对全加器的迭代电路实现四位的相加
b.逻辑图
在这里插入图片描述
c.波形仿真
在这里插入图片描述
波形设计解释:
对input_x和input_y进行相加
结果分析及结论:
对1100和0000进行相加,手动验算结果为1100,无进位,结果正确

D.并行加法器—快速进位
a.源代码

第一个文件(存储器)
在这里插入图片描述
第二个文件(取反器)
在这里插入图片描述
第三个文件(加法器)
在这里插入图片描述
在这里插入图片描述
第四个文件(减法器)
在这里插入图片描述
在这里插入图片描述
第五个文件(取和器)
在这里插入图片描述
第六个文件(逻辑右移)
在这里插入图片描述
第七个文件(逻辑左移)
在这里插入图片描述
第八个文件(顶层实体)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码解释:
通过顶层实体对七个底层实体(功能块)进行调用,通过s决定调用的是哪个模块
b.逻辑图
c.波形仿真
在这里插入图片描述
波形设计解释:
通过r1和r2的值选择相应的a,b,c寄存器,并通过s选择执行特定的操作
结果分析及结论:
第一个时钟周期,将原始数据存入a,b,c三个寄存器中
第二个时钟周期,输入10010111,按照表格应执行a+c的操作,在下降沿执行,输出结果为r1=10010001,r2=10101011,有进位,正确
第三个时钟周期,输入01100110,按照表格应执行a-b的操作,在下降沿执行,输出结果为r1=01111001,r2=01101101,无进位,正确
第四个时钟周期,输入11101011,按照表格应执行b&c的操作,在下降沿执行,输出结果为r1=00101001,r2=10101011,无进位,正确
第五个时钟周期,输入01010100,按照表格应执行!a的操作,在下降沿执行,输出结果为r1=00011001,r2=XXXXXXXX,无进位,正确
第六个时钟周期,输入10101011,按照表格应执行b的逻辑右移操作,在下降沿执行,输出结果为r1=00110110,r2=XXXXXXXX,无进位,正确
第七个时钟周期,输入00110110,按照表格应执行a的逻辑左移操作,在下降沿执行,输出结果为r1=01010110,r2=10101011,无进位,正确

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158048.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • IPFS挖矿奖励分配机制,如何获得更大的出快机会,水滴科技Filecoin扇区封装及挖矿流程是怎样的?[通俗易懂]

    IPFS挖矿奖励分配机制,如何获得更大的出快机会,Filecoin扇区封装及挖矿流程是怎样的?Filecoin挖矿奖励区块奖励方面,在Filecoin总量20亿的FIL通证中,可以通过挖矿获得的部分为70%。其余为开发团队(15%)、投资人(10%),基金会(5%)的份额。就区块奖励而言,可挖通证的50%将在6年内挖出。目前奖励的具体参数还没有最终确定,当前测试网Filecoin区块奖励模型由“简单供给+网络基线供给”构成。  不少业内人士推测,在网络达到一定的目标存储规模之前,矿工的奖励会延迟

  • python df.iloc_python中loc

    python df.iloc_python中locstackoverflow原文:pandasilocvsixvslocexplanation;howaretheydifferent?在pandas0.20.0及以上版本,ix已经被loc和iloc取代了,因此不讨论它。前提,简单介绍一下它俩:–loc利用index的名称,来获取想要的行(或列)。–iloc利用index的具体位置(所以它只能是整数型参数),…

  • Android微信开放平台,申请移动应用 获取应用签名的方法

    Android微信开放平台,申请移动应用 获取应用签名的方法

  • 拜托,面试请不要再问我Spring Cloud底层原理

    拜托,面试请不要再问我Spring Cloud底层原理结合真实业务场景,通过大量的手绘图,通俗易懂的谈谈SpringCloud微服务架构的底层原理。

  • 微信公众号网页开发步骤

    微信公众号网页开发步骤在index.html中引入微信公众JDK的js文件在vue.config.js中插入configureWebpack:{externals:{wx:’wx’},即可以全局importwxfrom’wx’授权有两种方式。一种直接获取,一种弹框授权。第一步:用户同意授权,获取code第二步:通过code换取网页授权access_token第三步:刷新access_token(如果需要)第四步:拉取用户信息(需scope为snsapi_userinfo)附:检验授权..

  • DirectX修复工具使用技巧之三——命令行与配置文件参数介绍

    DirectX修复工具使用技巧之三——命令行与配置文件参数介绍最后更新:2021-10-8DirectX修复工具自V1.0版起即支持通过settings.ini配置文件的方式设置程序配置信息,自V3.7版起支持命令行配置功能。由于命令行与配置文件均需要通过参数设定程序配置信息,本文档详细列出了命令行与配置文件的参数使用方式,供有需要的高级用户参考。命令行与配置文件中约有90%的命令是通用的,部分特殊命令只支持命令行的配置方式,本文件将分别介绍命令行参数与配置文件参数。命令行参数本程序支持命令行参数提示,用户可通过/?或者/h…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号