EDA组合逻辑电路的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院实验报告
课程名称:CPLD/FPGA 应用开发技术
实验名称:组合逻辑电路的设计
实验类型:验证性■综合性□设计性□
预习报告
一、实验目的:
1、掌握用VHDL 语言和EPLD 进行组合逻辑电路的设计方法。
2、加深对EPLD 设计全过程的理解。
3、掌握组合逻辑电路的静态测试方法。
二、实验设备:
1、PC 机
2、EDA 实验箱(主芯片是ALTERA EPM7128SLC84-15)。
三、实验内容:
1、用VHDL 语言输入法设计一个四舍五入判别电路,其输入为8421BCD 码,要求当
输入大于或等于5 时,判别电路输出为1;反之为0。
2、用VHDL 语言输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;
断任一开关,灯灭。
3、用VHDL 语言输入法设计一个优先权排队电路。排队顺序为:
A=1 最高优先级
B=1 次高优先级
C=1 最低优先级
要求输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”。
四、实验步骤:
1、采用文本编辑器输入VHDL 语言源程序,建立工程。
2、编译。
3、仿真。
4、对芯片进行编程。
5、根据管脚分配情况连线。
(1)四舍五入判别电路的四个输入管脚分别与四个拨码开关相连,输出数据与LED 灯相连。
(2)开关控制电路的四个输入管脚分别与四个按键开关相连,输出管脚与LED 灯相连。
(3)优先权排队电路的A、B、C 三个信号分别连三个按键开关,三个输出信号分别连三个LED 灯相连。
6、控制输入信号(按键或拨码开关),观察电路输出(LED 灯的亮与灭)。
五、实验报告要求:
1、给出电路的VHDL 描述、仿真结果。
2、说明波形图中输入数据的给定依据。
3、说明物理连线情况以及物理连线与编译时进行管脚分配有何关系?
实验报告成绩:指导教师审核(签名):年月日
实验报告
一、实验结果分析:
1.用VHDL 语言输入法设计一个四舍五入判别电路,其输入为8421BCD 码,要求当输入大于或等于5 时,判别电路输出为1;反之为0。
程序清单:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity p4_5 is
port(d: in std_logic_vector(3 downto 0);
y: out std_logic);
end p4_5;
architecture beha of p4_5 is signal datain:integer; begin
datain<=conv_integer(d); process
begin
if (datain>=5) then
y<='1';
else
y<='0';
end if;
end process;
end beha;
仿真结果:
分析:当d<5时 y=0; 其他情况时y=1.
2、用VHDL 语言输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;
断任一开关,灯灭
程序清单:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity vvsd is
port(a: in std_logic_vector(3 downto 0);
y: out std_logic);
end vvsd;
architecture zhu of vvsd is
begin
y<=(a(0) xor a(1) xor a(2) xor a(3));
end zhu;
仿真结果:
分析:由图可知当a0,a1,a2,a3某个改变状态时,y值也随着改变。
3、用VHDL 语言输入法设计一个优先权排队电路。排队顺序为:
A=1 最高优先级
B=1 次高优先级
C=1 最低优先级
要求输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”。程序清单:
library ieee;
use ieee.std_logic_1164.all;
entity yxq is
port(x: in std_logic_vector(2 downto 0); y: out std_logic_vector(2 downto 0)); end yxq;
architecture shi of yxq is
begin process(x)
begin
if (x(0)='1') then y<="100"; elsif(x(1)='1') then y<="010"; else y<="001";
end if;
end process;
end shi;
仿真结果:
分析:当X0=1时 Y=“100”,当X0不等于1且X1=1时 Y=“010”,其他情况