EDA组合逻辑电路的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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”,其他情况

相关文档
最新文档