VHDL设计初步计数器.pptx
与组合电路主要的不同点:带有存储功能基本的时序逻辑电路:触发器,以D触发器最为常见。Q=D CP 或CP CP代表时钟信号3.2 基本时序电路的VHDL描述 第1页/共43页3.2 基本时序电路的VHDL描述 3.2.1 D触发器的触发器的VHDL描述描述 第2页/共43页3.2 基本时序电路的VHDL描述 3.2.1 D触发器的触发器的VHDL描述描述 1.上升沿检测表达式和信号属性函数上升沿检测表达式和信号属性函数EVENT 2.不完整条件语句与时序电路不完整条件语句与时序电路 表示当信号发生变化的时刻IF 条件表达式 语句 没有ELSE(保持)END IF第3页/共43页3.2 基本时序电路的VHDL描述 3.2.2 VHDL实现时序电路的不同表述实现时序电路的不同表述 第4页/共43页3.2 基本时序电路的VHDL描述 3.2.2 VHDL实现时序电路的不同表述实现时序电路的不同表述 第5页/共43页3.3 计数器设计计数器是典型的时序逻辑电路,它用来累计和记忆输入脉冲的个数。是数字系统中很重要的基本操作。计数是计谁的数?主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。本例设计的是一个4位二进制加法计数器。第6页/共43页3.3 计数器的VHDL设计 第7页/共43页3.3 计数器的VHDL设计 3.3.1 4位二进制加法计数器设计位二进制加法计数器设计 Buffer 只接收内部信号,不接收外部信号,兼有只接收内部信号,不接收外部信号,兼有out功能功能 Out类型端口只能输出,不能与内部信号运算类型端口只能输出,不能与内部信号运算 3.3.2 整数类型整数类型 第8页/共43页3.3.3计数器的其他VHDL表达方式 第9页/共43页3.3 计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 第10页/共43页七段(八段)数码管示意图第11页/共43页七段(八段)数码管实物图第12页/共43页对应的引脚给出相应的编码,即可发光。以共阴极数码管为例,如右图所示。数码管静态显示第13页/共43页数码管动态显示把所有数码管的8个笔划段a-h同名端共阳极连在一起,而每一个数码管的公阴极是各自独立地控制。第14页/共43页数码管动态显示所有数码管接收到相同的字形码。所有数码管的8个笔划段a-h同名端连在一起,同一个瞬间所有的数码管显示都是相同的。那么在一个屏幕上如何显示0,1,2,3,4,5这样不同的数字呢?第15页/共43页数码管动态显示首先显示一个数,然后关掉.然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。例如数码管显示01234567这么8个数,在实际的工作流程如下:先打开一个数码管送0,然后关掉。打开第二个数码管送1,再关掉,依次向下,由于速度足够快,那么我们将连续的看到01234567。第16页/共43页数码管编码case Q iswhen 0=segsegsegsegsegsegsegsegsegsegsegsegsegsegsegsegnull;end case;第17页/共43页3.4 实用计数器的VHDL设计 RSTENCLKCQ(3)COUTCQ(2)CQ(1)CQ(0)CNT10带有异步复位同步使能的十进制加法计数器第18页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 接下页接下页第19页/共43页3.4 实用计数器的VHDL设计 接上页接上页第20页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 1.十进制计数器相关语法十进制计数器相关语法 第21页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 2.程序分析程序分析第22页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 2.程序分析程序分析第23页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 3.时序模块中的同步控制信号和异步控制信号的构建时序模块中的同步控制信号和异步控制信号的构建 4.另一种描述方式另一种描述方式 第24页/共43页3.4 实用计数器的VHDL设计 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 3.时序模块中的同步控制信号和异步控制信号的构建时序模块中的同步控制信号和异步控制信号的构建 4.另一种描述方式另一种描述方式 第25页/共43页习 题3-1 画出与以下实体描述对应的原理图符号元件:画出与以下实体描述对应的原理图符号元件:第26页/共43页习 题3-2 图图3-16所示的是所示的是4选选1多路选择器,试分别用多路选择器,试分别用IF_THEN语句、语句、WHEN_ELSE和和CASE语句的表达方式写出此电路的语句的表达方式写出此电路的VHDL程序,要求程序,要求选择控制信号选择控制信号s1和和s0的数据类型为的数据类型为STD_LOGIC;当;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和和s1=1,s0=1时,分别执行时,分别执行y=a、y=b、y=c、y=d。第27页/共43页习 题3-3图图3-17所示的是双所示的是双2选选1多路选择器构成的电路多路选择器构成的电路MUXK,对于其中,对于其中MUX21A,当,当s=0和和s=1时,分别有时,分别有y=a和和y=b。试在一个结构体。试在一个结构体中用两个进程来表达此电路,每个进程中用中用两个进程来表达此电路,每个进程中用CASE语句描述一个语句描述一个2选选1多多路选择器路选择器MUX21A。第28页/共43页习 题3-4 将将3-20程序的计数器改为程序的计数器改为12进制计数器,程序用例进制计数器,程序用例3-21的方式表的方式表述,并且将复位述,并且将复位RST改为同步清改为同步清0控制,加载信号控制,加载信号LOAD改为异步控制改为异步控制方式。讨论例方式。讨论例3-20与例与例3-21的异同点。的异同点。3-5 设计含有异步清零和计数使能的设计含有异步清零和计数使能的16位二进制加减可控计数器。位二进制加减可控计数器。3-6 图图3-18是一个含有上升沿触发的是一个含有上升沿触发的D触发器的时序电路,试写出此电触发器的时序电路,试写出此电路的路的VHDL设计文件。设计文件。第29页/共43页习 题3-7 给出给出1位全减器的位全减器的VHDL描述。要求:描述。要求:(1)首先设计)首先设计1位半减器,然后用例化语句将它们连接起来,图位半减器,然后用例化语句将它们连接起来,图3-19中中h_ suber是半减器,是半减器,diff是输出差,是输出差,s _out是借位输出,是借位输出,sub _in是是借位输入。借位输入。(2)根据图)根据图3-19设计设计1位全减器。以位全减器。以1位全减器为基本硬件,构成串行位全减器为基本硬件,构成串行借位的借位的8位减法器,要求用例化语句来完成此项设计(减法运算是位减法器,要求用例化语句来完成此项设计(减法运算是 x y sun _in=diffr)。)。第30页/共43页习 题3-8 给出一个给出一个4选选1多路选择器的多路选择器的VHDL描述。选通控制端有描述。选通控制端有4个输入:个输入:S0、S1、S2、S3。当且仅当。当且仅当S0=0时:时:Y=A;S1=0时:时:Y=B;S2=0时:时:Y=C;S3=0时:时:Y=D。3-9 分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计数器即可办到。但对于现场实现指定分频比用触发器或指定计数模的计数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是很简单了。或小数分频率的分频电路的设计就不是很简单了。试对例试对例3-20的设计稍作修改,将其进位输出的设计稍作修改,将其进位输出COUT与异步加载控制与异步加载控制LOAD连在一起,构成一个自动加载型连在一起,构成一个自动加载型16位二进制数计数器,也即一个位二进制数计数器,也即一个16位可位可控的分频器,给出其控的分频器,给出其VHDL表述,并说明工作原理。设输入频率表述,并说明工作原理。设输入频率fi=4MHz,输出频率,输出频率fo=516.51Hz(允许误差(允许误差0.1Hz),),16位加载数值位加载数值=?。?。3-10 用用VHDL设计一个功能类似设计一个功能类似74LS160的计数器。的计数器。3-11 给出含有异步清零和计数使能的给出含有异步清零和计数使能的16位二进制加减可控计数器的位二进制加减可控计数器的VHDL描述。描述。第31页/共43页习 题3-12 分别给出以下分别给出以下2个个RTL图的图的VHDL描述,注意其中的描述,注意其中的D触发器和锁存触发器和锁存器的表述。器的表述。第32页/共43页KHF-5型 FPGA实验开发系统简介芯片简介:1、FPGA芯片型号:EP1K100QC208-32、ALTERA公司生产3、集成10万门4、引脚数为208第33页/共43页系统资源50MHz、22.1184MHz、11MHz时钟16个数据开关、4个脉冲开关、16个LED10个数码管:右边两个为静态显示,其他8个为动态显示A/D转换:ADC0809(8位)、MAX196(12位)D/A转换:DAC080044键盘、RS485接口、扩展接口、扬声器、液晶(12864)等第34页/共43页引脚设置I/O口口引脚引脚引脚资源引脚资源clk时钟PIN_8022.184M晶振F_IN待测频率PIN_18350M晶振COUT溢出 PIN_103LED管 H0H6十位显示PIN_170 172 173 174 175 176 177右边第二个数码管a b c d e f g L0L6个位显示PIN_161 162 163 164 166 167 168右边第一个数码管a b c d e f g第35页/共43页引脚设置步骤打开编译好的工程;选择菜单AssignmentAssignment Editor在出现的对话框中将Category项改为PIN;在下面的表格中双击To下面的列选择待分配的输入输出口,双击Location选择FPGA上相应的引脚;把所有引脚设置完成后对工程编译。第36页/共43页选菜单AssignmentAssignment Editor在页面中Category选 Pin 进行设置,如下图:第37页/共43页程序下载步骤安装KHF-5型实验开发系统软件;(如果安装过可省略此步骤)打开KHF-5型实验开发系统软件;连接实验箱电源线和串口线,打开电源开关;点页面左边的“串口设置”选择下载用的串口点击“器件选择”选“EP1K100”点击“文件下载”选择工程目录,在右边“文件下载”选中后缀为.pof的文件,点击下面的“写CPLD”按钮,如果设置正确会看到下载进度。当进度为100%时下载完毕。第38页/共43页KHF-5型 实验开发系统界面第39页/共43页串口设定对话框第40页/共43页器件选择对话框第41页/共43页文件下载对话框第42页/共43页谢谢您的观看!第43页/共43页