HUNAN UNIVERSITY
数字逻辑
学生姓名 李国龙 学专
生业
学班
号 ************ 级 计算机科学与技术 2015年12月 2日
实验一 四人表决电路
一、实验内容:
设计一个4人表决电路。即如果3人或3人以上同意,则通过;反正,则被否决。用与非门实现。 二、实验目的:
(1)学会组合逻辑电路的特点;
(2) 利用VHDL对组合逻辑电路进行分析与设计; 三、实验原理:
组合逻辑电路是一种重要的数字逻辑电路:特点是任何时刻的输出仅仅取决于同一时刻输入信号的取值组合。根据电路确定功能,是分析组合逻辑电路的过程,一般按图1-1所示步骤进行分析。
组合逻辑电路逻辑表达式最简表达式真值表确切电路功能图1-1 组合逻辑电路的分析步骤
根据要求求解电路,是设计组合逻辑电路的过程,一般按图1-2所示步骤进行设计。
问题提出真值表逻辑表达式化简变换逻辑图图1-2 组合逻辑电路的设计步骤
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
表决电路原理图:
输入
A
A B C D 表 决 电 路
F输出
- - - -
若是F=1,则F=ABCD+ABCD+ABCD+ABCD+ABCD。 真值表:
A B C D F A B C D F 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 用卡诺图化简
BC DA 00 01 11 10 00 01 1 11 1 1 1 10 1 所以用VHDL语言表示为f<=(a and b and c)or(a and b and d)or(a and c and d)or(b and c and d); 四、实验步骤:
1,打开Quartus软件,创建工程,点击File-New Project Wizard,文件名工程名为biaojue,Family选择FLEX10K,device 选择10TI144-4完成工程创建。
2,点击New-VHDL File,编写表决电路的VHDL代码。 library IEEE;
use IEEE.std_logic_1164.all; entity biaojue is
port(a,b,c,d:in STD_LOGIC; f:out STD_LOGIC); end biaojue;
architecture biaojue_arch of biaojue is begin
f<=(a and b and c)or(a and b and d)or(a and c and d)or(b and c and d);
end biaojue_arch;
3,编译代码后进行功能仿真,点击New-Vector Waveform File,进入页面后添加节点,合并abcd四个节点,Grid Size为100ns,生成网表后再点击仿真按钮,得到波形文件。
五、实验分析:
从波形文件可以看出,当abcd取值为0111,1011,1101,1110,1111时,f的值为1,与实验预期一模一样,此表决电路是正确的。 六、实验总结:
四人表决电路的设计由于涉及到的变量少,情况简单,所以设计比较容易,VHDL的编写也比较简单,不过也包含了许多知识点,值得思考。
因篇幅问题不能全部显示,请点此查看更多更全内容