中国地质大学EDA实验报告.doc_第1页
中国地质大学EDA实验报告.doc_第2页
中国地质大学EDA实验报告.doc_第3页
中国地质大学EDA实验报告.doc_第4页
中国地质大学EDA实验报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

EDA实验报告 基础实验实验一 组合逻辑设计一、 实验目的:1、通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法。2、掌握组合逻辑电路的静态测试方法。3、初步了解quartusII原理图输入设计的全过程。二、实验的硬件要求:1、主芯片:EP1K10TC10032、输出:八个LED灯3、输入:DIP拨码开关3位三、实验器材: 试验箱四、实验原理: 三八译码器三输入,八输出。当输入信号按二进制方式的表示为N时,输出端从零标记到八。因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位有效的情况下,能表示所有的输入组合。3-8译码器真值表输入输出A2 A1 A0Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0 0 0 0 0 0 1 0 0 0 0 0 0 1 00 0 0 0 0 1 0 00 0 0 0 1 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 1 0 0 0 0 0 01 0 0 0 0 0 0 0五、实验步骤:1、打开quartusII 软件,选择file-new project wizard建立工程,选择器件主芯片:EP1K10TC1003 ,工程文件名为ym,2、新建Block diagram/schematic file程序3、在窗口绘制原理图:单击鼠标右键选择symbol,选择相应原件用鼠标拖入文件中编辑,绘制完成后保存原理图,将程序名改为ym,与工程名相同。4、对程序进行编译,编译无误后,进行波形仿真完成后,进行管脚配置,并将程序下载到实验箱仿真波形5、实验电路连线与实验结果用拨码开关的低三位代表译码器输入,将之与配置好的管脚相连;用led灯代表译码器的输出,将之与配置好的管脚相连。完成连接后,拨动拨档开关,观察led的发光状态与输入状态的对应关系是否与真值表中的情况相同。经观察,led的发光状态符合真值表的描述。六、试验心得试验中对quartus的操作不够熟悉,绘制原理图出现连线错误,以致绘制原理图速度慢。通过实验熟悉了对软件的操作,掌握了建立工程的方法,绘制bdf文件的方法,了解了试验箱的使用。实验二 扫描显示电路的驱动一、实验目的: 了解教学系统中8位七段数码管显示模块的工作原理,设计标准扫描驱动电路模块。二、硬件要求: 主芯片:EP1K10TC100-3,时钟源,八位七段数码显示管,四位拨码开关。三、实验内容:1、用拨码开关产生8421BCD码,用CPLD产生字形编码电路和扫描驱动电路,然后进行仿真,观察波形,正确后进行设计实现。调节时钟频率,感受“扫描”的过程,并观察字符亮度和显示刷新的效果。2、编制一个简单的从0F轮换显示十六进制的电路。四、实验原理: 四位拨码开关提供8421BCD码,经译码电路后成为七段数码管的字形显示驱动信号。扫描电路通过可调时钟输出片选地址SEL3.0。由SEL3.0和AG决定了8位中的哪一位显示和显示什么字形,SEL3.0变化的快慢决定了扫描频率的快慢。五、实验步骤:1、 编写DECL7S实验代码并封装: library ieee;use ieee.std_logic_1164.all;entity decl7s is port(a: in std_logic_vector(3 downto 0); led7s: out std_logic_vector(6 downto 0);end;architecture one of decl7s isbegin process(a)begin case a is when 0000= led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s null; end case; end process;end;实验原理图:在电脑软件上绘制出所要求的图像如下:通过软件得出实验RTL图实验波形仿真图:六、实验结果连接好电路,接入时钟信号,数码管从0-F轮流显示。七、试验心得试验中,学会了程序的封装和调用,学习了8位七段数码管显示模块的工作原理。由于试验进度慢,操作不够熟悉,未能在试验时间内顺利完成实验。实验三 梁祝音乐演奏实验一、实验目的: 1. 了解普通扬声器的工作原理。2. 使用FPGA产生不同的音乐频率。3. 进一步体验FPGA的灵活性。二、实验硬件要求: 1. 375KHz信号源。2. FPGA EP1K10TC1003主芯片。3. 扬声器。三、实验原理:本实验是完成一小段音乐程序的开发,然后再用扬声器进行试听。下面主要介绍一下完成本实验的几个主要部分的工作原理。1、音符的产生:音符的产生是利用计数器对输入的时钟信号进行分频,然后输出不同的频率来控制扬声器发不同的声音。计数器必须是模可变的计数器,也就是其初始计数值可变,这样便可以对其进行初始化,使其从不同的初始值开始计数,实现对输入时钟信号的不同分频。2、节拍的产生:节拍也是利用计数器来实现,如果某一个音符需要维持的时间比较长,那么就可以在此计数器从计数值A到计数值B之间都维持该音符,很显然,A和B之间的间隔越大,那么该音符维持的时间也就越长。3、乐谱的存储:乐谱是一个固定的组合电路,根据不同的输入值,然后输出一个固定的值,该值就是音符产生计数器的分频的初始值。适当的选择这些计数器和组合电路,便可完成不同的乐曲和不同节奏。四、实验内容及步骤:本实验要完成的任务是设计一个驱动扬声器产生梁祝音乐的程序,设计步骤如下:1、打开quartusII,建立工程,选择芯片ACEX1K10TC1003,新建vhdl文件,编写音乐输出的VHDL代码。2、用quartusII对其进行编译仿真。3在仿真确定无误后,对管脚进行配置,再次进行编译。根据已配置的管脚,在实验箱上对扬声器接口和FPGA之间进行正确连线。Clk:时钟输入信号,接375KHz的时钟源。Spk:输出,接扬声器部分的输入端。将程序下载到试验箱,观看实验结果。Vhdl程序 :library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity music isport(clk : in std_logic;spk : buffer std_logic);end music;architecture behave of music issignal tone : std_logic_vector(10 downto 0);signal tone_count : std_logic_vector(10 downto 0);signal tone_index : integer range 0 to 15;signal clk10_count: std_logic_vector(17 downto 0);signal time : integer range 0 to 150;signal clk10 : std_logic;beginprocess(clk10)beginif(clk10event and clk10=1)thenclk10_count=clk10_count+1;if(clk10_count=16#3fff#) thenclk10= not clk10;end if;end if;end process;process(clk10)beginif(clk10event and clk10=1)thenif(time=150) thentime=0;elsetimetone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextone_indextonetonetonetonetonetonetonetonetonetonetonetonetonetone=11111111111;end case;end process;process(clk)beginif(clkevent and clk=1)thenif(tone_count=16#7ff#) thentone_count=tone;if(tone2047) thenspk=not spk;end if;elsetone_count=tone_count+1;end if;end if;end process;end behave;实验RTL图七、实验结果:蜂鸣器奏响梁祝,改变输入的时钟频率,音乐输出也不同。实验八 步进电机控制实验一、 实验目的1、 了解步进电机的工作原理。2、 掌握用FPGA产生驱动步进电机的时序。3、 掌握用FPGA来控制步进电机转动的整个过程。二、 硬件要求1、 步进电机。2、 主芯片FPGA EP1K10TC1003。3、 8个按键和一个拨挡开关。4、 可变时钟源。三、实验原理步进电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杆把角度变为直线位移,也可以用步进电机带动螺旋电位器,调节电压或电源,从而实现对执行机械的控制。四、实验内容及步骤本实验需要完成的任务是编写VHDL代码来驱动步进电机动作,通过拨动开关使其正转、反转;通过按下相应的按键开关使其旋转相应的角度。1、打开quartusII,建立工程,工程名为stepmotor,新建vhdl文件,选择芯片ACEX1K EP1K10TC1003 编写驱动步进电机旋转的VHDL程序。程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity stepmotor isport( clk : in std_logic; key1_8,key5_4,key9 : in std_logic; key18,key45,key90 : in std_logic; key180,key360 : in std_logic; keyorder : in std_logic; astep,bstep : out std_logic; cstep,dstep : out std_logic); end stepmotor;architecture behave of stepmotor issignal dcount : std_logic_vector(4 downto 0); signal degreecount : std_logic_vector(7 downto 0); signal degree : std_logic_vector(7 downto 0); signal abcd : std_logic_vector(1 downto 0); signal clk_temp : std_logic; beginprocess(clk) beginif(clkevent and clk=1) thendcount=dcount+1;end if;end process;process(clk) beginif(clkevent and clk=1) thenif(dcount=11111) thenclk_temp=not clk_temp;end if;end if;end process;process(clk) beginif(clkevent and clk=1) thenif(key1_8=0) thendegree=00000001;elsif(key5_4=0) thendegree=00000011;elsif(key9=0) thendegree=00000101;elsif(key18=0) thendegree=00001010;elsif(key45=0) thendegree=00011001;elsif(key90=0) thendegree=00110010;elsif(key180=0) thendegree=01100100;elsif(key360=0) thendegree0) thendegree0) thendegreecount0) thendegreecount=degreecount-1;abcd=abcd+1;elsedegreecount=00000000;end if;end if;end process;process(clk_temp) beginif(clk_tempevent and clk_temp=1) thenif(keyorder=1) thenif(abcd=0) thenastep=1;bstep=0;cstep=0;dstep=0;elsif(abcd=1) thenastep=0;bstep=1;cstep=0;dstep=0;elsif(abcd=2) thenastep=0;bstep=0;cstep=1;dstep=0;elsif(abcd=3) thenastep=0;bstep=0;cstep=0;dstep=1;end if;elseif(abcd=0) thenastep=1;bstep=0;cstep=0;dstep=0;elsif(abcd=1) thenastep=0;bstep=0;cstep=0;dstep=1;elsif(abcd=2)

温馨提示

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

评论

0/150

提交评论