hnu 数字电路 实验1.2 实现3-8译码器

本文详细介绍了使用VHDL语言设计和实现3-8译码器的过程,包括逻辑图绘制、源代码编写、QuartusII中的工程设置、功能仿真与时序仿真的步骤。通过功能仿真与时序仿真的波形验证,确认了3-8译码器的正确功能。
摘要由CSDN通过智能技术生成

用逻辑图和VHDL语言设计一个3-8译码器

① 先画出3-8译码器的逻辑图
在这里插入图片描述

② 打开Quartus II,新建工程,工程命名为yi_ma_38,开始编写源代码。

③ 写好源代码,保存文件。(如图为源代码,VHDL数据流实现)

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
entity yi_ma_38 is
port( A0,A1,A2: in std_logic;
  C0,C1,C2,C3,C4,C5,C6,C7: out std_logic);
end yi_ma_38;

architecture dataflow_1 of yi_ma_38 is
signal A0_n,A1_n,A2_n,B0,B1,B2,B3:std_logic;
begin
   A0_n <= not A0;
   A1_n <= not A1;
   A2_n <= not A2;
   B3 <= A2_n and A1_n;
   B2 <= A2 and A1_n;
   B1 <= A2_n and A1;
   B0 <= A2 and A1;
   C7 <= B0 and A0;
   C6 <= B1 and A0;
   C5 <= B2 and A0;
   C4 <= B3 and A0;
   C3 <= B0 and A0_n;
   C2 <= B1 and A0_n;
   C1 <= B2 and A0_n;
   C0 <= B3 and A0_n;
end dataflow_1;

在这里插入图片描述

④ 编译与调试。确保顶层实现的命名和工程名一致。编译成功。
在这里插入图片描述

⑤ 查看RTL视图。
在这里插入图片描述

⑥ 结果分析及结论。
如RTL图所示,3-8译码器共A0,A1,A2三个输入,经过B0,B1,B2,B3三个与门和八个与门,完成C0-C7八个输出,完成3-8译码器的功能,和逻辑图相符,初步判断没有问题。

⑦ 功能仿真的波形及验证。
a.新建波形文件。将3-8译码器的8个输入000-111按顺序依次输入到波形文件Waveform1.vwf中。
b.生成网表,功能仿真。生成网表成功。
在这里插入图片描述

功能仿真成功。功能仿真波形图如图所示:
在这里插入图片描述

c.结果分析及结论
0-10.0ns,A0=0,A1=0,A2=0,C0=A0+A1+A2=1,其余C为0,仿真无误。
10.0-20.0ns,A0=0,A1=0,A2=1,C1=A0+A1+A2=1,其余C为0,仿真无误。
20.0-30.0ns,A0=0,A1=1,A2=0,C2=A0+A1+A2=1,其余C为0,仿真无误。
30.0-40.0ns,A0=0,A1=1,A2=1,C3=A0+A1+A2=1,其余C为0,仿真无误。
40.0-50.0ns,A0=1,A1=0,A2=0,C4=A0+A1+A2=1,其余C为0,仿真无误。
50.0-60.0ns,A0=1,A1=0,A2=1,C5=A0+A1+A2=1,其余C为0,仿真无误。
60.0-70.0ns,A0=1,A1=1,A2=0,C6=A0+A1+A2=1,其余C为0,仿真无误。
70.0-80.0ns,A0=1,A1=1,A2=1,C7=A0+A1+A2=1,其余C为0,仿真无误。
⑧ 实现时序仿真。
a.时序仿真成功。
在这里插入图片描述

b.时序仿真波形图如下:
在这里插入图片描述

c.结果分析及结论
0-10.0ns,A0=0,A1=0,A2=0,C0=A0+A1+A2=1,其余C为0,仿真无误。
10.0-18.07ns,C1=A0+A1+A2=1,由于有延时,仍旧显示C0=A0+A1+A2=1,C1和其余C为0。
18.07-20.0ns,A0=0,A1=0,A2=1,C1=A0+A1+A2=1,其余C为0,仿真无误。
20.0-28.52ns,C2=A0+A1+A2=1,由于有延时,仍旧显示C1=++=1,C2和其余C为0。
28.52-29.09ns,C2=A0+A1+A2=1,但由于延误,显示C1=A0+A1+A2=1的情况,出现冒险。
29.09-30.0ns,A0=0,A1=1,A2=0,C2=++=1,其余C为0,仿真无误。
30.0-38.97ns,C3=A0+A1+A2=1,由于有延时,仍旧显示C2=A0+A1+A2=1,C3和其余C为0。
38.12-40.0ns,A0=0,A1=1,A2=1,C3=A0+A1+A2=1,其余C为0,仿真无误。
40.0-48.01ns,C4=A0+A1+A2=1,由于有延时,仍旧显示C3=A0+A1+A2=1,C4和其余C为0。
48.01-49.42ns,C4=A0+A1+A2=1,但由于延误,显示C6=A0+A1+A2=1的情况,出现冒险。
49.42-50.0ns,A0=1,A1=0,A2=0,C4=A0+A1+A2=1,其余C为0,仿真无误。
50.0-57.89ns,C5=A0+A1+A2=1,由于有延时,仍旧显示C4=A0+A1+A2=1,C5和其余C为0。
57.89-60.0ns,A0=1,A1=0,A2=1,C5=A0+A1+A2=1,其余C为0,仿真无误。
60.0-68.34ns,C6=A0+A1+A2=1,由于有延时,仍旧显示C5=A0+A1+A2=1,C6和其余C为0。
68.34-69.19ns,C6=A0+A1+A2=1,但由于延误,显示C4=A0+A1+A2=1的情况,出现冒险。
69.19-70.0ns,A0=1,A1=1,A2=0,C6=A0+A1+A2=1,其余C为0,仿真无误。
70.0-78.51ns,C7=A0+A1+A2=1,由于有延时,仍旧显示C6=A0+A1+A2=1,C7和其余C为0。
78.51-80.0ns,A0=1,A1=1,A2=1,C7=A0+A1+A2=1,其余C为0,仿真无误。
80.0-87.83ns,C0=A0+A1+A2=1,由于有延时,仍旧显示C0=A0+A1+A2=1,C8和其余C为0。
87.83-89.52ns,C0=A0+A1+A2=1,但由于延误,显示C2=A0+A1+A2=1的情况,出现冒险。
89.52-ns,A0=0,A1=0,A2=0,C0=A0+A1+A2=1,其余C为0,仿真无误。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值