1、内蒙古工业大学信息工程学院 xxxxx大学信息工程学院 实 验 报 告 课程名称: CPLD/FPGA 应用开发技术 实验名称: 组合逻辑电路的设计 实验类型: 验证性□ 综合性□ 设计性■ 实验室名称: 信息学院机房 班级: 学号: 姓名: 组别: 同组人: 成绩: 实验日期: 2010年6月29日 预习报
2、告成绩: 指导教师审核(签名): 年 月 日 预习报告 一、实验目的: 1、掌握用VHDL 语言和EPLD 进行组合逻辑电路的设计方法。 2、加深对EPLD 设计全过程的理解。 3、掌握组合逻辑电路的静态测试方法。 二、实验设备: 1、PC 机 2、EDA 实验箱(主芯片是ALTERA EPM7128SLC84-15)。 三、实验内容: 1、用VHDL 语言输入法设计一个四舍五入判别电路,其输入为8421BCD 码,要求当 输入大于或等于5 时,判别电路输出为1;反之为0。 2、用VHDL 语言
3、输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮; 断任一开关,灯灭。 3、用VHDL 语言输入法设计一个优先权排队电路。排队顺序为: A=1 最高优先级 B=1 次高优先级 C=1 最低优先级 要求输出端最高只能有一端为“1”, 即只能是优先级较高的输入端所对应的输出端 为“1”。 四、实验步骤: 1、采用文本编辑器输入VHDL 语言源程序,建立工程。 2、编译。 3、仿真。 4、对芯片进行编程。 5、根据管脚分配情况连线。 (1) 四舍五入判别电路的四个输入管脚分别与四个拨码开关相连,输出数据与 LED 灯相连。 (2) 开关控制电路的四个输入管
4、脚分别与四个按键开关相连,输出管脚与LED 灯相连。 (3) 优先权排队电路的A、B、C 三个信号分别连三个按键开关,三个输出信号 分别连三个LED 灯相连。 6、控制输入信号(按键或拨码开关), 观察电路输出(LED 灯的亮与灭)。 五、实验报告要求: 1、给出电路的VHDL 描述、仿真结果。 2、说明波形图中输入数据的给定依据。 3、说明物理连线情况以及物理连线与编译时进行管脚分配有何关系? 实验报告成绩: 指导教师审核(签名): 年 月 日 实验报告 一、 实验结果分析: 1.用
5、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; architec
6、ture 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。其他可以此类推得出结论。
7、 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 c
8、lk='1')then if(a='1')or(b='1')or(c='1')or(d='1')then q<=not q; end if ; end if ; end process; y<=q; end beha; 仿真结果: 结果分析: 由上图易得出:在时钟上升沿前有高电平,则输出结果翻转。代表若4个开关中有一个状态变化,则灯的状态也发生改变。 3、用VHDL 语言输入法设计一个优先权排队电路。排队顺序为: A=1 最高优先级 B=1 次高优先级 C=1 最低优先级 要求输出端最高只能有一端为“1”, 即只能是优先级较高的输入端所对应的输出
9、端为“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"
10、> dout<="001"; when "010"=> dout<="010"; when "011"=> dout<="010"; when others=> dout<="100"; end case; end process; end beha; 仿真结果: 结果分析: 当输入为,即A=1,输出。当输入为,即,A=0,B=1。输出为。同理当输入为2时,输出也为2。实现了优先排队的功能。 二、 实验心得体会 做完EDA实验,我感到受益匪浅。这不仅使我了解了EDA的实验系统,学习了MAX+PLUSⅡ软件的使用,掌握了基本的电路设计流程、方法以及技
11、巧,更增强了我对EDA设计的兴趣。 在实验的过程中,老师又结合实际详细的教了我们VHDL语言的基本指令及编程方法,教我们熟悉了在PC机上运用MAX+PLUSⅡ软件和EPLD进行电路设计的设计和仿真过程。 之后,老师为我们布置了实验任务,开始,大家都不会编写程序,或是编出来的程序有很多错误,但是在老师的指导修改下,我们克服了困难,找到了问题所在,改正了错误,编出了正确的程序。但在软件使用及仿真的时候,大家都遇到了较大的困难,同学们都是第一次接触软件,而且软件都是纯英文,加上不熟悉使用流程,老师为我们了讲了使用方法之后大家还是不太懂,后来在同学们的互相讨论中,及个别问题请教老师后,终于也攻克了这一难关,得到了完美的仿真波形和结果。 具备这些基本知识,相信为我今后的自主学习奠定了良好的基础。






