三峡大学 CPLD与电子CAD报告_第1页
三峡大学 CPLD与电子CAD报告_第2页
三峡大学 CPLD与电子CAD报告_第3页
三峡大学 CPLD与电子CAD报告_第4页
三峡大学 CPLD与电子CAD报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、CPLD与电子CAD报告班 号: 序 号:学 号:姓 名: 同组同学姓名:三峡大学电气与新能源学院CPLD及电子CAD第一章 VHDL中的进程、信号与变量1.VHDL中的基本单元结构及基本内容:1.Entity(实体):像一个黑盒子一样,用来说明模型外部的输入输出特征2.Architecture(构造体):用来定义模型的内容和功能,每一个构造体必须有一个实体与它相对应,所以两者一般成对出现;3.Generic(类属参量):规定端口的大小、实体中子元件的数目等;4.Ports(端口):是实体的一部分,主要用于信号的传输;常见的端口类型有IN(数据只能进实体),OUT(数据只能流出实体),INOU

2、T(即可流进又可流出),BUFFER(数据流进实体同时可被反馈);5.数据类型:BIT(位类型,只取0或1);BIT_VECTOR(位矢量类型,包含一组位类型)6.Std_Logic数据类型:电路中有三态逻辑必须用std_logic和std_logic_vector;7.构造体:描述实体的内部结构和逻辑功能,和实体相联系,一个实体可以有多个构造体,构造体的运行时并发的;2.进程:进程语句是VHDL中最重要的语句,具有并行和顺序行为的双重性,其特点主要有:1.进程和进程语句之间是并行的关系;2.进程内部是一组连续执行的顺序语句;3.进程语句与结构体中的其余部分进行信息交流是靠信号来完成的;4.一

3、个构造体可以有多个进程语句;5.进程的基本格式:【进程标号:】PROCESS(信号敏感表)ISBEGINEND PROCESS进程标号;6.进程举例library ieee;use ieee.std_logic_1164.all;entity if_case_53_54 is port(a,b,c,d: in std_logic;sel : in std_logic_vector (1 downto 0);y,z:out std_logic);end if_case_53_54;architecture logic if_case_53_54 isbeginif_label:process(a

4、,b,c,d,sel)beginif sel=00 then y=a;elsif sel=01 then y=b;elsif sel=10 then y=c;else yzzzzz=0;end case;end process case_label;end logic;7.其仿真波形为3.信号 (一种重要的数据对象) :信号是描述硬件系统的基本数据对象,它的性质类似于连接线。它可以代表连线、内连元件、或端口。用“=”来给信号赋值。信号可以作为实体中进程模块之间的信息交流媒介,信号存在于进程外。信号定义的语句格式与变量相似,信号定义也可以设置初始值。在进程中只能将信号列入敏感表,而不能将变量列入

5、敏感表。信号的定义格式: SIGNAL 信号名: 数据类型:=初始值;信号的赋值语句表达式: 目标信号名 = 表达式;/*这里的表达式可以是一个运算表达式,也可以是数据对象(变量、信号或常量)*/4.变量的定义及特点:1.变量是一个局部量,只能在进程和子程序中使用。2.必须在进程和子进程的说明性区域说明。3.不能表达连线和存储元件。变量的主要作用是在进程中作为临时的数据存储单元。4.定义变量的一般表述:WARIABLE 变量名 :数据类型 := 初始值;5.变量赋值的一般表述为:目标变量名 := 表达式; 因此,变量赋值符号是“:=”,变量数值的改变是通过变量赋值来实现的。赋值语句右方的“表达

6、式”必须是一个与“目标变量名”具有相同数据类型的数据,这个表达式可以是一个运算表达式,也可以是一个数值。5.信号与变量的区别(如下表):比较对象信号SIGNAL变量VARIABLE赋值符号=:=适用范围在整个结构体内的任何地方都能适用只能在所定义的进程中使用基本用法用于作为电路中的信号连线用于作为进程中局部数据存储单元行为特征在进程的最后才对信号赋值,有延迟立即赋值,无延迟6.举例说明程序功能:以上是一个信号的例子,a和b相或得e,c和d相或得f,然后e和f相与得到输出g。其中e和f是在构造体内部声明的内部连接信号。第二章 并行语句、顺序语句1.并行语句 1.在VHDL中,并行语句有多种语句格

7、式,包括:并行信号赋值语句、进程语句、块语句、条件信号赋值语句、元件例化语句,生成语句,并行过程调用语句。2.并行信号赋值语句:它包括简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。3.并行语句的优点:并行语句是硬件描述语言与一般软件程序的最大区别所在,所以并行语句在结构体中的执行都是同时进行的,即他们的执行顺序与语句的书写的先后顺序无关。这种并行性是由硬件本身的并行性所决定的,即电路接通电源,它的各部分就会按照事先设计好的方案同时工作。4.并行语句有with_select_then,when_else,if_then_else和case_when四种。例如 With s select

8、x=a when “00”, b when “01”, c when “10”, d when others; 这是with_select_then语句,该语句的作用是当s分别为“00”“01”“10”时,对应把a,b,c赋值给x,否则把d赋值给x。2.顺序语句 1.每一条语句的执行顺序与其书写顺序一致。2.顺序语句只能出现在进程、函数和过程中。3.顺序语句包括:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句。4.顺序语句举例:程序如下业截图程序调试步骤:选择file-new,然后选择waveform Editorfile,再从下拉列表中选择.扩展名,并按ok,即可创建

9、一个新的无标题的文件,保存并修改名称。 选择file,在出现的对话框中输入,按,则设置了结束时间;选择,输入,按;选择菜单项选中框中和项,选择,选择按钮,按根据需要编辑波形。程序工作原理:程序中进程里的是顺序语句,既有信号又有变量,由于赋值无延迟,而变量赋值有延迟,因此当为时,最终的输出()为程序截图:仿真波形截图:输出()为.3、第三章 循环语句、双向口.循环语句.循环语句的基本格式为:LOOP标号:重复模式LOOP顺序语句;END LOOP LOOP标号举例说明:for i in 7 downto 4 loopshift_var(i):= shift_var(i-4);end loop;该

10、语句的作用是当i=4,5,6,7时,执行顺序语句shift_var(i):= shift_var(i-4)。.双向口双向口申明的格式为:双向口标号:INOUT 数据类型;.双向口既可以作为输入也可以作为输出。双向端口在完成输入功能时,必须使原来成输出模式的端口成高阻态,否则,待输入的外部数据势必会与端口处原有电平发生“线与”,导致无法将外部数据正确的读入,从而实现“双向”的功能。波形仿真过程为:MAX+plus II Waveform Editor (Options Grid Size 50ms) Node Enter Nodes from SNF List 给定输入信号高低电平 XC选中所有

11、输入信号,点击右键 Enter Group ,可以创建组。循环语句程序仿真截图:.双向口举例程序:ENTITY ldcnt IS PORT (clk, ld, oe: IN std_logic;count: INOUT std_logic_vector(7 DOWNTO 0);END ldcnt; ARCHITECTURE archldcnt OF ldcnt ISSIGNAL int_count: std_logic_vector(7 DOWNTO 0); BEGINcnt: PROCESS (clk)BEGINIF rising_edge(clk) THENIF ld=1 THEN int

12、_count = count; ELSE int_count = int_count + 1;END IF;END IF;END PROCESS cnt ;outen: PROCESS (oe, int_count) BEGINIF oe = 1 THEN count = int_count ; ELSE count Z) ; END IF ;END PROCESS outen;END archldcnt; 双向口仿真波形如下图:4、第四章 数字钟综合设计一、实验目的:1.掌握多位计数器相连的设计方法;2.掌握十进制,六进制,二十四进制计数器的设计方法;3.继续巩固多位共用级扫描显示数码管的驱

13、动及编码;4.掌握扬声器的驱动;5.LED灯的花样显示;6.掌握EPLD技术的层次化设计方法。7.能将数字钟的各个单元电路组合成整机电路。8.会装配和调试数字钟电路。9.会制作分频电路。10.会用中规模集成电路制作出组合逻辑电路和时序逻辑电路。二、实验原理1.这里用到了状态机,六十、二十四进制的计数器,分频器等。2.在同一EPLD 芯片EP1K30TC144-1 上集成了如下电路模块:时钟计数: 秒60 进制BCD 码计数分60 进制BCD 码计数时24 进制BCD 码计数同时计数器有清零、调分、调时功能。在整数时间能提供报时信号。具有驱动8 位八段共阴极扫描数码管的片选驱动信号输出和八段字形

14、译码输出。扬声器在整点时有报时驱动信号产生。此设计任务分成若干模块,规定每一块的功能和各模块之间的接口。先分做和调试其中之一,然后再将各模块联合起来联试。对于不同目录下的同一设计,模块说明如下:各种进制的计数及时钟控制模块;扫描分时显示,译码模块;扬声键编码模块;微秒功能;闹钟功能;3.由程序生成元件的过程:MAX+plus II Graphic Editor 点击右键 Enter Symbol 选择要生成元件的程序。4.状态机用来切换数字钟的三种功能,程序如下:library ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsign

15、ed.all; entity state_out_53_54 is port(clk,clr:in std_logic; sel:in std_logic_vector(1 downto 0); hml,hmy,mmg,mms,smg,sms,sfg,sfs,ssg,sss,dfg,dfs,dsg,dss: in std_logic_vector(3 downto 0); mg,ms,fg,fs,sg,ss:out std_logic_vector(3 downto 0); speaker_control:out std_logic); end state_out_53_54;ARCHITEC

16、TURE arch_1 OF state_out_53_54 ISTYPE clock_states IS (shizhong, dingshi, miaobiao); SIGNAL sm: clock_states;BEGINfsm: PROCESS (clk, clr)BEGIN IF clr = 1 THEN sm IF sel=01 THEN sm IF sel=10 THEN sm IF sel=00 THEN sm sm = shizhong;END CASE;END IF; END PROCESS fsm;mg = smg WHEN (sm = shizhong) ELSE hm

17、l WHEN (sm = miaobiao) ELSE 0000; ms = sms WHEN (sm = shizhong) ELSE hmy WHEN (sm = miaobiao) ELSE 0000; fg = sfg WHEN (sm = shizhong) ELSE dfg WHEN (sm = dingshi) ELSE mmg WHEN (sm = miaobiao) ELSE 0000; fs = sfs WHEN (sm = shizhong) ELSE dfs WHEN (sm = dingshi) ELSE mms WHEN (sm = miaobiao) ELSE 0

18、000; sg = ssg WHEN (sm = shizhong) ELSE dsg WHEN (sm = dingshi) ELSE 0000; ss = sss WHEN (sm = shizhong) ELSE dss WHEN (sm = dingshi) ELSE 0000; speaker_control =1 WHEN (sss=dss and ssg=dsg and sfs=dfs and sfg=dfg) ELSE 0;END arch_1;5.六十进制计数器用作秒和分,二十四进制的用作小时,六十进制的程序如下:library ieee;use ieee.std_logic

19、_1164.all;use ieee.std_logic_signed.all;entity C60_53_54 is port(clk,clr,en: in std_logic; carry : out std_logic; ge,shi : out std_logic_vector(3 downto 0); end C60_53_54; architecture one of C60_53_54 issignal s,g :std_logic_vector(3 downto 0);begin process(clk,clr,en,s,g) begin if clr=1 then s=000

20、0;g=0000; elsif clkevent and clk=1 then if en=0 then if s=5 and g=1001 then s=0000;g=0000; carry=1; elsif g=1001 then - and s6 then s=s+1;g=0000; else g=g+1;carry=0; end if; end if; end if; end process; ge=g; shi=s; end; 六十进制仿真波形截图: 6.二十四进制程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_log

21、ic_signed.all;entity C24_53_54 IS port(clk,clr,en: in std_logic; carry : out std_logic; ge,shi : out std_logic_vector(3 downto 0); end C24_53_54; architecture one of C24_53_54 issignal s,g :std_logic_vector(3 downto 0);begin process(clk,clr,en,s,g) begin if clr=1 then s=0000;g=0000; elsif clkevent a

22、nd clk=1 then if en=0 then if s=2 and g=0011 then s=0000;g=0000; carry=1; elsif g=1001 then - and s2 then s=s+1;g=0000; else g=g+1;carry=0; end if; end process; ge=g;shi=s;end; 7.驱动蜂鸣器程序截图:8.数字钟综合结果截图(由于一个图放不下,分两图):9.实验完成的效果:1.可清零;2.微秒为00-99一百进制计数器,秒分为00-59六十进制计数器,时为00-23二是进制计数器;3.可手动校正分时,1键清零,2键暂停,

23、5键调秒,6键调分,7键调时,8键调节三种状态;4.计时过程具有报时功能,当时间达到整点时报时,当达到整分时报时。 第五章Protel原理图、PCB图一、实验目的:a) 初步掌握PROTE199 软件的使用;b) 了解由555 组成多谐振荡器,555 组成单稳态触发器。二、实验原理:多谐振荡器的工作原理如下:当工作电源接通后,通过R1、R2 对电容C1 充电,当VC 上的电压上升到2/3V1 时,RS 触发器复位,输出为0,同时,内部放电三极管导通,C1 通过R2、T(555 内部)放电,当VC 下降到1/3V1 时,RS 触发器置位,输出为1。三、实验步骤:1.设计电路原理图,包括装入元器件库,放置及调整元器件位置,编辑元器件属性,绘制原理图;2.电路图的后期处理,包括检查电路原理图,电路原理

温馨提示

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

评论

0/150

提交评论