ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:20.12KB ,
资源ID:24229614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24229614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(报告数电VHDL实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

报告数电VHDL实验报告.docx

1、报告数电VHDL实验报告【关键字】报告2009级数字电路实验报告实验名称: EDA基础实验学生姓名: 桂柯易班 级: 20班内序号: 07学 号: 09210580日 期: 2011年4月28日1.实验要求【实验目的】1.熟悉用QuartusII原理图输入法进行电路设计和仿真;2.掌握QuartusII图形模块单元的生成与调用;3.熟悉用VHDL语言设计组合逻辑电路和时序电路的方法;4.熟悉用QuartusII文本输入法和图形输入法进行电路设计;5.熟悉不同的编码及其之间的转换;6.掌握触发器的逻辑功能及使用方法;7.熟悉计数器、寄存器、锁存器、分频器、移位寄存器的设计方法8.掌握VHDL语言

2、的语法规范,掌握时序电路描述方法;9.掌握多个数码管动态扫描显示的原理及设计方法。【实验所用仪器及元器件】 1.计算机 2.直流稳压电源 3.数字系统与逻辑设计实验开发板【实验内容】 1.用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。 2.用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功 能,并下载到实验板尝试,要求用拨码开关设定输入信号,发光二极管显示输出信 号。 3.用3线-8线译码器(74LS138)和逻辑门设计实现函数F,仿真验证其功能,并下 载到实验板尝试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 4.用VHDL语言设计实

3、现一个3位二进制数值比较器,仿真验证其功能,并下载到实 验板尝试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 5.用VHDL语言设计实现一个4选1的数据选择器;一个8421码转换为格雷码的代码 转换器;一个举重比赛裁判器;一个带同步置位和同步复位功能的D触发器;一个 带异步复位的4位二进制减计数器;一个带异步复位的8421码十进制计数器;一 个带异步复位的4位自启动环形计数器;一个带控制端的8位二进制寄存器,当控 制端为1时,电路正常工作,否则输出为高阻态;一个分频系数为12,分频输 出信号占空比为50%的分频器。仿真验证其功能,并下载到实验板尝试。要求用拨 码开关和按键开关设定输入

4、信号,发光二极管显示输出信号。(注:有几个不需要 下载到实验板尝试)2.程序分析全加器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE a OF h_adder ISBEGIN so= a XOR b; coain,b=bin,co=d,so=e); u2:h_adder port map(a=e,b=cin,co=f,so=sum); coutB)THEN YA=1;YB=

5、0;YC=0; ELSIF(AB)THEN YA=0;YB=1;YC=0; ELSE YA=0;YB=0;YC=1; END IF; END PROCESS;END behave;将比较的过程直接交给软件本身,只需通过不同的二进制数输出比较的结果即可。4选1数据选择器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GKY07P5 IS PORT(G,A1,A0:IN STD_LOGIC; D0,D1,D2,D3:IN STD_LOGIC; Y,YB:OUT STD_LOGIC);END GKY07P5;ARCHITECTURE behave O

6、F GKY07P5 IS SIGNAL comb:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN combY=D0;YBY=D1;YBY=D2;YBY=D3;YBY=0;YB=1; END CASE; ELSE Y=0;YB=1; END IF; END PROCESS;END behave;主要是WHEN语句的运用,用两位二进制数表示四种数据输出状态,再用WHEN语句具体实现。8421码转换为格雷码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GKY07P6 IS PORT(A:IN STD_LOGIC_VECTOR(

7、3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END GKY07P6;ARCHITECTURE behave OF GKY07P6 ISBEGIN PROCESS(A) BEGIN B(3)=A(3); B(2)=A(3) XOR A(2); B(1)=A(2) XOR A(1); B(0) b b b b b b b b = 111; END CASE; END PROCESS;END;与前几题不同,这个更偏向应用。列出实际情况的状态表,发现三个裁判的不同判断各对应红黄绿灯的亮灭情况,故还是WHEN语句的应用。D触发器:LIBRARY IEE

8、E;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GKY07P8 IS PORT(d,clk,set,reset:IN STD_LOGIC; q,qb:OUT STD_LOGIC);END GKY07P8;ARCHITECTURE struc OF GKY07P8 ISBEGIN PROCESS(clk,set,reset) BEGIN IF set=0 AND reset=1 THEN q=1;qb=0; ELSIF set=1 AND reset=0 THEN q=0;qb=1; ELSIF clkEVENT AND clk=1 THEN q=d;qb=NOT d;

9、 END IF; END PROCESS;END struc; 和书上的例子基本一样,只是同步置位和同步复位都跟随时间脉冲的变化。4位二进制减计数器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P9 IS PORT(clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END GKY07P9;ARCHITECTURE struc OF GKY07P9 IS SIGNAL q_temp:STD_LOGIC_V

10、ECTOR(3 DOWNTO 0);BEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF reset=0THEN q_temp=1111; ELSIF q_temp=0000 THEN q_temp=1111; ELSE q_temp=q_temp-1; END IF; END IF; END PROCESS; q=q_temp;END struc;从状态1111到状态0000,然后再跳回1111。异步复位不需要跟随脉冲变化,要立即复位。8421码十进制计数器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.AL

11、L;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P10 IS PORT(clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END GKY07P10;ARCHITECTURE struc OF GKY07P10 IS SIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF reset=1THEN q_temp=0000; ELSIF q_temp=

12、1001THEN q_temp=0000; ELSE q_temp=q_temp+1; END IF; END IF; END PROCESS; q=q_temp;END struc; 从状态0000到状态1001,然后再跳回0000,异步复位要立即复位。4位环形计数器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GKY07P11 IS PORT(clk,reset:IN STD_LOGIC; countout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END GKY07P11;ARCHITECTURE behave

13、OF GKY07P11 IS SIGNAL nextcount: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,reset) BEGIN IF RESET=1 THEN nextcount nextcount nextcount nextcount nextcount=0001; END CASE; END IF; END PROCESS; countout=nextcount;END behave;计数状态在0001,0010,0100,1000四个之间转换,由于需要能够自启动,对别状态的处理是全部引到那四个计数状态上。8位二进制寄存器:LIB

14、RARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GKY07P12 IS PORT(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0); oe,clk:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END GKY07P12;ARCHITECTURE struc OF GKY07P12 IS SIGNAL temp:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(clk,oe) BEGIN IF oe=1 THEN IF clkEVENT AND cl

15、k=1 THEN temp=d; END IF; ELSE temp=ZZZZZZZZ; END IF; q=temp; END PROCESS;END struc;和书上的例子基本一样,将低电平控制改成高电平控制即可。分频器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P13 IS PORT(clk,clear:IN STD_LOGIC; clk_out:OUT STD_LOGIC);END GKY07P13;ARCHITECTURE struc OF GKY07P1

16、3 IS SIGNAL temp:INTEGER RANGE 0 TO 11;BEGIN p1:PROCESS(clear,clk) BEGIN IF clear=0 THEN temp=0; ELSIF clkEVENT AND clk=1 THEN IF temp=11 THEN temp=0; ELSE temp=temp+1; END IF; END IF; END PROCESS p1; p2:PROCESS(temp) BEGIN IF temp6 THEN clk_out=0; ELSE clk_out=1; END IF; END PROCESS p2;END struc;很重

17、要的一个器件,但是设计难度并不很高,首先是模为12的计数,然后是占空比50%。数码管串行扫描电路:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P14 IS PORT(clk,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); countout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END GKY07P14;ARCHITECTURE behave OF GKY07P14 IS SIGN

18、AL q_temp:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL cnt:INTEGER RANGE 0 TO 5;BEGIN p1:PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF(cnt=5)THEN cnt=0; ELSE cnt=cnt+1; END IF; END IF; END PROCESS; p2:PROCESS(cnt) BEGIN IF(clear=0)THEN countcount=101111;q_tempco

19、unt=110111;q_tempcount=111011;q_tempcount=111101;q_tempcount=111110;q_tempcount=011111;q_temp=1111110; END CASE; END IF; END PROCESS; countout=count; q=q_temp;END behave; 先用05六进制计数器产生六个计数状态,这六个状态同时决定二极管点亮的数字和数码管接通的电路,在时钟信号频率很高的时候可以同时显示05六个数字。只是在下载到实验板的时候与芯片的各个引脚一定要对应,不然容易达不到实验要求。数码管滚动显示电路:LIBRARY IE

20、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P14 IS PORT( clk,clear:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); countout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END GKY07P14;ARCHITECTURE behave OF GKY07P14 IS SIGNAL q_temp:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL count:STD_L

21、OGIC_VECTOR(5 DOWNTO 0); SIGNAL cnt,cnt1:INTEGER RANGE 0 TO 5; SIGNAL tmp:INTEGER RANGE 0 TO 1999; signal clk1:STD_LOGIC;BEGIN p0:PROCESS(clk,clear) BEGIN IF clear=0 THEN tmp=0; ELSIF clkEVENT AND clk=1 THEN IF tmp=1999 THEN tmp=0; ELSE tmp=tmp+1; END IF; END IF; END PROCESS p0; p1:PROCESS(tmp) BEGI

22、N IF clkEVENT AND clk=1 THEN IF tmp1000 THEN clk1=0; ELSE clk1=1; END IF; END IF; END PROCESS p1; p2:PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN IF(cnt=5)THEN cnt=0; ELSE cnt=cnt+1; END IF; END IF; END PROCESS p2; p3:PROCESS(clk1) BEGIN IF(clk1EVENT AND clk1=1)THEN IF(cnt1=5)THEN cnt1=0; ELSE cnt1=cnt1+1; END IF; END IF; END PROCESS p3; p4:PROCESS(cnt,cnt1) BEGIN IF(clear=0)THEN q_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_temp=0000000; END CASE; END IF; END PROCESS p4; q=q_temp; p5:PROCESS(cnt) BEGIN IF(clear=0)THEN countcountcountcountcount=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1