EDA-组合逻辑电路的设计(共5页).doc
精选优质文档-倾情为你奉上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,(65)。则输出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 issignal q:std_logic;beginprocess(clk)begin if(clk'event and clk='1')thenif(a='1')or(b='1')or(c='1')or(d='1')thenq<=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;仿真结果:结果分析: 当输入为,即A=1,输出。当输入为,即,A=0,B=1。输出为。同理当输入为2时,输出也为2。实现了优先排队的功能。二、 实验心得体会做完EDA实验,我感到受益匪浅。这不仅使我了解了EDA的实验系统,学习了MAX+PLUS软件的使用,掌握了基本的电路设计流程、方法以及技巧,更增强了我对EDA设计的兴趣。在实验的过程中,老师又结合实际详细的教了我们VHDL语言的基本指令及编程方法,教我们熟悉了在PC机上运用MAX+PLUS软件和EPLD进行电路设计的设计和仿真过程。之后,老师为我们布置了实验任务,开始,大家都不会编写程序,或是编出来的程序有很多错误,但是在老师的指导修改下,我们克服了困难,找到了问题所在,改正了错误,编出了正确的程序。但在软件使用及仿真的时候,大家都遇到了较大的困难,同学们都是第一次接触软件,而且软件都是纯英文,加上不熟悉使用流程,老师为我们了讲了使用方法之后大家还是不太懂,后来在同学们的互相讨论中,及个别问题请教老师后,终于也攻克了这一难关,得到了完美的仿真波形和结果。具备这些基本知识,相信为我今后的自主学习奠定了良好的基础。