数字电路实验(一)——译码器

数字电路实验(一)——译码器1、实验步骤:异或门过程1、 新建,编写源代码。(1).选择保存项和芯片类型:【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\异或门】)-【next】(设置文件名【gg】)-【next】(设置芯片类型为【cyclone-EP1CT144C…

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

1、实验步骤:
异或门过程

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。按照程序所述插入a,b,c三个节点(a、b为输入节点,c为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置a,b的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name b(如0,1,5),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

以上是异或门过程,下面是三八译码器过程

1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\指令译码器5(success)】)-【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。按照程序所述插入en,ir,our三个节点(en、ir为输入节点,our为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置en,ir的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name ir(如000,1,10),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

以上是三八译码器的过程,以下为指令译码器的过程

1、新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径+设置project name为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验一\指令译码器5(success)】)-【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。按照程序所述插入en,a, mova,movb,movc,add,sub,and0,not0,shr,shl,jmp,jz,jc,in0,out0,nop,halt十八个节点(en、a为输入节点,mova,movb,movc,add,sub,and0,not0,shr,shl,jmp,jz,jc,in0,out0,nop,halt为输出节点)。(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。任意设置en,a的输入波形…点击保存按钮保存。(操作为:点击name(如:en))-右击-【value】-【count】(如设置binary;start value=0;end value=1;count every=10ns),同理设置name ir(如0000000,1,10),保存)。然后【start simulation】,出name C的输出图。
5、功能仿真,即没有延迟的仿真,仅用来检测思路是否正确。

2、实验过程

a)异或门源代码如图(VHDL设计)
在这里插入图片描述
三八译码器源代码如图(VHDL设计)
在这里插入图片描述
指令译码器源代码如图(VHDL设计)
在这里插入图片描述
b)异或门原理图
在这里插入图片描述
三八译码器原理图
在这里插入图片描述
指令译码器原理图
在这里插入图片描述
c)编译、调试过程
编译、调试过程中没有太多的错误。但代码优化了好几次。
d)结果分析及结论
由于编译、调试过程中没有出现太多的错误,所以结果应该是:
异或门:
输入00时输出0
输入01时输出1
输入10时输出1
输入11时输出0
三八译码器:
当使能为1时,ir:
输入000时输出10000000,输入100时输出00001000
输入001时输出01000000,输入101时输出00000100
输入010时输出00100000,输入110时输出00000010
输入011时输出00010000,输入111时输出00000001
当使能为0时,恒输出00000000
指令译码器:
当使能为1时,ir为
0011 R1 R2输出mova=1其他为0
0011 11 R2输出movb=1其他为0
0011 R1 11输出movc=1其他为0
1001 R1 R2输出add=1其他为0
0110 R1 R2输出sub=1其他为0
1110 R1 R2输出and0=1其他为0
0101 R1 XX输出not0=1其他为0
1010 R1 00输出shr=1其他为0
1010 R1 11输出shl=1其他为0
0001 00 00输出jmp=1其他为0
0001 00 01输出jz=1其他为0
0001 00 10输出jc=1其他为0
0010 R1 XX输出in0=1其他为0
0100 R1 XX输出out0=1其他为0
0111 00 00输出nop=1其他为0
1000 00 00输出halt=1其他为0
当使能为0时,恒输出0

3、波形仿真
异或门

a)波形仿真过程(详见实验步骤)
在这里插入图片描述
b)波形仿真波形图
在这里插入图片描述
c)结果分析及结论
0-5ns:输入端00,输出结果为0,正确
5-10ns:输入端01,输出结果为1,正确
10-15ns:输入端10,输出结果为1,正确
15-20ns:输入端11,输出结果为0,正确
代码正确

三八译码器

a)波形仿真过程(详见实验步骤)
在这里插入图片描述
b)波形仿真波形图
在这里插入图片描述
c)结果分析及结论
0-20ns:使能端en为0,输出结果为00000000,正确
20-40ns:使能端en为1,输出结果为实验过程中结果分析,正确
代码正确

指令译码器

a)波形仿真过程(详见实验步骤)
在这里插入图片描述
b)波形仿真波形图
在这里插入图片描述
c)结果分析及结论
0-128ns:使能端en为0,输出结果全为0,正确
128-256ns:使能端en为1,输出结果符合实验过程中结果分析,正确
代码正确

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

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

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


相关推荐

  • php 除法取两位小数,php中除法取整的方法(round,ceil,floor)「建议收藏」

    php 除法取两位小数,php中除法取整的方法(round,ceil,floor)「建议收藏」PHP中遇到需要将除法所得结果取整的情况时,就需要用到以下方法:1.round:四舍五入round()函数对浮点数进行四舍五入。语法:round(x,prec)参数描述x可选。规定要舍入的数字。prec可选。规定小数点后的位数。说明:返回将x根据指定精度prec(十进制小数点后数字的数目)进行四舍五入的结果。prec也可以是负数或零(默认值)。提示:PHP默认不能正确处理类似”…

    2022年6月21日
    51
  • matlab norm函数作用_norm值计算

    matlab norm函数作用_norm值计算%X为向量,求欧几里德范数,即。n=norm(X,inf)%求-范数,即。n=norm(X,1)%求1-范数,即。n=norm(X,-inf)%求向量X的元素的绝对值的最小值,即。n=norm(X,p)%求p-范数,即,所以norm(X,2)=norm(X)。命令矩阵的范数函数norm格式n=norm(A)

    2025年8月3日
    1
  • 怎样在python上安装jieba库_无法安装lxml库

    怎样在python上安装jieba库_无法安装lxml库jieba库是python的一个三方扩展库,想要使用就需要大家下载和安装之后才可以,但有不少同学不知道该如何操作。今天小千就来给大家介绍如何安装jieba库。安装jieba库步骤在安装之前同学们一定要正确安装python运行环境,这一步就不介绍了。1.之后我们打开CMD命令提示,按下win+r,在里面输入CDM即可。2.随后我们在打开的窗口中直接输入命令:pipinstalljieba,然后按下回车之后就会自动开始下载安装,我们只需要等待一会即可。3.安装完成之后,如果不确定是否正确安装,

    2022年9月21日
    1
  • Word2vec负采样

    Word2vec负采样下文中的模型都是以Skip-gram模型为主。1、论文发展word2vec中的负采样(NEG)最初由Mikolov在论文《DistributedRepresentationsofWordsandPhrasesandtheirCompositionality》中首次提出来,是Noise-ContrastiveEstimation(简写NCE,噪声对比估计)的简化版本…

    2022年6月20日
    43
  • 非常全的VsCode快捷键「建议收藏」

    非常全的VsCode快捷键「建议收藏」按Press功能FunctionCtrl+Shift+P,F1显示命令面板ShowCommandPaletteCtrl+P快速打开QuickOpenCtrl+Shift+N新窗口/实例Newwindow/instanceCtrl+Shift+W

    2022年6月12日
    45
  • 随机森林算法原理简要总结怎么写_旋转森林算法

    随机森林算法原理简要总结怎么写_旋转森林算法①RandomForest随机森林算法原理:即bagging法+CART算法生成决策树的结合。RF=bagging+fully-grownCARTdecisiontree②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集单个单个进行决策树生成。③随机森林的优点:可并行化计算(子集的训练相互独立),效率高继承了CART算法的优点(使用Gini系数选择最优特征及切分点)减小了完全生成树的弊端(因为完全生成树过于复杂,Ein小但E

    2025年7月14日
    3

发表回复

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

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