EDA可编程逻辑实验报告_第1页
EDA可编程逻辑实验报告_第2页
EDA可编程逻辑实验报告_第3页
EDA可编程逻辑实验报告_第4页
EDA可编程逻辑实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西安邮电学院可编程逻辑实验报告 可编程逻辑实验院系名称:电子工程学院学生姓名:专业名称:光电信息工程班 级:光电0904学号:实验名称:门电路的设计实验一:用原理图输入法设计门电路实验目的:1.掌握pld芯片的基本使用方法,熟悉eda软件max+plus的操作。1. 学会利用软件仿真和实现用硬件对数字电路的逻辑功能进行验证和分析。器材:pc实验内容:实现1、f=/ab 2、f=ab+cd实验结果:1. f=/ab原理图:仿真结果:2. f=ab+cd原理图:仿真结果:实验二:用原理图输入法设计门电路实验目的:1.进一步掌握pld芯片的基本使用方法,熟悉eda软件max+plus的操作。2.学会

2、利用软件仿真和实现用硬件对数字电路的逻辑功能进行验证和分析。3.学习初步的vhdl程序设计方法。器材:pc实验内容:实现3、f=ab 4、f=/abc+/d实验结果:3、 f=ab源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity xor2 isport(a,b:in std_logic; f:out std_logic);end;architecture main of xor2 isbeginf=a xor b;end

3、;仿真结果:4、 f=/abc+/d源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity zhonghe isport(a,b,c,d:in std_logic; f:out std_logic);end;architecture main of zhonghe issignal g,h,y,m,n:std_logic;beginm=not a;g=m and b;h=g and c;n=not d;y=h or n;f=y

4、;end;仿真结果:实验小结:本实验为第一次dea实验,不免有些兴奋和好奇,加之老师讲的比较好,所以基本上没有遇到什么问题。虽然提前有预习过,但是老师还是一点点的细细讲,我很佩服。老师使我们在短时间内,学会了max+plus的使用方法。原理图输入法,文本输入法基本都会了。不过还是出了些问题。比如很容易忘记,将当前工程选中。在文本编写时,必须保持文件名与实体名一致,且扩展名为“.vhd”。总之,这次实验做得还不错。实验名称:组合逻辑电路的设计实验三:编译码器设计实验目的:a)熟悉组合逻辑电路的vhdl描述方法。b)熟练掌握“case”语句和“ifelse”语句的用法。器材:pc实验内容:实现1、

5、输入8421bcd码,输出余3码 2、设计优先编码器实验结果:a)输入8421bcd码,输出余3码源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shiyan3 isport(x0,x1,x2,x3:in std_logic;y0,y1,y2,y3:out std_logic);end;architecture rel_1 of shiyan3 issignal a,b,c,d, e,f,g,h,i,j,k,l,m,n:std_logic; begin a=not x3; b

6、=not x2; c=not x1; d=not x0; e=a and d; f=b and c and d; y0=e or f; g=a and c and d; h=a and x1 and x0 ; y1=f or g or h; i=a and x2 and c and d; j=b and c and x0; k=a and b and x1; y2=i or j or k; l=x3 and b and c; m=a and x2 and x0; n=a and x2 and x1; y3=l or m or n;end;实验结果:b)设计优先编码器源程序:library ie

7、ee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity shiyan4 isport(i:in std_logic_vector(7 downto 0);a:out std_logic_vector(2 downto 0);end;architecture dataflow of shiyan4 isbegin a=111 when i(7)=1else 110 when i(6)=1else 101 when i(5)=1else 100 when i

8、(4)=1else 011 when i(3)=1else 010 when i(2)=1else 001 when i(1)=1else 000 when i(0)=1else 111;end;实验结果:实验四:数选器,逻辑运算器实验目的:a)进一步熟悉组合逻辑电路的vhdl描述方法。i. 进一步熟练掌握“case”语句和“ifelse”语句的用法。ii. 掌握数选器、逻辑运算器的组合逻辑电路的设计方法。器材:pc实验内容:实现1、abcd的多数表决器 2、二位二进制相乘电路实验结果:a)abcd的多数表决器源程序:library ieee;use ieee.std_logic_1164.a

9、ll;use ieee.std_logic_unsigned.all;entity shiyan5 isport(a,b,c,d:in std_logic;y:out std_logic);end;architecture rel_1 of shiyan5 issignal e,f,g,h,i,j,k:std_logic; begin e=c and d; f=a or b; g=e and f; h=a and b; i=c or d; j=h and i; k=g or j;y=k;end;实验结果:b)二位二进制相乘电路源程序:library ieee;use ieee.std_logi

10、c_1164.all;use ieee.std_logic_unsigned.all;entity shiyan6 isport(a1,a0,b1,b0:in std_logic;p0,p1,p2,p3:out std_logic);end;architecture rel_1 of shiyan6 issignal e,f,g,h,i,j,k,l:std_logic; begin e= a0 and b0; f=a1 and b0; g=a0 and b1; h=f or g; i=a1 and b1; j=a0 nand b0; k=i and j; l=e and i;p0=e;p1=h

11、;p2=k;p3yyyyyyyyyyyyyyyyy=zzzzzzz;end case;end process;end;实验结果:实验小结:本实验为第二次dea实验,这次的实验内容相对第一次是比较多的。但是老师的讲解,使我们做起实验来,事半功倍。但是,还会犯些老毛病,比如很容易忘记,将当前工程选中。在文本编写时,必须保持文件名与实体名一致,且扩展名为“.vhd”。在写最后的数码管时犯糊涂了,以为是用原理图来实现,浪费了不少时间。还有,文本编写时,高阻态是不能随便出现的,我就吃亏了。总之,这次实验做得还行。实验六:触发器的设计实验目的:a)认识rs触发器、jk触发器、d触发器和t触发器。v. 熟练

12、掌握rs触发器、jk触发器、d触发器和t触发器的逻辑功能及动作特点。vi. 能够通过cpld开发实现具有触发器功能的数字电路。器材:pc,可编程逻辑实验电路板,下载线,usb电源线,双踪示波器,数字万用表,导线若干。实验内容:实现1、上升沿jk触发器。 实现2、上升沿d触发器。实验结果:a) 上升沿jk触发器要求设计一个合理的电路,通过max+plusii仿真和cpld实现验证jk触发器的逻辑功能,并掌握其动作特点。此次设计的 jk触发器如图4-6-2所示。jk触发器功能表见表4-6-2源程序:library ieee;use ieee.std_logic_1164.all;entity jk

13、clk isport(prn,clrn,clk:in std_logic; j,k:in std_logic; q,qb:out std_logic);end;architecture jkcp1 of jkclk issignal q_temp,qb_temp: std_logic;beginprocess(prn,clrn,clk,j,k)beginif(prn=1 and clrn=0)thenq_temp=0;qb_temp=1;elsif(prn=0)thenq_temp=1;qb_temp=0;elsif(clk=1 and clkevent)then if(j=0 and k=1

14、)then q_temp=0; qb_temp=1;elsif(j=1 and k=0)then q_temp=1; qb_temp=0;elsif(j=1 and k=1)then q_temp=not q_temp; qb_temp=not qb_temp;else q_temp=q_temp; qb_temp=qb_temp;end if;end if;end process;q=q_temp;qb=qb_temp;end;实验结果:b) 上升沿d触发器要求设计一个合理的电路,通过max+plusii仿真和cpld实现验证d触发器的逻辑功能,并掌握其动作特点。此次设计的d触发器如图所示。

15、源程序:library ieee;use ieee.std_logic_1164.all;entity dcp isport(prn,clrn,clk:in std_logic; d:in std_logic; q,qb:out std_logic);end;architecture dcp1 of dcp issignal q_temp,qb_temp: std_logic;beginprocess(prn,clrn,clk,d)beginif(prn=1 and clrn=0)thenq_temp=0;qb_temp=1;elsif(prn=0)thenq_temp=1;qb_temp=0

16、;elsif(clk=1 and clkevent)then q_temp=d; qb_temp=not d;end if;end process;q=q_temp;qb=qb_temp;end;实验结果:实验小结:通过实验,让我对vhdl软件的应用更熟悉,同时认识rs触发器、jk触发器、d触发器、t触发器,掌握它们的逻辑功能和动作特点。实验应注意事项:电路的编程要根据要求及真值表,要考虑输入所有可能出现的情况,尽量简洁。测试信号要包括所有端子的各种情况。同时一定要考虑文件名匹配问题。在编写程序中一定要认真细心,小小的错误就会导致结果不正确。注意文件保存时的文件名匹配问题。如果出现了错误应按着

17、提示内容一步一步的进行调试,直到没有错误为止。总之,这次试验室较为顺利的完成了,在这次实验中收获颇多。实验七:移位寄存器的设计一、实验目的 1、掌握移位寄存器电路设计的方法。2、通过开发cpld来实现时序逻辑电路的功能。二、实验所用仪表及主要器材 计算机,软件maxplus2,cpld芯片三、实验原理简述(1)启用原理图(文本)编辑器编译;(2)保存、编辑程序语言,在程序无错后进行编译。(3)启动波形图编译器,设置、编辑波形图并保存、仿真。(4)指定、设置cpld芯片epm7032slc44-10;输入输出分配管脚。 (5)下载实现,按照设定的输入输出管脚,用线连接实验板上的发光二极管和开关改

18、变输入开关的状态,观察输出端对应的发光二极管的状态。四、实验测量记录(真值表、源程序、仿真图)1、设计一个能自启动的环形计数器 实现如下图所示状态转移图。真值表:10000100010000100010000100011000编写出实现该电路的vhdl程序.library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity roll1 isport(clk,d:in std_logic; q:buffer std_logic_vector(3 downto 0);end;architecture atl

19、 of roll1 isbegin process(clk) begin if(clkevent and clk=1)then q(3)=d; q(0)=q(1); q(1)=q(2); q(2)=q(3); if (q(0)=1)then q(3)=q(0); end if; end if; end process;end;用max+plusii进行仿真。2、节日彩灯电路设计要求当输入连续脉冲时,4个彩灯(发光二极管)级可以从右向左逐位亮继而逐位灭,又可以从左向右逐位亮继而逐位灭。真值表:时000000010001001100110111011111111111111011101100110

20、0100010000000时:0000100010001100110011101110111111110111011100110011000100010000编写出实现该电路的vhdl程序.library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity light isport(x,clk,rd:in std_logic; q:buffer std_logic_vector(3 downto 0);end;architecture atl of light isbegin process(clk,x

21、) begin if(rd=0)then q=0000; elsif(clkevent and clk=1)then if(x=1)then q(3)=q(2); q(2)=q(1); q(1)=q(0); q(0)=not q(3); else q(0)=q(1); q(1)=q(2); q(2)=q(3); q(3)=not q(0); end if; end if; end process;end;用max+plusii进行仿真。3、硬件下载实现彩灯设计,结果用二极管显示。按照下载实现的步骤进行,分配管脚图如下:时钟控制信号cp必须接在43号管脚;异步清零端rd必须接在1号管脚;输入输出

22、端必须接在(i/0)管脚。然后在电路板上连接好电路,变换输入端x的高低电平,可以看见四个二极管如状态转移表所示依次变换。五、实验心得本次试验主要是对移位寄存器的设计,程序已在示例中给出,只要仿照示例进行设计就可得到想要的结果。在下载实现时,出了许多小问题,刚开始时老师不能下下来,后来经过老师的讲解才得以解决问题。在编写程序时,要对语句熟悉,编写中有一个if 语句后少一个end ,在边沿触发器的上升沿用 event。实验应注意事项:电路的编程要根据要求及真值表,要考虑输入所有可能出现的情况,尽量简洁。测试信号要包括所有端子的各种情况。同时一定要考虑文件名匹配问题。在编写程序中一定要认真细心,小小

23、的错误就会导致结果不正确,从而没有编译结果注意仿真信号应包括所有端子的各种情况。注意文件保存时的文件名匹配问题。如果出现了错误应按着提示内容一步一步的进行调试,直到没有错误为止。总之,这次试验我收获颇多。实验八:计数器的设计一、实验目的1 掌握计数器电路设计的方法。2 通过开发cpld来实现时序逻辑电路的功能。二、实验所用仪表及主要器材 计算机,软件maxplus2,cpld芯片三、实验原理简述(1)启用原理图(文本)编辑器编译;(2)保存、编辑程序语言,在程序无错后进行编译。(3)启动波形图编译器,设置、编辑波形图并保存、仿真。(4)指定、设置cpld芯片epm7032slc44-10;输入

24、输出分配管脚。 (5)下载实现,按照设定的输入输出管脚,用线连接实验板上的发光二极管和开关改变输入开关的状态,观察输出端对应的发光二极管的状态。四、实验内容(真值表、原理图、源程序、仿真图)1设计一个同步带有进位输出端的二十四进制(8421bcd码)计数器,且能够自启动及具有进位输出端。方法按下列要求设计编程实现。要求:1). 用原理图输入法,元件采用74160设计上述计数器,并硬件下载实现,结果用数码管显示;2). 用文本输入法即vhdl语言设计编程,并硬件下载实现,结果用数码管显示。真值表:q7q6q5q4q3q2q1q00000000000000001000000100000001100

25、00010000000101000001100000011100001000000010010001000000010001000100100001001100010100000101010001011000010111000110000001100100100000001000010010001000100011原理图:编写出实现该电路的vhdl程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dec isport(clk,sd,ep,et:in std_logic; rd:b

26、uffer std_logic; dl:in std_logic_vector(3 downto 0); dh:in std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0); qh:buffer std_logic_vector(3 downto 0);end;architecture rtl of dec isbegin process(clk,rd,sd,ep,et) begin rd=(qh(1) nand ql(2); if(rd=0)then ql=0000; qh=0000; elsif(clkeve

27、nt and clk=1)then if(sd=0)then ql=dl;qh=dh; elsif(ep=0)then ql=ql;qh=qh; elsif(et=0)then ql=ql;qh=qh; elsif(ep=1 and et=1)then if(ql=9)then ql=0000; qh=qh+1; else ql=ql+1; qh=qh; end if; end if; end if;end process;end;用max+plusii进行仿真:2、设计一个同步带有进位输出端的模60(8421bcd码)计数器,且能够自启动及具有进位输出端,计数器个位显示09,计数器,十位显示09。library ieee ;use ieee.std_logic_1164.all ;use ieee.std_logic_ar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论