CPLD课程实验报告
通信原理实验一实验报告 CPLD 可编程数字信号发生器实训
11脚
10脚
9脚
8脚
6脚
5脚
4脚
81脚
80脚
79脚
77脚
76脚
75脚
74脚
73脚
70脚
69脚
68脚
12脚
3.CPLD可编程模块电路
图1CPLD可编程模块电路图
三、
1.打开电源总开关,电源指示灯亮,系统开始工作;
2.用示波器测出下面所列各测量点波形,并对每一测量点的波形加以分析;
(2)CPLD可编程模块组成:ALTERA公司的EPM7128(或Xilinx公司的XC95108)、编程下载接口电路(J101)和一块晶振(OSC1)。
(3)晶振:产生系统内的16.384MHz主时钟。
2.各种信号的功用及波形
(1)CPLD型号为EPM7128由计算机编好程序从J101下载写入芯片,OSC1为晶体,频率为16.384MHz,经8分频得到2.048MHz主时钟。
(2)取样时钟、编码时钟、同步时钟、时序信号还将被接到需要的单元电路中。
(3)PN32kHz、PN2kHz伪随机码的码型均为111100010011010,不同的是码元宽度不一样,PN2kHz的码元宽度T=1/2K=0.5ms,PN32kHz的码元宽度T=0.03125ms。
面板测量点与EPM7128各引脚信号对应关系如下:
五
图21CPLD可编程ຫໍສະໝຸດ 字信号发生器模块512Hz的时钟信号。(图3上)
(4)TP104
256KHz的时钟信号。(图3下)。
图3
(5)TP105
128KHz的时钟信号,作FSK调制模块中产生载波信号。(图4上)
(6)TP106
64KHz的时钟信号,作为FSK调制模块中产生载波信号。(图4下)
cpld实验
实验一基本门电路的设计[实验目的]1.学习MAX+PLUSII 软件的基本操作;2.学习使用原理图、文本文件进行设计输入;3.初步掌握器件设计、编译、仿真和编程的过程;4.学习掌握教学实验板的使用方法;4.学习掌握基本门电路的设计方法;[实验说明]基本门电路主要用来实现基本的输入/输出之间的逻辑关系,包括与门、或门、非门、与非门、或非门、异或门、同或门灯,下面为2输入端与非门的基本门电路的设计。
2输入端与非是组合逻辑电路中的基本逻辑器件,有2个输入端A、B和1个输出端Y。
其真值表如表所示。
2输入端与非门应具备的脚位:输入端:A、B;输出端:Y。
[实验要求]1用原理图方法实现2输入与非门2用VHDL语言实现2输入与非门3设计仿真文件,进行软件验证4通过下载线下载到实验板上进行验证[实验报告要求]1画出原理图2写出VHDL编程语言源文件3给出软件仿真和硬件测试结果4通过下载线下载到实验板上进行验证5写出学习总结附:1.原理图输入与非门原理图输入法的操作步骤介绍如下。
(1)建立新文件:选取窗口菜单File-New,出现对话框,选择Graphic Editor file选项,单击OK按钮,进入图形编辑画面。
(2)保存:选取窗口菜单File-Save,出现对话框,键入文件名nand2.gdf,单击OK按钮(3)指定项目名称,要求与文件名相同:选取窗口菜单File-Project-Name,键入文件名nand2,单击OK按钮。
(4)确定对象的输入位置:在图形窗口内单击鼠标左键。
(5)引入逻辑门:选取窗口菜单Symbol-Enter Symbol,在\Maxplus2\max2lib\prim处双击,在Symbol File菜单中选取NAND2逻辑门,单击OK按钮。
(6)引入输入和输出脚:按步骤(5)选出2个输入端和1个输出脚。
(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚位A、B,输出脚为Y。
关于实验报告cpld
报告要求一.报告用A4纸张打印,报告封面用统一模板(见下页),上交时间为课程结束后的下一周周四上午九点至十一点。
二.字数要求2500--3500字之内,每个同学一份,同组同学可共用成果,其余部分应有区别。
三.实验项目1、实验一组合逻辑设计、实验装置的使用方法2、实验二用VHDL设计十六进制加法计数器3、实验三用VHDL设计6进制、60进制计数器4、实验四报时电路、分频电路、二选一电路5、实验五数字钟综合设计6、实验六 PROTEL99SE原理图、印制电路板图(PCB)设计四.实验报告内容要反映出以上6个实验的内容,重点说明数字钟综合设计,包括实验目的、实验原理、实验步骤、实验电路或者是程序、仿真波形(在能够仿真的情况下)、实验中遇到的问题及解决的方法,实验完成的效果等。
五.总结简单谈一下学习本课程的体会。
1CPLD及电子CAD 实验报告姓名:黄嘉宝学号:2010108122网选班号:1网选序号:13同组同学姓名:郑琦三峡大学电气与新能源学院21、实验一组合逻辑设计、实验装置的使用方法一、实验目的:(1)简单了解38译码器的设计,初步掌握组合逻辑电路的设计方法(2)学会使用MAX2软件二、实验步骤:1、指定项目名称启动max2软件——file——Project name(对话框中输入项目名)2、建立新文件File ——new(选第一个XX.gdf文件)——OK3、设计的输入1)原图的空白处双击鼠标左键2)输入原件名称或鼠标点击选取即可以38译码器的逻辑电路设计为例步骤如下:双击max2启动软件——file——project——输入项目名ymq38_13——file——new——选第一个XX.gfd——OK——保存命名ymq38.gdf——双击鼠标左键依次输入元器件input\output\not\and3\依次命名然后连线得到附录一图——保存——编译确定是否有连线错误(max2+plus——comfile)4、硬件检测功能编程下载,验证电路逻辑功能的硬件检测方法1、指定器件assign/device选ACEX1k和EP1K30TC144—12、编译生效max-plus/compiler3、分配管脚max-plus/floorplan editor4、编译生效max-plus/compiler5、打开装置的电源开关调到模式56、下载max-plus/programmer7、载入下载文件JIAG/Multi-Device JIAG Chain setup8、删除无用文件9、浏览后缀为.sof的文件,点add10、点configure管脚如何分配:在给定的装置结构图里面选取适当的数码管和相应的控制开关,然后在给定的表格中找到对应的管脚,然后分别把管脚导入到相应的位置34附录一五、波形仿真:file-new-waveform editor (波形文件)保存 Node-enter-list-(导入输入、输出)options-gridsize(改尺寸不能低于10nm) simulator(开始仿真) timing anal(定时分析器) 得到如下结果验证38译码器52.VHDL 硬件描述语言在VHDL 程序中,通常包括实体(ENTITY )、结构体(ARCHITECTURE )、配置(CONFIGURATION)、包集合(PACKAGE)、和库(LIBRARY)5部分。
cpld课程设计报告
cpld课程设计报告一、教学目标本课程的教学目标是让学生掌握CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)的基本原理、编程方法和应用技巧。
通过本课程的学习,学生应能理解CPLD的工作原理,熟练使用相关软件进行编程,并能够运用CPLD设计简单的数字电路系统。
1.了解CPLD的基本结构和工作原理。
2.掌握CPLD的编程语言和编程方法。
3.理解CPLD在数字电路设计中的应用。
4.能够使用CPLD相关软件进行编程。
5.能够设计简单的数字电路系统。
6.能够进行CPLD的硬件编程和调试。
情感态度价值观目标:1.培养学生对电子技术的兴趣和热情。
2.培养学生动手实践能力和团队协作精神。
3.培养学生勇于探索和创新的精神。
二、教学内容本课程的教学内容主要包括CPLD的基本原理、编程方法和应用。
1.CPLD的基本原理:介绍CPLD的基本结构、工作原理和特点。
2.CPLD的编程方法:介绍CPLD的编程语言、编程步骤和相关软件。
3.CPLD的应用:介绍CPLD在数字电路设计中的应用实例,如数字信号处理器、数字通信系统等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解CPLD的基本原理、编程方法和应用,使学生掌握相关知识。
2.案例分析法:通过分析具体的CPLD应用实例,使学生更好地理解CPLD的应用。
3.实验法:安排实验室实践环节,让学生亲自动手进行CPLD编程和调试,提高学生的动手能力。
四、教学资源为了保证教学效果,我们将准备以下教学资源:1.教材:选择合适的教材,为学生提供全面、系统的学习资源。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、教学视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:准备CPLD实验设备,为学生提供实践操作的机会。
五、教学评估本课程的评估方式将采用多元化、全过程的评价体系,以全面、客观、公正地评估学生的学习成果。
基于cpld实验报告
基于cpld实验报告基于CPLD的实验报告引言:CPLD(Complex Programmable Logic Device)是一种集成电路器件,具有可编程的逻辑功能。
它在数字电路设计和开发中扮演着重要的角色。
本实验报告将介绍基于CPLD的实验设计和实施过程,以及实验结果和分析。
一、实验目的本次实验的目的是通过使用CPLD器件,设计一个基本的数字电路,并验证其功能和性能。
通过这个实验,我们可以深入了解CPLD的工作原理和应用,提高我们的电路设计和实施能力。
二、实验设计和实施1. 实验所需材料和设备本次实验所需的材料和设备包括CPLD开发板、电源适配器、电路元件(如电阻、电容等)和连接线。
2. 实验步骤(1)准备工作:将CPLD开发板连接到电源适配器,并确保电源正常工作。
同时,准备好所需的电路元件和连接线。
(2)电路设计:根据实验要求和设计要求,设计一个适当的数字电路。
可以选择逻辑门电路、计数器电路或其他常见的数字电路。
(3)电路实施:根据电路设计,将电路元件连接到CPLD开发板上。
确保连接正确,并遵循电路设计的布局。
(4)编程CPLD:使用相应的软件工具,将设计好的电路逻辑编程到CPLD器件中。
确保编程过程正确,并检查编程结果。
(5)测试和验证:将电源适配器连接到CPLD开发板上,开启电源。
通过输入相应的信号,观察和验证电路的功能和性能。
可以使用示波器等测试设备进行测量和分析。
三、实验结果和分析经过实验,我们成功设计并实施了一个基本的数字电路。
通过测试和验证,我们发现电路能够按照设计要求正常工作,并且具有良好的性能。
在实验过程中,我们注意到CPLD器件具有以下优点:1. 可编程性:CPLD器件可以根据需要进行编程,实现不同的逻辑功能和电路设计。
2. 灵活性:CPLD器件可以根据实际需求进行配置和布局,适应不同的应用场景。
3. 高集成度:CPLD器件集成了大量的逻辑门和触发器,可以实现复杂的数字电路设计。
CPLD实验报告
实验一 Xilinx软件及状态机设计一实验目的:学习FPGA设计软件, 掌握软件流程, 掌握状态机编程。
二实验内容:设计一个状态机三实验说明:状态机设计是数字电路中使用非常广泛和方便的时序设计工具。
由于硬件是并行的触发, 相对软件是串行执行, 那么让硬件电路按照节拍执行串行操作指令就成为一个问题, 这就是状态机的主要功能。
相应的, 软件指令中的几十条简单顺序执行代码可能需要硬件的几十上百个触发器去实现其功能。
所以, 软件与硬件的设计思路有相当大的区别。
当然, 随着FPGA规模的不断扩大, 这些问题也越来越容易解决了。
我们可以用软件的思路去描述自己的设计, 可能最终实现的电路是几十万门级的器件, 但是你只要花费几美元就能买到。
状态机是数字电路的基础, 因此, VHDL的学习也从这个实验开始。
四实验过程:1.在进行实验之前, 我先自学了VHDL语言。
2.熟悉Xilinx软件环境。
3.通过仿真, 读懂了states这段代码所实现的功能及其出现的问题。
五思考题:1.通过仿真, 这段代码实现相应功能时出了什么问题?请修正代码。
答:这段程序完成的是对红绿灯的控制功能。
通过仿真发现所有的灯都比预期的多亮了2秒, 比如东西方向绿灯亮62秒(应该是60秒), 黄灯是5秒(应该是3秒)。
出现此问题的原因是没有考虑到硬件的延时问题。
所以只要把程序中的59改为57, 39改为37, 3改为1, 再进行仿真, 结果就正确了。
2.状态机输出分成同步输出和异步输出, 状态机异步输出直接用状态机的某个状态进行组合逻辑运算来得到一个输出, 同步输出是在该状态的时钟上跳沿控制输出变化。
请问同步输出和异步输出利弊各在哪里?答: 同步输出的优点是: 时钟脉冲的间距解决了组合逻辑电路中的延时和竞争问题。
只要时钟脉冲的宽度合适, 输出就不会存在竞争与现象。
缺点是: 外部输入信号的变化应满足触发器正常工作所需的建立和保持时间。
因为上述特点使得同步时序输出的工作速度的提高受到限制, 且对时钟脉冲到达个触发器的时间及外部信号的变化有较严格的要求。
cpld 实验报告
C P L D及电子C A D实验报告学生姓名:梁鹏同组同学:沈金锁在短短的八个周里,我们学习了CPLD及电子CAD的应用方法。
在老师的悉心辅导下我们接触了很有意思的软件——MAX+PLUSII和DesignExplorer99。
我们重点学习了软件MAX+PLUSII,学会使用MAX+PLUSII 软件设计我们曾经学过的一些简单时序逻辑电路,如:3-8译码器的设计,十进制计数器的设计,六十进制计数器的设计以及我们最后自己动手设计的综合实验:基于CPLD的数字电子钟设计。
该软件方便了我们设计电路,它提供了从多种方法输入、编译、仿真、下载等一系列配套功能,同时,我们还可以通过该软件将我们所设计的电路的功能下载到EPIK30TC144-1器件,利用我们所学的理论知识来检验设计电路的正误。
其次,我们还简单学习了软件DesignExplorer99,利用DesignExplorer99设计555振荡器的原理图和PCB设计。
实验内容:实验一:3-8译码器的设计一、实验目的:1.通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2.初步了解CPLD设计的全过程,初步了解软件的使用。
3.掌握组合逻辑电路的静态测试方法。
二、实验内容:(一)进入Windows操作系统,打开MAX+PLUS II的设计软件。
1.指定设计的项目名称用MAX+PLUS II编译一个项目前,必须确定一个设计文件作为当前项目。
对于每个新的项目应该建立一个单独的子目录,当指定了保存该设计项目的子目录名。
其步骤为:(1)启动File----Project Name菜单,将出现Project Name 对话框。
(2)在Project Name对话框内,键入你的设计项目名。
(3)选择OK。
这时,MAX+PLUS II的标题条将显示新的项目名字。
2.选择器件点击Assign----Device菜单,选择器件(本设计一律选用EPIK30TC144-1)。
可编程逻辑器件、FPGA、CPLD实验报告2
CPLD/FPGA 设计实验报告实验名称: 时序电路设计基础 实验目的: 掌握Quartus II 软件的基本使用方法,完成基本时序电路设计 学生姓名: 学号: 实验内容:实验一 模100计数器一、 创建工程工程名称:count100顶层实体文件名:count100 器件: EP1C3T100C8 二、 创建文件 创建Verilog HDL 文件,实现一个模100的计数器功能电路,要求可以实现清零功能。
module count100(clk,cout,qout,reset);input clk,reset;output reg[6:0] qout;output cout;always@(posedge clk)beginif(reset) qout<=0;else if(qout<99) qout<=qout+1;else qout<=0;end assign cout=(qout==99)?1:0; endmodule装订 线三、编译工程报告中下列数据是多少total logic elements:12 total pins:10四、仿真电路1、创建VWF文件2、设定“End Time”为50us3、在VWF文件中添加Node OR Bus4、编辑波形5、仿真6、画出仿真结果实验二8位加法器一、创建工程工程名称:add8 顶层实体文件名:add8器件: EP1C3T100C8二、创建文件创建Verilog HDL文件,实现一个8位加法器功能电路。
module add4(cout,sum,ina,inb,cin);input cin;input[7:0] ina,inb;output[7:0] sum;output cout;assign {cout,sum}=ina+inb+cin;endmodule三、编译工程报告中下列数据是多少total logic elements:10 total pins:26四、仿真电路1、创建VWF文件2、设定“End Time”为20us3、在VWF文件中添加Node OR Bus4、编辑波形5、仿真6、画出仿真结果。
cpld报告
CPLD课程学习报告学生姓名:钟琦同组姓名:王晓娟在没有接触cpld这门课程之前,可以说对Max+plusⅡ这个软件一窍不通,第一节课时,黄老师用投影仪为我们仔细演示了一遍这个软件的操作过程,通过这节课的学习,我了解到Max+plusⅡ编译一个项目前,必须确定一个设计文件作为当前项目。
对于每个新的项目应该建立一个单独的子目录,当指定设计项目名称时,也就同时指定了保存该设计项目的子目录名实验步骤如下:实验步骤1)新建文件后,输入项目文件名(File/Project/Name)(此时save as名称如果是程序则需要用vhd结尾保存文件)2)输入源文件(图形、VHDL、波形输入方式)(Max+plusⅡ/graphic Editor;Max+plusⅡ/Text Editor;Max+plusⅡ/Waveform Editor)3)指定CPLD型号,选择器件(Assign/Device)(应选择EP1K 30TC144-1)4)设置管脚、下载方式和逻辑综合的方式(Assign/Global Project Device Option,Assign/Global Logic Synthesis) 5)保存并检查源文件(File/project/Save & Check)6)指定管脚(Max+plusⅡ/Floorplan Editor)(具体的管脚应该参考CPLD管脚资源表格)7)保存和编译源文件(File/project/Save & Compile)8)生成波形文件(Max+plusⅡ/Waveform Editor)9)仿真(Max+plusⅡ/Simulator)10)下载配置(Max+plusⅡ/Programmer)一分别做10,24,60进制的计数器因为是第一次接触CPLD的编程,所以对它所用的语言不清楚,第一次写10进制计数器程序时基本是照着老师写的程序生搬硬套上去的,后面写24和60进制计数器时才基本弄懂有些程序的意思。
CPLD 实验一报告
实验一MAX+PLUSⅡ软件的使用一、实验目的:1、掌握用VHDL 语言进行简单组合逻辑电路的设计方法。
2、了解并掌握M A X P L U S2软件的使用。
3、掌握组合逻辑电路的仿真方法。
二、实验设备:1、PC 机2、M A X P L U S2软件。
三、实验内容:1、用VHDL 语言输入法设计一个二选一,并进行仿真测试。
2、用VHDL 语言输入法设计一个四舍五入判别电路,要求当输入大于或等于5时,判别电路输出为1;反之为0。
四、实验步骤:1、采用文本编辑器输入VHDL 语言源程序,建立工程。
2、编译。
3、导入波形文件,保存后,设置数据后进行仿真。
五、程序清单及仿真结果:(一)、二选一library ieee;use ieee.std_logic_1164.all;entity mux21 isport(a,b:in std_logic;s:in std_logic;y:out std_logic);end mux21;architecture mux_artch of mux21 isbeginy<=a when s='0' elseb when s='1' ;end mux_arch;Maxplus2环境下操作过程:仿真结果:(二)、四舍五入判别电路:○1方法一:其输入为十进制数use ieee.std_logic_1164.all;entity mu45 isport(din:in std_logic_vector(3 downto 0);q:out std_logic);end mu45;architecture mu45_arch of mu45 isbeginq<='1' when din>=5 else'0';end mu45_arch;Maxplus2环境下操作过程:仿真结果:说明:输入为0~4时,输出y为低电平,输入为 5时输出为高电平,实现了四舍五入的功能。
CPLD六次实验报告样本
CPLD六次实验报告姓名:班级:学号:实验日期:一、实验目的熟练运用QuartusII分析组合逻辑电路、时序电路,能够运用VHDL对简单的逻辑电路功能进行描述。
二、实验内容1.实验一:简单组合逻辑设计(1)要求进行简单组合逻辑设计,要求设计一3-8译码器,对仿真结果生成的仿真波形文件进行保存,并对结果进行分析说明。
(2)连线图(3)仿真波形有竞争冒险现象的波形图形1仿真截图消去竞争冒险后的波形图形2截图仿真波的延时现象图形3(4)波形分析参考图形3,我们不难看出,当3-8线译码器输入分别为000(即0)、001(即1)、010(即2)、011(即3)、100(即4)、101(即5)、110(即6)、111(即7)时,与之相对应的q0、q1、q2、q3、q4、q5、q6、q7分别输出低电平,结果正确。
对于图形1以及图形3,我们不难看出,在组合逻辑中,很有可能出现尖脉冲(俗称毛刺)。
这是由输入信号变化先后不同、信号传输的路径不同,或是各种器件延迟时间不同等所原因造成的。
通过数电课上所讲的利用冗余项法可以消除毛刺。
2.实验二:数码管扫描电路(1)要求输入用VHDL编写的数码管扫描电路程序,生成数码管扫描电路,对仿真结果生成的仿真波形文件进行保存,并对结果进行分析说明。
(2)连线图(3)仿真波形仿真截图图形1(4)波形分析当输入端d_in输入一位十进制数字时,七个输入端a、b、c、d、e、f、g 会分别输出高低电平,以驱动七端数码管,显示出相应的数字。
3.实验三:计数器电路设计(1)要求进行计数器电路设计,对仿真结果生成的仿真波形文件进行保存,并对结果进行分析说明。
(2)连线图(3)仿真波形图形1图形2带有RESET功能的计数器波形图形3(4)波形分析从上面三幅图我们可以看出,当RESET(图中的REST端)端输入为低电平时,计数器不工作,即无论时钟信号走过多少个周期,各个输出端输出均为0。
当RESET端输入为高电平时,每输入一个时钟信号周期,计数器就计数一次。
实验2 CPLD可编程信号产生实验
电子信息工程学系实验报告课程名称:光纤通信实验项目名称:实验2 CPLD 可编程信号产生实验 实验时间:2012.3.22班级:电信092 姓名:XXX 学号:910706201实 验 目 的:1)熟悉光纤原理实验系统的电路组成。
2)熟悉光纤通信系统发送端信号产生的方法。
实 验 原 理:1、实验系统产生所需信号的核心器件可以采用CPLD 可编程逻辑器件MAX7128和MAX7064。
其中MAX7128主要用来产生各种时钟信号和数据信号;MAX7064用来在数据收端误码测试时产生本地随机码和误码检测、CMI 译码等。
对MAX7128进行编程,可实现下列输出波形:2.048MHz 的方波信号、1.024MHz 的方波信号、128kHz 的窄脉冲信号、8kHz 的窄脉冲信号、2kHz 或1kHz 的方波(正弦波)信号、8kHz 或4kHz 的方波(三角波)信号、64kHz 的方波信号、伪随机码产生电路输出波形等。
2、伪随机序列可由线性移位寄存器网络产生,有如下特点:(1)线性移位寄存器的输出序列是一个周期序列。
(2)当初始状态是零状态时,线性移位寄存器的输出全0序列。
(3)级数相同的线性移位寄存器的输出序列和反馈逻辑有关。
(4)同一个线性移位寄存器的输出序列还和起始状态有关。
(5)对于级数为r 的线性移位寄存器,当周期p=2r -1时,改变移位寄存器初始状态只改变序列的初相。
实 验 内 容 :1、熟悉光纤通信实验系统电路组成。
2、熟悉CPLD 可编程信号发生器各测量点信号波形。
3、测量并分析各测量点波形及数据。
实 验 结 果:图1 TP101引脚图 图2 TP102引脚图成 绩:指导教师(签名):图3 TP103引脚图 图4 TP104引脚图图5 TP105引脚图 图6 TP106引脚图图7 闭合K103的1-2时TP107引脚图 图8 闭合K103的1-2时TP108引脚图图9 闭合K103的2-3时TP107引脚图 图10 闭合K103的2-3时TP108引脚图图11 TP109引脚图 图12 TP110引脚图由图1可知,TP101是由CPLD 可编程器件编程产生的主时钟信号,频率为2.049Mhz ,大致符合理论值2.048Mhz 。
CPLD(EDA实验报告)
CPLD与电子CAD报告班号:网选 X班序号: XXXXXXXXX学号: XXXXXXXXX姓名: XXXXXXXXX同组同学姓名: XXXXXXXXX1●三峡大学电气与新能源学院CPLD及电子CAD⏹前言 VDHL初步理解和软件常规操作⏹第一章 VHDL中的进程、信号与变量⏹第二章并行语句、顺序语句⏹第三章循环语句、双向口⏹第四章数字钟综合设计⏹第五章Protel原理图、PCB图⏹总结学习CPLD心得和体会前言 VDHL初步理解和软件常规操作一,VHDL的历史1982年,诞生于美国国防部赞助的vhsic项目1987年底,vhdl被IEEE和美国国防部确认为标准硬件描述语言,即IEEE-1076(简称87版)1993年,IEEE对VHDL进行了修订,公布了新版本的VHDL,即IEEE标准的1076-1993(1164)版本1996年,IEEE-1076.3成为VHDL综合标准二,VHDL软件Max+plusⅡ的常规操纵方法1)新建文件后,输入项目文件名(File-Project-Name)(此时save as名称如果是程序则需要用vhd结尾保存文件)2)输入源文件(图形、VHDL、波形输入方式)(Max+plusⅡ-graphic Editor;Max+plusⅡ-Text Editor;Max+plusⅡ-Waveform Editor)3)指定CPLD型号,选择器件(Assign-Device)(应选择EP1K 30TC144-1)4)设置管脚、下载方式和逻辑综合的方式(Assign-Global Project Device Option,Assign-Global Logic Synthesis)23 5)保存并检查源文件(File-project-Save & Check)6)指定管脚(Max+plus Ⅱ-Floorplan Editor)(具体的管脚应该参考CPLD 管脚资源表格)7)保存和编译源文件(File-project-Save & Compile)8)生成波形文件(Max+plus Ⅱ-Waveform Editor)9)仿真(Max+plus Ⅱ-Simulator)10)下载配置(Max+plus Ⅱ-Programmer)第一章 VHDL 中的进程、信号与变量1.VHDL 中编程单元以及用法:1.Entity(实体):像一个黑盒子一样,用来说明模型外部的输入输出特征2.Architecture (构造体):用来定义模型的内容和功能,每一个构造体必须有一个实体与它相对应,所以两者一般成对出现;3.Generic(类属参量):规定端口的大小、实体中子元件的数目等;4.Ports (端口):是实体的一部分,主要用于信号的传输;常见的端口类型有IN (数据只能进实体),OUT (数据只能流出实体),INOUT (即可流进又可流出),BUFFER (数据流进实体同时可被反馈);5.数据类型:BIT(位类型,只取‘0’或‘1’);BIT_VECTOR (位矢量类型,包含一组位类型);BOOLEAN (布尔类型,其值可为‘TEUE ’或‘FALSE ’);INTEGER (整型);Natural (自然数类型);Positive (正整数类型);REAL (浮点数类型);6.Std_Logic 数据类型:IEEE1164中定义的一种数据类型,包含9种取值(U,X,0,1,Z,W,L,H,_)。
cpld 课程设计实验报告
郑州交通职业学院《CPLD/FPGA应用》课程设计报告课程设计题目:基于FPGA用VHDL语言设计汽车尾灯所属系别电子信息工程系专业班级 11大专电子信息工程技术1班姓名学号指导教师撰写日期 2012 年 6 月基于FPGA用VHDL语言设计汽车尾灯一、设计任务与要求1.1.设计目的假设汽车尾灯两侧各有3盏指示灯,设计其控制功能如下:1.汽车正常行驶时指示灯都不亮;2.汽车右转弯时,右侧一盏指示灯亮;3.汽车左转弯时,左侧一盏指示灯亮;4.汽车刹车时,左右两侧其中一盏指示灯亮;5.汽车夜间行驶时,左右两侧的一盏指示灯同时亮,以供照明。
1.2.设计目的图1.1顶层设计原理图1.3功能要求正常行驶时所有的灯都不亮,当汽车右转弯时,右侧灯RD1闪烁;左转弯,左侧灯LD1闪烁;刹车时,左侧灯LD2和右侧灯RD2同时亮;夜间行驶时,右侧RD3和左侧LD3同时亮;并不可能出现RD1 和LD1同时亮的情况.3.1 汽车尾灯主控制模块二、方案设计与论证2.1功能要求正常行驶时所有的灯都不亮,当汽车右转弯时,右侧灯RD1闪烁;左转弯,左侧灯LD1闪烁;刹车时,左侧灯LD2和右侧灯RD2同时亮;夜间行驶时,右侧RD3和左侧LD3同时亮;并不可能出现RD1 和LD1同时亮的情况.方案一、应用VHDL进行自顶向下的设计,是采用可完全独立于目标器件芯片物理结构的硬件描述语言。
就是使用VHDL模型在所有综合级别上对硬件设计进行说明、建模和仿真。
:方案二应用VHDL进行自顶向下的设计。
设计程序,生成模块.建立实物模型用实物模型进行观测,看是否可以实现所要求的,是否达到目的。
综合以上两个方案第一个比较好,所以选择第一方案三、VHDL程序、模块及仿真波形3.编写应用程序并仿真3.1.1汽车尾灯主控制模块 CTRL*数据入口:RIGHT:右转信号;LEFT:左转信号; BRAKE:刹车信号;NIGHT:夜间行驶信号;*数据出口:LP:左侧灯控制信号;RP:右侧灯控制信号;LR:错误控制信号;BRAKE_LED:刹车控制信号;NIGHT_LED:夜间行驶控制信号*程序功能描述:该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT信号时,输出错误控制信号。
cpld实验报告
cpld实验报告CPLD实验报告引言CPLD(Complex Programmable Logic Device)是一种集成电路,具有可编程功能。
本实验旨在通过对CPLD的实验研究,深入了解其工作原理和应用。
一、CPLD的基本原理CPLD是一种可编程逻辑器件,由可编程逻辑单元(PLU)和可编程互连单元(PCU)组成。
PLU负责实现逻辑功能,而PCU则负责实现逻辑单元之间的互连。
CPLD的工作原理是通过编程将逻辑功能和互连关系写入CPLD芯片中,从而实现特定的功能。
二、CPLD的应用领域CPLD广泛应用于数字电路设计、嵌入式系统、通信设备等领域。
在数字电路设计中,CPLD可用于实现复杂的逻辑功能,如计数器、状态机等。
在嵌入式系统中,CPLD可用于实现外设控制、数据处理等功能。
在通信设备中,CPLD可用于实现信号处理、调制解调等功能。
三、CPLD的实验设计本实验设计了一个简单的CPLD应用实验,旨在通过实际操作了解CPLD的使用方法和功能。
实验包括以下步骤:1. 准备工作:搭建实验平台,包括CPLD开发板、开发软件等。
确保硬件和软件环境正常。
2. 设计逻辑功能:根据实验要求,设计一个简单的逻辑功能,如4位二进制加法器。
使用开发软件进行逻辑设计,包括输入输出端口的定义、逻辑电路的设计等。
3. 编程下载:将逻辑设计的文件编译成二进制文件,并通过下载器将二进制文件下载到CPLD芯片中。
确保下载过程正确无误。
4. 实验验证:连接外部输入信号和输出信号,进行实验验证。
通过输入不同的二进制数,观察输出结果是否符合预期。
根据实验结果,分析逻辑电路的正确性和稳定性。
四、实验结果与分析经过实验验证,设计的4位二进制加法器功能正常,输入不同的二进制数时,输出结果正确。
通过观察实验数据,可以得出结论:CPLD能够有效实现逻辑功能,并具有较高的稳定性和可靠性。
五、CPLD的发展趋势随着科技的不断进步,CPLD的应用领域将进一步扩大。
基于cpld实验报告
基于cpld实验报告CPLD实验报告:数字逻辑设计与实现摘要:本实验报告基于CPLD(Complex Programmable Logic Device)的实验设计与实现进行了详细的介绍和分析。
通过对数字逻辑设计的理论知识的学习和实践操作,我们成功地完成了一系列的实验项目,并取得了令人满意的成果。
本文将对实验过程、实验结果和实验总结进行详细的描述和分析,以期能够为读者提供有益的参考和借鉴。
一、实验背景CPLD是一种可编程逻辑器件,具有高度集成、灵活可编程和逻辑功能强大等特点,广泛应用于数字电路设计和嵌入式系统开发领域。
本次实验旨在通过CPLD 的实验设计与实现,加深对数字逻辑设计原理的理解,提高数字电路设计和实现的能力。
二、实验内容1. CPLD的基本原理及结构2. 数字逻辑设计的基本原理3. 实验项目的设计与实现4. 实验结果的分析与总结三、实验过程在本次实验中,我们首先对CPLD的基本原理及结构进行了学习和了解,包括CPLD的内部结构、工作原理和编程方式等。
然后,我们通过对数字逻辑设计的基本原理的学习,掌握了数字逻辑门的设计和实现方法。
在此基础上,我们完成了一系列的实验项目,包括逻辑门的设计与实现、计数器的设计与实现、状态机的设计与实现等。
四、实验结果通过实验,我们成功地完成了所有的实验项目,并取得了令人满意的成果。
我们设计并实现了多种逻辑门、计数器和状态机,并对其进行了验证和测试。
实验结果表明,我们所设计的数字逻辑电路能够正常工作,并且符合设计要求。
五、实验总结通过本次实验,我们深入了解了CPLD的基本原理和数字逻辑设计的基本原理,提高了数字电路设计和实现的能力。
同时,我们也发现了一些问题和不足之处,在今后的学习和实践中将进一步改进和完善。
总之,本次实验对我们的学习和成长都具有重要的意义和价值。
综上所述,本实验报告详细介绍了基于CPLD的实验设计与实现的过程和成果,对数字逻辑设计的理论知识和实践操作进行了全面的总结和分析。
基于CPLD的数字电子技术实验报告
数字电子技术基础实验报告姓名:余越崎学号11211171班级:通信1107班目录一.实验目的 (2)二.技术指标及设计要求 (2)三.设计方案及论证 (2)四.制作与调试过程 (5)五.系统使用说明 (11)六.系统测试 (12)七.个人感想 (14)一.实验目的自动增益数字控制电路是一种在输入信号变化很大的情况下,输出信号保持恒定或在较小的范围内波动的电路。
在通信设备中,特别是在通信接收设备中起着重要的作用。
它能够保证接收机在接收弱信号时增益高,在接收强信号时增益低,使输出保持适当的电平,不至于因为输入信号太小而无法正常工作,也不至于因为输入信号过大而使接收机发生堵塞或饱和。
掌握中频自动增益数字电路设计可以提高学生系统地构思问题和解决问题的能力。
通过自动增益数字电路实验可以系统地归纳用加法器、A/D和D/A转换电路设计加法、减法、乘法、除法和数字控制模块电路技术,培养学生通过现象分析电路结构特点,进而改善电路的能力。
二.技术指标及设计要求2.1基本要求(1)用加法器实现2位乘法电路。
(2)用4位加法器实现可控累加(加/减,-9到9,加数步长为3)电路。
(3)用4位移位寄存器实现可控乘/除法(2到8,乘数步长为2n)电路。
2.2发挥部分(1)用A/DC0809和D/AC0832实现8k~10k模拟信号和8位数字信号输入,模拟信号输出的可控乘/除法电路。
(2)设计一个电路,输入信号50mV到5V峰峰值,1KHZ~10KHZ的正弦波信号,输出信号为3到4V的同频率,不失真的正弦波信号。
精度为8位,负载500Ω。
(3)发挥部分(2)中,若输出成为直流,电路如何更改。
三.设计方案及论证3.1 基础部分方案一(1)用加法器实现2位乘法电路。
设两位二进制分别为A1A0和B1B0,输出为S3S2S1S0。
计算过程如图2-1。
图2-1 两位二进制乘法相乘可以用与门(74LS08)或译码器(74LS138) 实现。
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菜单命令,分别通过老师所给的管脚分配表分配管脚(如图二)。
值得注意的是:在我们实验时,开始界面右边没有出现管脚代号,万分着急,结果,通过老师的指导,我们知道了,我们需要在Layout~last compilation floorplan,底层图编辑器将显示由最后一次编辑产生的不可编辑的视图,是该视图被存储在适配文件中。
CPLD实验报告
第一章1.快速交换电路的核心思想是在有信息传送时快速建立通道,如果用户没有数据传输则释放通道。
2.帧中继采用的是永久虚电路(PVC)方式。
3.异步转移模式(ATM)的四项基本特点:1)采用ATM信元复用方式。
在ATM 中采用固定长度的分组(53个字节),称为信元。
ATM按信元进行统计复用,在时间上没有固定的复用位置。
2)ATM采用面向连接并预约传输资源的方式工作。
3)在ATM网络内部取消逐段链路的差错控制和流量控制,而将这些工作推到网络的边缘。
4)ATM信元头部功能降低。
4软交换技术是一个体系结构,并不是一个单独的设备,而是一系列分布在IP网络之上的设备的总称。
以软交换技术为核心的下一代网络的最主要的特点就是采用了分层的体系结构。
1)业务应用层;主要有各类业务服务应用平台构成,向用户提供各种增值业务,存放业务逻辑和业务数据,并可以通过应用服务器提供应用编程接口。
2)控制层;主要由软交换机设备构成,主要完成各类呼叫控制,并负责相应业务处理信息的传递。
3)传送层;为业务媒体流和控制信息流提供统一的保证QoS的高速分组传输平台。
4)边缘接入层;主要想用户提供各种接入手段,实现媒体格式转换。
5.报文交换以报文为单位,分组交换以分组为单位,ATM交换以信元为单位。
第二章1.交换单元是构成交换网络的最基本部件,用若干个交换单元按照一定的拓扑结构和控制方式就可构成交换网络。
其功能主要是建立连接和拆除连接。
1)集中型;入线数大于出现数(M>N)2)分配型;入线数等于出现数(M=N)3)扩散型;入线数小雨出现数(M<N)交换单元的外部特性指标:1)容量即交换单元的入线和出线数目,有时还考虑单元每条入线上可以送入得信息量。
2)接口3)功能在入线个出线之间建立连接并传输信息。
4)质量包括完成交换功能的情况和信息经过交换单元的损伤。
2.空间接线器(S接线器)功能:用来完成对传送同步时分复用信号的不同复用线之间的交换,而不改变其时隙位置。
CPLD电子线路课程设计报告(7篇)
CPLD电子线路课程设计报告(7篇)通过这一周的课程设计,我对一些专业学问和电子设计有了更深的了解,同时也尝试着去应用自己的所把握的学问。
本次电子课程设计主要是对本学年学习的模拟电子技术和数字电子技术的应用,同时加上电路等学问,设计一些课题。
经过几天的奋战,我感受很深.我和客某某、沈某某三个人在参与学校电子设计大赛并获奖后,便成了参与明年的北京市电子深感自己在培育动手力量这方面还需很大的努力。
于是,这次我们在积存参与电子设计大赛和培训的根底上,在教师的指导下,预备把这个课程设计作为一次练兵,争取为明年的北京市电子设计大赛做足预备,取得一个好成绩。
电子课程设计不仅给我们供应了一个很好的呈现应用自己所把握的学问的平台,又是检验自己所学学问的一次考核. 我们运用各拘束各方面的优势中和起来,形成了一个团队.通过团队力气,才使设计得以完成.可以说,我们三个人是一个不行或缺的整体,少了任何一个人都是无法完成任务的.单片机是我们下学期要学的一门很重要的课程,它具有强大的功能.由于我们对单片机的应用有了肯定的了解,同时也为了下学期学习单片机打好根底,于是这次设计主要是以单片机为主的.一个是单片机编程器,另一个便是对单片机的一个应用电母鸡.在设计的过程中我们也不行避开的遇到了许多的问题.尤其是在调试过程中,会由于某些缘由出不来结果,或三个人之间消失了意见分歧,但在最终都达成了全都. 最终在调试结果出来后,我们更是无比的兴奋,无比的骄傲.总之,通过这次电子课程设计,我不仅对自己的学问有了更好的把握和应用,更了解到团队精神的力气.在以后的学习和生活中受用终身。
CPLD电子线路课程设计报告二时间匆忙而过,一周转瞬即逝。
在过去的这一周时间里面,原本以为会比拟简洁的设计任务却让我觉得有点措手不及。
虽然困难重重,但是在遇到的各种各样的问题中,我学会了急躁,学会了坚持,也学会了以前把握得不太坚固的数电和模电学问。
收获颇丰。
在这次电子课程设计中,我们小组的设计题目是汽车尾灯掌握。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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菜单命令,分别通过老师所给的管脚分配表分配管脚(如图二)。
值得注意的是:在我们实验时,开始界面右边没有出现管脚代号,万分着急,结果,通过老师的指导,我们知道了,我们需要在Layout~last compilation floorplan,底层图编辑器将显示由最后一次编辑产生的不可编辑的视图,是该视图被存储在适配文件中。
图二:10进制管脚分配图完成后,首先启用MAX+PLUS~programmer菜单,选择JTAG~Multi-Device JTAG chain菜单项;再点击Sellect program file按钮,选择要下载的配置文件sof. 然后点击add按钮添加到列表中,点击OK即可。
再出现的对话框中点configure,即可完成器件编程。
(见图三)对于6进制计数器,只数显示0~5五个数字,因此,对于十进制,当m达到1001时再返回到0000,而六进制,当m到0101时再返回到0000。
因此,在10进制的基础上,再作适当的修改即可得到六进制计数器。
因此,六进制的为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hl61_cnt6 isport(clk,clr,en:in std_logic;q:out std_logic_vector(3 downto 0);carry:out std_logic);end;architecture one of hl61_cnt6 issignal m:std_logic_vector(3 downto 0);beginprocess(clk,clr,en)beginif clr='1' thenm<="0000";elsif clk'event and clk='1' thenif en='0' thenif m="0101" thenm<="0000";carry<='1';图三:六进制下载结果小结:这次课的学习,让我们学习到了VHDL语言的它使用激六进制、十进制计数器的做法。
VHDL语言简洁、已修改,可读性强,我们应当好好掌握其使用方法第二课: 60进制、24进制计数器及二选一电路在第一课的基础上,通过一定修改,可以做出60进制和24进制计数器,以备以后做使用。
在此过程中,应当注意的是:60进制应当分几个部分讨论,编写VHDL语言时,应注意思路和编写的语言都清晰、可读性强,以防出现错误代之结果无法正确显示出来。
图四:60进制计数器VHDL对于二选一电路,其基本原理是:对于mux2设A、B两输入端口和高低电平输入口S,对于输出Y,当S=0,则Y输出A的值,否则输出B。
对于输出K,当A=B,K为高电平,否则,K为低电平。
第三课:数字钟设计数字钟的实验原理是:时钟计数:秒——60进制BCD码计数;分——60进制BCD码计数;时————24进制BCD码计数。
因此,对于数字钟的制作,可以采用gdf图形编写。
首先创建一个新的Graphic Editor file,然后调出24进制图件一个,60进制两个,连接电路图,图形如下图五:图五:数字钟当编译通过后再分配管脚,接下来过程与十进制做法类似。
进行器件编程后,既可以在器件上显示最大时间为23:59:59的数字时钟。
并且,通过File~create default保存后可以调出数字钟的图形文件。
如下图六:图六:数字时钟的图形文件注意:文件保存时要相当小心,首先,要保证文件存在同一个文件夹中,我们当时就出现了这样的错误,把不同的文件放在不同的文件夹中,结果导致调用图形文件时文件无法正确使用,是我们走了一段曲折路浪费了不少的时间,再者,文件名一定不能用中文名。
最后,VHD和GDF文件都一定要与前面的总文件名保持一致,可以用便捷方法:File~project~第二项来调节。
第四课:数字钟的调分调时功能上述数字钟完成以后,他只有清零功能,不具有其他功能,而在我们生活中的包具有多种功能,因此,我们还得设计其他功能。
首先,设计调分调时功能,因此,在上述数字钟的基础上,应将代表时钟的24进制计数器和代表分钟的60进制计数器的clk端分别连上外部控制按钮,其gdf图如下:图七:调分调时功能数字钟调用输入端的指令是:input输出端:output与门:and2或门:or2注意:如果设计项目项目你面含有多个子文件,应先对各低层文件设置成工程,编译并存盘以备后用,并要保证双击顶层文件时底层文件能够显示出来,如果双击后无法显示,应进行检查,看调用文件和存盘时是否出现问题,如果出现问题应及时修正,以防影响后续工作的顺利进行。
完成上面的以后,可以得到有调分调时功能的新数字钟图形文件,截图如下:图九:调分调时功能数字钟图形文件第五课:整点报时功能和选择器首先,对于新的功能的加入,就会用到选择器,所以,我们设计了3选1,2选1的选择器;2选1VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hl61_mux2 isport (s: in std_logic;a,b,c,d,e,f,pa,pb,pc,pd,pe,pf:in std_logic_vector(3 downto 0);ca,cb,cc,cd,ce,cf:out std_logic_vector(3 downto 0));end;architecture one of hl61_mux2 isbeginprocess(a,b,c,d,e,f,pa,pb,pc,pd,pe,pf,s)beginif s='0' thenca<=a;cb<=b;cc<=c;cd<=d;ce<=e;cf<=f;else ca<=pa;cb<=pb;cc<=pc;cd<=pd;ce<=pe;cf<=pf;end if;end process;end;以上二选一的文件,可以是数字钟中同时实现不同的功能,对于数字钟的整点报时功能,我们还需要设计一个可以使器发出声音的则整点报时程序,如下:ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hl61_zdbs1 isport (a,b,c,d:in std_logic_vector(3 downto 0);kdo,kd: out std_logic);end;architecture one of hl61_zdbs1 isbeginprocess(a,b,c,d)beginif a>"0100"and b="0101" and c="1001" and d="0101"then kdo<='1';elsekdo<='0';if a="0000" and b="0000" and c="0000" and d="0000"then kd<='1';elsekd<='0';end if;end if;end process;end;做出以上准备之后,我们可以在之前做的调分调时数字钟的基础上,通过与门的连接,做出具有整点报时功能的新的数字钟,他可以在到达59分55、56、57、58、59秒低音响,整点高音响,并且间断响铃,得到的新数字钟图形文件如下:图十:整点报时数字钟注意:在所写的VHDL文件中所设定的低音和高音代码一定要清楚区分,一边在连接电路时连接错误,我们当时就出现了这样的错误,两种代接反了,结果使得其先出现高音响后出现低音响的错误,这也让我们吸取了教训,我们字儿程序实施一定要做到清晰可读,并且连接电路时一定要小心!第六课:分频器和跑表在我们设计的数字钟中,秒的输入信号是1HZ时钟信号,秒的前一级是100进制的秒表他的输入是100hz时钟,而装置上却没有100hz频率供选择,只有通过分频器的得到,因此我们设计了3000分频的分频器,其代码为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hl61_3000fp isport(clk:in std_logic;carry:out std_logic);end;architecture one of hl61_3000fp issignal m:std_logic_vector(11 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif m="101110110111" thenm<="000000000000";carry<='1';else m<=m+1;carry<='0';end if;end if;end process;end one;接着,我们需要做的是跑表,它最大计时99秒99毫秒,所以,通过编写,我们得到了跑表的VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hl61_paobiao isport(clk,clr,en:in std_logic;mmg,mms,mmb,mg,ms,fg,fs:out std_logic_vector(3 downto 0));end;architecture one of hl61_paobiao issignal mmg1,mms1,mmb1,mg1,ms1,fg1,fs1:std_logic_vector(3 downto 0);beginprocess(clk,clr,en)beginif clr='1' thenmmg1<="0000";mms1<="0000";mmb1<="0000";mg1<="0000";ms1<="0000";fg1<="0000";fs1<="0000";elsif clk'event and clk='1' thenif en='0' thenif mmg1="1001" thenmmg1<="0000";mms1<=mms1+1;elsemmg1<=mmg1+1;end if;if mms1="1001" thenmms1<="0000";mmb1<=mmb1+1;end if;if mmb1="1001" thenmmb1<="0000";mg1<=mg1+1;end if;if mg1="1001" thenmg1<="0000";ms1<=ms1+1;end if;if ms1="1001" thenms1<="0000";fg1<=fg1+1;end if;if fg1="1001" thenfg1<="0000";fs1<=fs1+1;end if;if fs1="1001" thenfs1<="0000";fg1<="0000";ms1<="0000";mg1<="0000";mmb1<="0000";mms1<="0000";mmg1<="0000";end if;end if;end if;end process;mmg<=mmg1;mms<=mms1;mmb<=mmb1;mg<=mg1;ms<=ms1;fg<=fg1;fs<=fs1;end;秒表只是数字钟的一个子功能,因此也得和数字钟相联系,对于这两个元件,我们可以通过上面的二选一相连接,图形如下:图11:跑表与数字钟对于上述的图形,两者可以通过S进行二选一操作,通过S输入的为高电平或低电平,进行功能的转换。