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

数字电路实验(三)——加法器、运算器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,无进位,正确

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶「建议收藏」

    基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶「建议收藏」语音识别智能分类垃圾桶基本介绍器件51单片机LD3320语音模块SYN6288语音合成SG90舵机(4个)usb-ttl模块垃圾桶四个(4个)面包板(建议用)实现思路与接线实现流程图接线呈现图代码编写语音模块(部分代码)语音模块串口调试结果51单片机代码(部分代码 )项目展示基本介绍这个一个基于51单片机做的一个语音识别分类智能垃圾桶,通过我们说话来对垃圾词语进行分类。比如:垃圾桶(一级指令)易拉罐(垃圾词语),我们通过说话说出关键字让语音模块接收到——语音模块通过串口发指令给51单片机,针对

    2022年6月26日
  • git 常用命令大全

    git 常用命令大全

    2022年2月19日
  • 2021.4.14版本激活码_通用破解码[通俗易懂]

    2021.4.14版本激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • 阅读书源最新2020在线导入_最最最最最好用的小说神器,全网书源免费用!

    阅读书源最新2020在线导入_最最最最最好用的小说神器,全网书源免费用!今天给大家分享的是小说软件,为了满足所有小伙伴的需求,今天安卓和苹果都安排上了,一款Android应用,一款iOS应用。两款应用都十分相似,都是可以自行添加书源的软件,几乎覆盖全网小说。阅读(Android)软件本身是没有任何资源的,如果不添加书源地址,也不能搜索到任何小说。书源添加流程:软件想要很好的使用,还需要添加书源,该软件自己有一个在线书源库,内含上千个书源地址,足够满足大家的使…

    2022年6月17日
  • mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」

    mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」安装C++运行环境[需要C++的运行环境,TheDLLsrequirethatyouhavethelatestVisualC++runtime(2015)]:https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads克隆代码下来关闭杀毒软件!!!解压MT4配置…

    2022年5月7日
  • datax(3): win环境cmd乱码「建议收藏」

    datax(3): win环境cmd乱码「建议收藏」通过前面两篇文章,大家应该已经可以安装成功datax,但是在win的cmd下竟然中文乱码。解决它!!!一,环境win10datax3.xcmdpy3.x二,现象运行python\xxx\datax.py\xxx\job.json后控制台乱码三,解决1,临时解决命令:chcp(更改该控制台的活动控制台代码页)过程:cmd下输入chcp65001改变当前代码页变为utf-8编码常用的编码及对应的码值(10进制):十进制码值 对应编码名称950 .

    2022年5月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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