赞
踩
用逻辑图和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,仿真无误。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。