PLD实验教案电信学院通信系2序言PLD实验是电信专业的一门专业实验课程,对电信专业的学生具有非常重要的作用。本实验课与理论课同时进行,与理论课有着较密切的联系。因此同学们在做本实验之前必须具备以下的基础知识:1、数字电路的基础知识;2、电子计算机常用操作系统的使用方法;3、一定的英语基础;4、必须有一定的理论知识做基础,与理论课同时进行。PLD(可编程逻辑器件)是与ISP(在系统可编程)技术和EDA(电子设计自动化)工具紧密结合、同时进行的。它代表了数字电信领域的最高水平,给数字电路的设计带来了革命性的变化。从70年代第一片可编程逻辑器件PROM的诞生到现在的CPLD/FPGA,数字系统的设计发生了本质的变化。从传统的对电路板的设计到现在的基于芯片的设计,使得数字系统设计的效率大大提高,产品更新速度大大加快,设计周期大大变短。所以同学们学习本课程有着非常重要的意义。本实验不同于其它实验,他的实验手段和实验方法都有了重大的变化,主要体现在以下几个方面:首先:实验方法不同本实验是在PC平台上,用原理图或文本进行输入,然后进行编译,通过之后再进行波形仿真,如有缺陷,再回过头去对源文件进行修改。其流程图如下:其次:实验手段不同本实验是利用ISP技术、采用EDA工具、应用PLD器件,在PC平台上进行的。第三、本实验课的目的学生学习完本实验课后,应达到如下的要求:1、能熟练使用本实验的配套EDA软件Mux+plusⅡ;2、掌握PLD芯片的基本使用方法,能用现代数字系统的设计方法进行基本的数字系统设计;3、掌握图形编辑和VHDL文本编辑两种设计方法,重点是VHDL文本编辑;4、具备基本的开发能力,为后续学习打下坚实的基础。修改修改修改编写源文件编译仿真下载3实验一4位二进制计数器设计1、实验的目的和实验内容实验目的是掌握MAX+PLUSⅡ原理图输入设计方法,熟悉MAX+PLUSⅡ软件的使用及设计流程;实验内容要求按照原理图输入方法设计流程,完成4位二进制计数器的设计。利用EDA工具进行原理图输入设计的优点是,设计者能利用原有的电路知识迅速入门,完成较大规模的电路系统设计,而不必具备许多诸如编程技术、硬件语言等新知识。MAX+plusII提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IPCore的巨功能块LPM库。但更为重要的是,MAX+plusII还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。以传统的数字电路实验相比为例,MAX+plusII提供原理图输入设计功能具有显著的优势:能进行任意层次的数字系统设计。传统的数字电路实验只能完成单一层次的设计,使得设计者无法了解和实现多层次的硬件数字系统设计;对系统中的任一层次,或任一元件的功能能进行精确的时序仿真,精度达0.1ns,因此能发现一切对系统可能产生不良影响的竞争冒险现象;通过时序仿真,能对迅速定位电路系统的错误所在,并随时纠正;能对设计方案作随时更改,并储存入档设计过程中所有的电路和测试文件;通过编译和编程下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证。符合现代电子设计技术规范。传统的数字电路实验利用手工连线的方法完成元件连接,容易对学习者产生误导,以为只要将元件间的引脚用引线按电路图连上即可,而不必顾及引线的长短、粗细、弯曲方式、可能产生的分布电感和电容效应以及电磁兼容性等等十分重要的问题。2、实验前做好预习实验前必须充分预习,完成指定的预习内容,并写出预习报告。认真阅读实验指导书,分析掌握本次实验的基本原理;熟悉实验任务。计数器是最常用的寄存器逻辑电路,从微处理器的地址发生器到频率计都需要用到计数器。一般计数器可以分为两类:加法计数器和减法计数器。加法计数器每来一个脉冲计数值加1;减法计数器每来一个脉冲计数值减1。本实验用原理图输入设计方法设计一个4位二进制计数器,通过调用元件库中的74LS161来完成。74LS161(异步清零同步预置)共有一个时钟输入端CLK,一个清除输入端CLRN,两个计数允许信ENP和ENT,4个可预置数据输入端A、B、C、D,一个置位允许端LDN,4个计数输出端QD-QA,一个进位输出端RCO,其工作模式见下表所示。474LS161功能表CLRNCLKENPENTLDN工作状态LXXXX复位HCXXL预置HCHHH计数HXLXH保持HXXLH保持3、实验要求结合理论课所讲授的MAX+PLUSⅡ软件的使用及设计流程,按照实验指导书(附录一)的实验步骤编辑4位二进制计数器的原理图。学习原理图输入设计方法,但应该更多地关注设计流程,因为除了最初的图形编辑输入外,其它处理流程都与文本(如VHDL文件)输入设计完全一致。4位二进制计数器的原理图如下:4位二进制计数器的原理图4、设计提示1)打开文件*.gdf,文件要设为工程文件;2)编译:每次有修改都要重新编译,编译完成哪些工作需清楚;3)仿真分析:加输入节点波形看输出结果,要会分析,包括功能和时序,会做精确地延时、建立/保持时间和Fmax的仿真分析;4)考虑为什么要进行管脚锁定,设计有哪些输入输出管脚要清楚。5、预习内容1)熟悉计数器的工作原理,画出实验原理图;2)用原理图输入法进行硬件设计的过程;3)学习实验指导书附录一,对EDA实验箱做一了解;4)写出预习报告。5实验二用74161实现模为60计数器的层次化设计1、实验的目的和实验内容实验目的是学习用原理图输入法实现项目的层次化设计;通过对设计电路的仿真和硬件验证,进一步了解计数器的功能。整个实验的设计流程基本同实验一,只是要按照原理图输入法分别完成底层文件和顶层文件的设计,先完成底层文件并将其封装为元件,然后调用底层文件进行顶层文件的设计。本实验设计内容为用74161实现模为60计数器的层次化设计。首先用一个74161先完成模为12计数器的设计,并将其生成一个元件cnt12。建立另一个图形文件,调入cnt12一次、74161一个及其他所需元件,经适当连接构成顶层设计文件模为60的计数器(也可以考虑底层元件做成模为15、10或6等其他情形的计数器),完成编译、仿真、下载过程。2、实验前做好预习认真阅读实验指导书,分析掌握本次实验的基本原理,熟悉实验任务。对于M进制=N1XN2计数器的实现可以采用串行进位方式和并行进位方式。串行进位方式以低位片的进位输出信号做为高位片的时钟输入信号(进位输出加一个非门后再接入,如十进制,当1001时,进位C为高电平,反相后变低电平,第10个脉冲到来进位C为低,反相变高,高位片才做加1计数)。并行进位方式以低位片的进位输出信号做为高位片的工作状态控制信号,两片的时钟输入端同时接计数输入信号。3、串行进位方式和并行进位方式两种设计方案并行进位方式实现六十进制计数器6注:第59个脉冲RCO变为1,第60个脉冲到来时清零。串行进位方式实现六十(10*6)进制计数器当qh2~qh0为101时,第51个脉冲来时,高位片因CLK只有第60个脉冲来时才会来上升沿,此时才置0。4、设计提示1)顶层和底层文件要保存在同一个文件夹下,名称要不同;2)在顶层文件中,注意输入输出添加input、output节点,包括调用来的底层模块;3)在对哪个文件进行编译时一定将该文件设置为工程文件。5、预习内容1)掌握实现M进制=N1XN2计数器的工作原理,画出实验原理图;2)用原理图输入法进行层次化设计的过程;3)写出预习报告。7实验三4选1数据选择器设计1、实验的目的和实验内容实验的目的是让学生初步掌握组合逻辑电路的文本输入设计法,实验内容是用VHDL语言完成4选1数据选择器的设计,设计流程同原理图输入法,只是在设计输入采用的是文本方式而不是图形,其他处理流程完全相同。介绍数据选择器的用途,使学生对所做的硬件设计有一个更深入的了解。数据选择器是常用的组合逻辑部件之一。它由组合逻辑电路对数字信号进行控制来完成较复杂的逻辑功能。它有若干个数据输入端D0、D1、…,若干个控制输入端A0、A1、…,和一个输出端Y0。在控制输入端加上适当的信号,即可从多个输入数据源中将所需的数据信号选择出来,送到输出端。使用时也可以在控制输入端加上一组二进制编码程序的信号,使电路按要求输出一串信号。4选1数据选择器,有D0、D1、D2、D3四个数据输入端,输出端Y,选择输入端(或称地址端)A、B,工作状态选择端(或称使能端)E。逻辑功能如下表所示,当E为高电平时电路不工作,此时无论A、B处于什么状态,输出Y总为零。即禁止所有数据输出,当E为低电平时,电路正常工作,被选择的数据送到输出端,如BA=01,则选中数据D1输出。测试4选1数据选择器的逻辑功能:数据输入端D0~D3可接电平开关,也可分别接频率不同的脉冲源。4选1数据选择器真值表4选1数据选择器引脚排列图2、实验前做好预习认真阅读实验指导书,分析掌握本次实验的基本原理;熟悉实验任务。将课堂所学到的VHDL语法要素和语句做好复习巩固和消化理解,确定自己的设计方案。3、设计代码(不唯一)libraryieee;useieee.std_logic_1164.all;entitymux41isport(a,b,en:instd_logic;选择输入数据输入选通输出BAD0D1D2D3EYXX0000010110101111XXXX0XXX1XXXX0XXX1XXXX0XXX1XXXX0XXX11000000000010101018d:instd_logic_vector(0to3);y:outstd_logic);end;architecturebhvofmux41issignalsel:std_logic_vector(0to1);beginsel=a&b;withselselecty=d(0)when00,d(1)when01,d(2)when10,d(3)when11,'Z'whenothers;endbhv;4、设计提示1)注意打开的是文本编辑窗file-new-texteditorfile;2)设计文件一定要保存在一个文件夹(不能用中文命名)下;3)初次接触VHDL语言应注意语言程序的基本结构,语法要素、数据类型及运算操作符。5、预习内容1)复习数据选择器的工作原理;2)用VHDL语言进行硬件描述的过程;3)写出预习报告,写出实验源程序;9实验四七人表决器设计1、实验的目的和实验内容通过实验让学生进一步熟悉VHDL语言,了解VHDL语言的行为描述、寄存器传输(RTL)描述、结构描述以及这几种描述在一起的混合描述方式,学会用行为描述方式来设计电路。实验内容设计一个七人表决电路,可采用上述任一描述方式来实现。要求严格按照实验流程进行,进行波形仿真测试和下载验证。2、实验前做好预习认真阅读实验指导书,分析掌握本次实验的基本原理;熟悉实验任务,确定自己的设计方案。常见的七人表决器用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为“0”时,表示表决者“不赞同”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。七人表决器设计方案很多,用VHDL语言设计七人表决器时,也有多种选择,我们可以用结构描述的方式用多个全加器来实现电路,也可以用行为描述。采用行为描述时,可用一变量来表示选举通过的总人数。当选举人大于或等于4时为通过,绿灯亮;反之不通过时,红灯亮。描述时,只须检查每一个输入的状态(通过为“1”不通过为“0”)并将这些状态值相加,判断状态值和即可选择输出。3、设计提示1)注意打开的是文本编辑窗file-new-texteditorfile;2)设计文件一定要保存在一个文件夹(不能用中文命名)下;3)VHDL不支持连