cpld实验报告带程序版

cpld实验报告带程序版
cpld实验报告带程序版

实验一 MAX+plusⅡ开发工具使用

一、实验内容

通过实验掌握对MAX+plusⅡ开发工具使用,使用AHDL语言设计逻辑运算电路:七段译码器。

二、实验目的

学习利用MAX+plus II 进行可编程逻辑器件电路设计的过程,包括输入、编译和仿真等,熟悉开发板各接口及LED显示。

三、实验要求

上机操作,通过简单的实例,学会使用MAX+plus II的文本编辑器及进行电路设计以仿真验证的方法,能够将程序下载到开发板观察现象。

四、实验仪器

安装了MAX+plus II的PC机一台及开发板一套。

五、实验步骤

1、在PC上使用MAX+plus II编写程序,程序如下:

SUBDESIGN yimaqi

(

D[3..0] : INPUT ;

S[6..0],led1,led2,led3,led4,led5,leddt : OUTPUT;

)

BEGIN

led1=vcc; led2=gnd; led3=gnd;

led4=gnd; led5=gnd; leddt=gnd;

TABLE

D[3..0] => S0,S1,S2,S3,S4,S5,S6;

H"0" => 1, 1, 1, 1, 1, 1, 0;

H"1" => 0, 1, 1, 0, 0, 0, 0;

H"2" => 1, 1, 0, 1, 1, 0, 1;

H"3" => 1, 1, 1, 1, 0, 0, 1;

H"4" => 0, 1, 1, 0, 0, 1, 1;

H"5" => 1, 0, 1, 1, 0, 1, 1;

H"6" => 1, 0, 1, 1, 1, 1, 1;

H"7" => 1, 1, 1, 0, 0, 0, 0;

H"8" => 1, 1, 1, 1, 1, 1, 1;

H"9" => 1, 1, 1, 1, 0, 1, 1;

H"A" => 1, 1, 1, 0, 1, 1, 1;

H"b" => 0, 0, 1, 1, 1, 1, 1;

H"c" => 1, 0, 0, 1, 1, 1, 0;

H"d" => 0, 1, 1, 1, 1, 0, 1;

H"E" => 1, 0, 0, 1, 1, 1, 1;

H"F" => 1, 0, 0, 0, 1, 1, 1;

END TABLE;

END;

2、在Assign菜单中选择Device选项,选择MAX7000S系列的EPM7128SLC84-7芯片,并编辑引脚信息。引脚对应如表1.1:

表1.1 引脚对应表

3、保存并编译,产生yimaqi.pof 文件加载到pof2jed对话框中,其它不需设置,点击“RUN”按钮,即可在同文件夹目录下,生成yimaqi.jed文件。

4、将转换好的yimaqi.jed文件,下载到双龙SL-MCU/CPLD型实验板上。界面中选择File菜单,选择New,点击OK。设置JTAG为Program/Verify。选择文件目录下的yimaqi.jed,点击OK,并保存在同文件夹目录下,命名为yimaqi.chn。并将程序烧录进入开发板上的CPLD中。

5、通过开发板上的四位拨动键,输入0000 ~ 1111十六个二进制数,观察LED显示屏上显示的数字是否正确。

六、实验结果

输入与输出理论对应表如表1.2。

表1.2 输入输出理论对应表

经过验证,输入输出完全附和表1.2,即程序运行成功。

七、心得体

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

CPLD可编程数字信号发生器实验

课程: 通信原理 CPLD可编程数字信号发生器实验报告 系电子信息与计算机科学系 专业电子信息科学与技术 班级 姓名 学号 指导教师 实验地点 学年学期

一、实验目的 1、熟悉各种时钟信号的特点及波形。 2、熟悉各种数字信号的特点及波形。 二、实验内容 1、熟悉CPLD可编程信号发生器各测量点波形。 2、测量并分析各测量点波形及数据。 三、实验模块 1、通信原理0 号模块一块 2、示波器一台 四、实验原理 CPLD可编程模块用来产生实验系统所需要的各种时钟信号和各种数字信号。它由CPLD可编程器件ALTERA公司的EPM240T100C5、下载接口电路和一块晶振组成。晶振JZ1用来产生系统内的32.768MHz主时钟。本实验要求参加实验者了解这些信号的产生方法、工作原理以及测量方法,才可通过CPLD可编程器件的二次开发生成这些信号,理论联系实验,提高实际操作能力。 1、CPLD数字信号发生器,包括以下五个部分: ①时钟信号产生电路; ②伪随机码产生电路; ③帧同步信号产生电路; ④NRZ码复用电路及码选信号产生电路; ⑤终端接收解复用电路。 2、24位NRZ码产生电路 本单元产生NRZ信号,信号速率可根据输入时钟不同自行选择,帧结构如下图所示。帧长为24位,其中首位无定义,第2位到第8位是帧同步码(7位巴克码1110010),另外16路为2路数据信号,每路8位。此NRZ信号为集中插入帧同步码时分复用信号。LED亮状态表示1码,熄状态表示0码。 五、实验步骤 1、观测时钟信号输出波形。 信号源输出两组时钟信号,对应输出点为“CLK1”和“CLK2”,拨码开关S4的作用是改变第一组时钟“CLK1”的输出频率,拨码开关S5的作用是改变第二组时钟“CLK2”的输出频率。拨码开关拨上为1,拨下为0,拨码开关和时钟的对应关系如下表所示拨码开关时钟拨码开关时钟 000032.768M1000128K 000116.384M100164K 00108.192M101032K 0011 4.096M101116K

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

11级电路分析基础实验报告

11级电路分析基础实验报告 篇一:电路分析基础实验 实验一:基尔霍夫定理与电阻串并联 一、实验目的 学习使用workbench软件,学习组建简单直流电路并使用仿真测量仪 表测量电压、电流。 二、实验原理 1、基尔霍夫电流、电压定理的验证。 解决方案:自己设计一个电路,要求至少包括两个回路和两个节点, 测量节点的电流代数和与回路电压代数和,验证基尔霍夫电流和电压 定理并与理论计算值相比较。 2、电阻串并联分压和分流关系验证。 解决方案:自己设计一个电路,要求包括三个以上的电阻,有串联电 阻和并联电阻,测量电阻上的电压和电流,验证电阻串并联分压和分 流关系,并与理论计算值相比较。 三、实验数据分析 1、基尔霍夫电流、电压定理的验证。

测量值验证 (1)对于最左边的外围网孔,取逆时针为参考方向得:U1-U2-U3?20V-8.889V-11.111V?0故满足KVL。 (2)对于最大的外围网孔,取逆时针为参考方向得: U1?I5?R3-U2?20V?(-0.111?100)V-8.889V?0 (3)对于节点4,取流进节点的电流方向为正得: -I1?I2?I3?(--0.444)A?(-0.222)A?(-0.222)A?0 (4)对于节点7,取流进节点的电流方向为正得: -I3?I4?I5?(--0.222)A?(-0.111)A?(-0.111)A?0 理论计算值 U1?I1?(R1?R2//R3//R4) IU1204 1?(R?A?A 1?R2//R3//R4)459 I3//R4 2?R RR?I?1?4A?2 1A 2?R3//4299 I(I422 3?1-I2)?(9-9)A?9A IR1 312

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

计算机组成原理实验报告

实验报告书 实验名称:计算机组成原理实验 专业班级:113030701 学号:113030701 姓名: 联系电话: 指导老师:张光建 实验时间:2015.4.30-2015.6.25

实验二基本运算器实验 一、实验内容 1、根据原理图连接实验电路

3、比较实验结果与手工运算结果,如有错误,分析原因。 二、实验原理 运算器可以完成算术,逻辑,移位运算,数据来自暂存器A和B,运算方式由S3-S0以及CN来控制。运算器由一片CPLD来实现。ALU的输入和输出通过三态门74LS245连接到CPU内总线上。另外还有指示灯进位标志位FC和零标志位FZ。 运算器原理图: 运算器原理图 暂存器A和暂存器B的数据能在LED灯上实时显示。进位进位标志FC、零标志FZ 和数据总线D7…D0 的显示原理也是如此。 ALU和外围电路连接原理图:

ALU和外围电路连接原理图运算器逻辑功能表:

三、实验步骤 1、按照下图的接线图,连接电路。 2、将时序与操作台单元的开关KK2 置为‘单拍’档,开关KK1、KK3 置为‘运行’档。 3、打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。然后按动CON 单元的CLR 按钮,将运算器的A、B 和FC、FZ 清零。 4、用输入开关向暂存器A 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数01100101 (或其它数值),数据显示亮为‘1’,灭为‘0’。 ②置LDA=1,LDB=0,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数01100101 置入暂存器A 中,暂存器A 的值通过ALU 单元的 A7…A0 八位LED 灯显示。 5、用输入开关向暂存器B 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数10100111 (或其它数值)。 ②置LDA=0,LDB=1,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数10100111 置入暂存器B 中,暂存器B 的值通过ALU 单元的 B7…B0 八位LED 灯显示。 6、改变运算器的功能设置,观察运算器的输出。置ALU_B=0 、LDA=0、LDB=0,然后按表2-2-1 置S3、S2、S1、S0 和Cn的数值,并观察数据总线LED 显示灯显示的结果。如置S3、S2、S1、S0 为0010 ,运算器作逻辑与运算,置S3、S2、

VHDL课程设计PS键盘

目录 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用;

(2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器; 8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。 三、课程设计的内容与要求 1、设计内容 (1)系统功能的分析; (2)实现系统功能的实际方案; (3)编写各功能模块的VHDL语言程序; (4)对各功能模块进行编译、综合、仿真、分析; (5)顶层文件设计 (6)对整个系统进行编译、综合、仿真、分析; (7)在CPLD\FPGA实验开发系统试验箱上进行硬件验证; (8)写实验报告;

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

11级建筑《建筑工程测量》实验报告(学生) 2

建筑工程测量 实验报告 专业 年级 班级 学号 姓名 2013年月日 实验报告一

日期 20131013 班组学号姓名 ㈠完成下列填空 1.安置仪器后,转动脚螺旋使圆水准器气泡居中,转动 目镜看清十字丝,通过缺口和准星瞄准水准尺,转动微动螺旋精确照准水准尺,转动调焦镜消除视差,转动微倾螺旋使符合水准器气泡居中,最后读数。 2.消除视差的步骤是转动目镜使十字丝清晰,再转动 调焦镜使目标清晰。 ㈡实验记录和计算 1.记录水准尺上读数填入表1-1中。 表1-1 2.计算(注:依据[黑+(红-K)]/2的结果数据) ⑴ A点比B点(高、低)高 m。 ⑵ A点比C点(高、低)低 m。 ⑶ B点比C点(高、低)低 m。 ⑷假设C点的高程H C= 136.785 m,求A点和B点的高程,即:

A A= -265.715 m, H B= -471.715 m,水准仪的视线高程H I= 1019.785 m。 ㈢写出图1-1中水准仪各部件的名称 图1-1 1)目镜;2)望远镜物镜; 3)水准管;4)水平微动螺旋; 5)圆水准器;6)校正螺丝; 7)水平制动螺旋;8)准心; 9)脚螺旋;10)微倾螺旋; 11)水平微动螺旋;12)物镜对光螺旋; 13)缺口;14)三角架。 实验报告二水准测量 日期班组学号姓名 ㈠水准测量的外业记录及其高程计算 实验数据记入表2-1,进行高程的计算,并进行验算,以确保各项计算准确无误。 表2-1 水准测量的外业记录及其高程计算

续表

㈡水准测量的内业整理及待测点的高程计算将表2-1的计算结果填入表2-2,求各个待定点的高程 表2-2 各待定点高程的计算

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

CPLD课程实验报告

CPLD课程学习报告 八周的CPLD及电子CAD实验结束了,回忆着过去八周的学习,收获很多。这八周的学习,是我从一个对CPLD完全没有概念的人变得能完成数字时钟及其扩展,其中虽然遇到了很多困难,但当困难被克服,实验结果出来是的喜悦是难以言状的。下面,分别讲述这八次课的收获和心得。 学习上,学到了知识,肯定是不小的收获,但在学习之外,我也收获了很多,首先,做实验的时候是既有分组又有合作的的,说道合作,我们了解了一个团队协作的重要性,开始的时候,由于和搭档不认识,出现过一些矛盾,但后来,我们明白了,只有协作,才能更好的完成一项工作。所以,这是我的一个很重要的收获。 回归正题,讲讲学习的收获。 首先,实验所使用的软件是:MAX+PLUSII,共完成了数字时钟及其调时,整点报时,秒表和闹钟的应用等,分别应用了文字及图形的编程方法,将所设计的电路功能下载到EPIK30TC144-1器件,以实现我们所需要的功能。 数字时钟可实现的功能 1、时、分、秒六位数码管显示(标准时间23点59分59秒); 2、具有小时、分钟校准功能; 整点报时:55,56,57,58,59低音响,整点高音,间断振铃(嘟--嘟--嘟--嘟--嘟--嘀)。

3、跑表:最大计时99秒99毫秒。独立的跑表功能,不影响数字钟正常工作。 4、定时闹钟:可在00:01到23:59之间由用户设定任一时间,到时报警。 第一课:10进制、6进制计数器 对于以上计数器,采用VHDL代码书写,(截屏如下) 图一:10进制VHDL文本 在书写VHDL文本时,应当注意文字的准确性和无错误,最值得注意的是:保存文本时应注意其文件扩展名一定要为VHD,且要注意前后文件明要保持一致。文本通过调试无错误后,接着要分配管脚, 启动MAX+PLUS~Floorplan Editor菜单命令,分别通过老师所给的管

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

CPLD实验报告计数器及时序电路

内蒙古工业大学信息工程学院实验报告 课程名称: CPLD/FPGA 应用开发技术 实验名称:组合逻辑电路的设计 实验类型:验证性□ 综合性□ 设计性■ 实验室名称:信息学院机房 班级:电子09-1班学号:200920203061 姓名:张佳兴组别: 同组人:成绩: 实验日期: 2012年5月2日

预习报告成绩:指导教师审核(签名):年月日 预习报告 实验二计数器及时序电路 一、实验目的: 1、了解时序电路的VHDL语言设计方法。 2、了解同步计数器的使用方法。 3、理解时序电路和同步计数器加译码电路的联系,设计任意编码计数器。 二、实验设备: 1、PC机 2、EDA实验箱(主芯片是ALTERA EPM7128SLC84-15)。 三、实验内容: 1、用VHDL语言输入法设计一个同步四位二进制加法计数器和六进制同步计 数器。 2、用74LS161两个宏连接成八位二进制同步计数器。 3、用74LS161宏,同时采用清零和置数法组成六进制和十二进制计数器。 四、实验步骤: 1、采用文本编辑器输入VHDL语言源程序,或采用原理图输入法从MF库中 调用器件74161,生成原理图,之后建立工程。 2、编译。 3、仿真。 4、对芯片进行编程。 5、根据管脚分配情况连线。 (1)根据芯片特点,管脚分配时一般将时钟信号分配给83脚,复位信号分配给1脚。若有使能信号,使能信号分配给84脚。 (2)时钟信号的连接:将实验板上提供的时钟与芯片的83脚相连。 (3)复位信号的连接:将实验板上的某按键开关输出与芯片的1脚相连。 (4)将计数器的输出端分别与LED灯相连。 6、按动复位键,观察实验结果。 7、改变输入时钟信号的频率,观察实验结果。

EDA综合课程设计实验报告

EDA综合课程设计实验报告 题目:设计一个全双工UART电路院系:XXXX学院 学号:XXXXX 姓名:严XX 教师:林XX 时间:2012.06.02

1 课程设计的摘要原理 (2) 2 设计一个全双工UART电路,具体要求如下: (6) 3.UART设计 (7) 3.1 UART结构 (7) 3.2 UART的帧格式 (8) 4 UART的Verilog HDL语言设计 (9) 4.1 UART分频器 (9) 4.2UART发送模块 (10) 4.3 UART的接收模块 (14) 4.4 UART的硬件测试 (18) 5 课程设计总结 (19)

1摘要 UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。 实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。这样,既可以满足实际的应用,实现所要求的简单的通信和控制,又能够去除更多不需要的繁杂复杂的功能实现。 一、UART的原理 串行通信是指外部设备和计算机间使用一根数据线(另外需要地线,可能还需要控制线)进行数据传输的方式。数据在一根数据线上一位一位传输,每一位数据都占据一个固定的时间长度。与并行通信方式相比,串行通信方式的传输速度较慢,但这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,因此得到了广泛的应用。 基本的UART只需要发送和接收两条数据线就可以完成数据的全双工通信,其基本功能是在发送端将控制器通过总线传过来的并行数据,以设定的格式,设定的频率串行地传输出去,并同时在接收端将串行接收到的数据,转换成相应的并行数据发送出去。UART的基本帧格式如图1所示。其中,起始位总是逻辑O状态,停止位总是逻辑l状态,其持续时间可选为1位、1.5位或2位,其数据位可为5、6、7、8位,校验位可根据需要选择奇校验位,偶校验位或无校验位。

10-11-2实验报告(答案)

《C程序设计》实验报告 学期:2010--2011学年第二学期 教师姓名: 教研室:

实验1 熟悉C语言程序的运行环境,掌握数据描述 实验目的 1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。 2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。 3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。 实验预习 1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。 2.了解下列命令及函数:include<>、main、printf、scanf。 3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。 4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。 int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。 6.常量与变量的区别和联系。 运行环境: 1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio ——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\"。 2.单击“文件”菜单的“新建”命令。 3.在打开的“新建”对话框中选择“文件”标签。 4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如,单击确定按钮。如图所示:

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

实验九 QPSK调制与解调实验报告

实验九QPSK/OQPSK 调制与解调实验 一、实验目的 1、了解用CPLD 进行电路设计的基本方法。 2、掌握QPSK 调制与解调的原理。 3、通过本实验掌握星座图的概念、星座图的产生原理及方法,了解星座图的作用及工程上的作用。 二、实验内容 1、观察QPSK 调制的各种波形。 2、观察QPSK 解调的各种波形。 三、实验器材 1、信号源模块 一块 2、⑤号模块 一块 3、20M 双踪示波器 一台 4、 连接线 若干 四、实验原理 (一)QPSK 调制解调原理 1、QPSK 调制 QPSK 信号的产生方法可分为调相法和相位选择法。 用调相法产生QPSK 信号的组成方框图如图12-1(a )所示。图中,串/并变换器将输入的二进制序列依次分为两个并行的双极性序列。设两个序列中的二进制数字分别为a 和b ,每一对ab 称为一个双比特码元。双极性的a 和b 脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制,得到图12-1(b )中虚线矢量。将两路输出叠加,即得如图12-1(b )中实线所示的四相移相信号,其相位编码逻辑关系如表12-1所示。 (a ) a(0)b(0) b(1) a(1) (b ) 图12-1 QPSK 调制 /并变换。串/并变换器将输入的二进制序列分为两个并行的双极性序列110010*********和

111101*********。双极性的a 和b 脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制,然后将两路输出叠加,即得到QPSK 调制信号。 2、QPSK 解调 图12-2 QPSK 相干解调器 由于四相绝对移相信号可以看作是两个正交2PSK 信号的合成,故它可以采用与2PSK 信号类似的解调方法进行解调,即由两个2PSK 信号相干解调器构成,其组成方框图如图12-2所示。图中的并/串变换器的作用与调制器中的串/并变换器相反,它是用来将上、下支路所得到的并行数据恢复成串行数据的。 (二)OQPSK 调制解调原理 OQPSK 又叫偏移四相相移键控,它是基于QPSK 的改进型,为了克服QPSK 中过零点的相位跃变特性,以及由此带来的幅度起伏不恒定和频带的展宽(通过带限系统后)等一系列问题。若将QPSK 中并行的I ,Q 两路码元错开时间(如半个码元),称这类QPSK 为偏移QPSK 或OQPSK 。通过I ,Q 路码元错开半个码元调制之后的波形,其载波相位跃变由180°降至90°,避免了过零点,从而大大降低了峰平比和频带的展宽。 下面通过一个具体的例子说明某个带宽波形序列的I 路,Q 路波形,以及经载波调制以后相位变化情况。 若给定基带信号序列为1 -1 -1 1 1 1 1 -1 -1 1 1 -1 对应的QPSK 与OQPSK 发送波形如图12-3所示。 1-1-11111-1-111-1111-11-111-11-1-111-11-1 基基基基I 基基Q P S K ,O Q P S K Q 基基 Q P S K Q 基基O Q P S K -1 图12-3 QPSK,OQPSK 发送信号波形 图12-3中,I 信道为U (t )的奇数数据单元,Q 信道为U (t )的偶数数据单元,而OQPSK 的Q 信道与其I 信道错开(延时)半个码元。 QPSK ,OQPSK 载波相位变化公式为 {}()33arctan ,,,()44 44j i j i Q t I t ππ?ππ? ????? =--???? ?????? ?@ QPSK 数据码元对应的相位变化如图12-4所示,OQPSK 数据码元对应相位变化如图 12-5所示

相关文档
最新文档