EDA_组合逻辑电路的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xxxxx大学信息工程学院实验报告
课程名称: CPLD/FPGA 应用开发技术
实验名称:组合逻辑电路的设计
实验类型:验证性□ 综合性□ 设计性■实验室名称:信息学院机房
班级:学号:
姓名:组别:
同组人:成绩:
实验日期: 2010年6月29日
预习报告
一、实验目的:
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 pan4_5 is
port(d: in std_logic_vector(3 downto 0); y: out std_logic);
end pan4_5;
architecture beha of pan4_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;
仿真结果:
结果分析:
由上图分析可知,d3,d2,d1,d0 表示又BCD码表示的一位的十进制数。当d3,d2,d1,d0分别设为0110,转化为十进制数为6,(6>5)。则输出y为1。其他可以此类推得出结论。
2、用VHDL 语言输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;
断任一开关,灯灭
程序清单:
library ieee;
use ieee.std_logic_1164.all; entity dd is
port (a,b,c,d: in std_logic; clk: in std_logic;
y:out std_logic);
end dd;
architecture beha of dd is signal q:std_logic;
begin
process(clk)
begin
if(clk'event and clk='1')then
if(a='1')or(b='1')or(c='1')or(d='1')the n
q<=not q;
end if ;
end if ;
end process;
y<=q;
end beha;
仿真结果:
结果分析:
由上图易得出:在时钟上升沿前有高电平,则输出结果翻转。代表若4个开关中有一个状态变化,则灯的状态也发生改变。
3、用VHDL 语言输入法设计一个优先权排队电路。排队顺序为:
A=1 最高优先级
B=1 次高优先级
C=1 最低优先级
要求输出端最高只能有一端为“1”, 即只能是优先级较高的输入端所对应的输出端为“1”。 程序代码:
library ieee; use ieee.std_logic_1164.all; entity paidui is port(din: in std_logic_vector(2 downto 0); dout: out std_logic_vector(2 downto 0)); end paidui; architecture beha of paidui is begin process(din) begin
case din is
when "000"=> dout<="000"; when "001"=> dout<="001";
when "010"=> dout<="010";
when "011"=> dout<="010";
when others=> dout<="100";
end case;
end process;
end beha;
仿真结果:
结果分析:
当输入为102(5)(101)=,即A=1,输出2(100)4=。当输入为102(3)(011)=,即,A=0,B=1。输出为2(010)2=。同理当输入为2时,输出也为2。实现了优先排队的功能。