《EDA技术案例教程》课件-第5章_第1页
《EDA技术案例教程》课件-第5章_第2页
《EDA技术案例教程》课件-第5章_第3页
《EDA技术案例教程》课件-第5章_第4页
《EDA技术案例教程》课件-第5章_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

第5章综合训练5.1任务一:占空比可调分频器的设计5.2任务二:可调数字电子钟设计5.3任务三:等精度频率计5.4任务四:DDS信号源的设计

5.1 任务一:占空比可调分频器的设计

5.1.1案例分析

占空比(DutyCycle)是指周期性脉冲信号的高电平占整个周期的比率;分频是指将一个周期性信号的频率降低为原来的1/N,就叫N分频,N称为分频系数。本案例要求设计一个占空比可调的分频器,即对输入的标准时钟信号进行分频,且能改变信号的占空比。通过两组预置数据A和B来改变分频数和占空比。A和B的值决定分频系数和占空比。

计数器可以实现分频功能,计数器的模即为分频系数,改变计数器的预置值,即可改变分频系数。根据设计要求,本案例采用两个8位可预置计数器和一个D触发器构成(见图5-1)。两个计数器的预置数A和B分别控制输出信号高低电平的宽度,从而既可以改变分频系数,也可以改变占空比。

图5-1占空比可调分频器原理图

5.1.2案例设计

根据案例分析及原理图,我们先进行相关底层模块的设计。

(1)

8位可预置计数器模块的VHDL设计(cnt8.vhd),其符号图如图5-2所示。

图5-28位可预置计数器符号图

8位可预置计数器模块仿真波形图如图5-3所示。

图5-38位可预置计数器模块仿真波形图

(2)

D触发器模块的VHDL设计(d_ff.vhd),其符号图如图5-4所示。

图5-4D触发器符号图

(3)顶层电路的原理图设计(clk_div.bdf)。

在各底层模块编译通过,并且功能验证正确后,再建立顶层文件。把两个计数器的器件“组装”起来,构成占空比可调分频器(见图5-5)。

图5-5占空比可调分频器电路图

占空比可调分频器仿真波形图如图5-6所示。

图5-6占空比可调分频器仿真波形图

5.1.3思考题

1.预置数A、B与分频系数和占空比是什么关系?写出表达式。

2.若要求实现9分频,占空比为1∶3,则A、B应设为何值?

3.给这个分频器增加一个控制端EN,当EN =

'0'时分频器正常工作,EN =

'1'时停止工作。

5.2 任务二:可调数字电子钟设计

5.2.1 案例分析

1.设计功能要求电子钟结构图如图5-7所示,具体功能如下:

(1)具有时、分、秒计数显示功能,以24小时循环计时。

(2)具有清零,使能,调节小时、分钟的功能。图5-7电子钟结构图

2.设计内容

(1)根据电路特点,用层次设计方法,将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。可以多人分别编程和调试,然后再将各模块联机联试,以培养合作者之间的合作精神,同时加深层次化设计概念。

(2)了解器件管理的含义,以及模块器件之间的连接概念。

3.设计步骤

(1)根据系统设计要求,采用“自顶向下”设计方法,由秒计数模块、分计数模块、时计数模块、动态扫描显示模块和7段译码模块五部分组成。画出系统的原理框图,说明系统中各主要组成部分的功能。

(2)编写各个模块的VHDL程序。

(3)编好用于系统仿真的仿真测试文件。

(4)根据选用的目标芯片及开发平台进行管脚锁定。

(5)记录系统仿真、硬件测试结果。

(6)记录实验过程中出现的问题及解决办法。

5.2.2 相关知识点

1.静态和动态显示原理

点亮LED显示器有静态和动态两种方法。所谓静态显示,就是显示某一字符时,相应的发光二极管恒定导通或截止。这种方法,每一显示位都需要一个8位的输出口控制,占用的硬件较多,一般仅用于显示位数较少的场合。而动态显示就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次,利用人的视觉暂留感达到显示的目的。显示器的亮度跟导通的电流有关,也和点亮的时间与间隔的比例有关。动态显示器因其硬件成本较低而得到广泛的应用。

为了显示字符和数字,要为LED显示器提供显示段码(或称字形代码),组成一个“8”字形的7段,再加上一个小数点位,共计8段,因此提供LED显示器的显示段码为1个字节。各段码的对应关系如表5-1所示。

用LED显示器显示十六进制数和空白及P的显示段码,如表5-2所示。从LED显示器的显示原理可知,为了显示字母和数字,必须将显示段码转换成相应的段选码。这种转换可以通过硬件译码器或软件进行译码。

2.电子钟设计原理

在一块FPGA芯片上集成如下电路模块:

(1)时钟计数:

秒——六十进制BCD码计数。

分——六十进制BCD码计数。

时——二十四进制BCD码计数。

同时,整个计数器有清零、使能、调时、调分功能。

(2)

6位8段共阳极数码管动态扫描显示时、分、秒。

提供的8421BCD码,经译码电路后成为8段数码管的字形显示驱动信号a、b、c、d、e、f、g。扫描电路通过可调时钟输出片选驱动信号,片选地址为SEL[5..0]。由SEL[5..0]和LED[6..0](a,b,c,d,e,f,g)、dp决定了8位中的哪一位显示和显示什么字形。SEL[5..0]变化的快慢决定了扫描频率的快慢。

5.2.3案例设计

1.原理图

电子钟原理图如图5-8所示(模块化设计),说明如下。

(1)模块说明:各模块都用VHDL编写。

(2)秒计数及时钟控制模块:SECOND.VHD。

(3)分计数及时钟控制模块:MINUTE.VHD。

(4)时计数及时钟控制模块:HOUR.VHD。

(5)动态扫描显示模块:DTSCAN.VHD。

(6)

7段译码模块:DELED.VHD。

图5-8电子钟电路原理图

2.参考VHDL源程序

秒计数及时钟控制模块仿真波形图如图5-9所示。

图5-9秒计数及时钟控制模块仿真波形图

(2)分计数及时钟控制模块VHDL程序(minute.vhd)。

分计数及时钟控制模块仿真波形图如图5-10所示。

图5-10分计数及时钟控制模块仿真波形图

(3)时计数及时钟控制模块VHDL源程序(hour.vhd)。

时计数及时钟控制模块仿真波形图如图5-11所示。

图5-11时计数及时钟控制模块仿真波形图

(4)动态扫描显示模块VHDL程序(dtscan.vhd)。

动态扫描显示模块仿真波形图如图5-12所示。

图5-12动态扫描显示模块仿真波形图

(5)

7段译码显示模块的VHDL程序(deled.vhd)。

7段译码显示模块仿真波形图如图5-13所示。

图5-137段译码显示模块仿真波形图

5.2.4思考题

1.如何增加整点报时的同时LED灯花样显示的功能?

2.如何增加扬声器在整点时有报时驱动信号产生(响声持续5s)?

3.LED灯如何按要求在整点时有花样显示信号产生?

4.用动态扫描电路实现显示功能的好处有哪些?

5.3 任务三:等精度频率计

5.3.1案例分析所谓频率,就是周期性信号在单位时间内变化的次数。频率测量的方法主要有直接测量法和间接测量法。直接测量法即在给定的闸门时间内测量被测信号的脉冲个数,也称脉冲计数法;间接测量法包括周期测频法、V-F转换法等。这两种方法分别适用于测量高频信号和低频信号,本案例我们讨论的是脉冲计数法。

脉冲计数法的原理是,在给定的(已知的)闸门时间Tg内对被测脉冲信号进行计数,得到脉冲数Nx,被测信号频率Fx通过下式求出:

(5-1)

式(5-1)计算出单位时间内脉冲个数,即被测信号的频率Fx。

脉冲计数法的测量误差来源于闸门时间Tg和计数值Nx,计数值Nx存在“±1个脉冲误差”。如图5-14所示,闸门信号开启后,开始对被测信号的上升沿进行计数,在同样的闸门时间内,由于被测信号与闸门信号在时间上的相对位置不同,计数值可能相差1个,这就是±1个脉冲误差。这种误差是由于被测信号与闸门信号不同步,而且两者之间也不是整数倍的关系。实际上,被测信号和闸门信号在时间上是随机出现的,两者没有同步关系,也无法保证是整数倍关系。

图5-14

±1个脉冲误差示意图

另一方面,无论被测信号频率高或低,这种误差都是1个脉冲,因此,这种方法的测量精度是不定的。被测信号频率Fx与闸门时间Tg越大,测频精度越高,反之精度越低。

从以上分析可知,为了在较大的频率范围内保持恒定的测量精度,实现等精度测量,就需要在闸门信号和被测信号之间建立一种同步关系,使实际闸门时间内被测信号的周期数为整数。基于这种思想,我们采用一个D触发器来实现信号的同步(见图5-15)。

图5-15信号同步原理图

图5-15中CNT_EN为计数器使能端,CLK为计数信号输入端,当CNT_EN=1时计数器开始计数。将被测信号作为D触发器的触发信号,当被测信号的上升沿到来,同时闸门信号也到来时,CNT_EN=1,计数器开始计数。

图5-16信号同步时序图

由于引入了D触发器,此时实际闸门信号变成了CNT_EN信号,CNT_EN不会在闸门信号发生变化时立即变化,而是在被测信号上升沿到来时才发生变化,这就保证了CNT_EN与被测信号的同步,无论被测信号和闸门信号的发生时间怎样,CNT_EN的宽度总是被测信号周期的整数倍,不会产生 ±1个脉冲误差(见图5-16)。

从图5-16中还可以看出,虽然消除了 ±1个脉冲误差,但CNT_EN信号的开启时间与闸门信号的开启时间并不相等,因此不能直接用式(5-1)来计算被测频率。为解决这一问题,我们引入一路标准时钟信号和另一个计数器,在测量被测信号频率的同时,对标准时钟信号进行计数,再通过换算得到被测信号频率(见图5-17)。

图5-17等精度测频电路结构图

在图5-17中的CNT_EN =

1时,两个计数器同时对标准时钟信号和被测信号进行计数,由于两个计数器计数时间相等,可得:

整理得:

(5-2)

其中,N0为标准时钟计数值;F0为标准时钟频率(已知);Nx为被测信号计数值;Fx为被测信号频率。

由式(5-2)可知,由于引入了标准时钟信号,所以不需要知道实际闸门时间即可得到被测频率。测频精度取决于标准时钟信号的精度,而触发器的引入,使得允许计数周期总是被测信号周期的整数倍,这正是等精度频率测量的关键。

不难看出,对标准时钟信号的测量仍然存在±1个脉冲误差。标准时钟信号通常由石英晶体振荡器产生,频率的精度和稳定度都很高,而且通常比被测信号频率高得多,因此大大提高了频率测量范围和测量精度。

5.3.2案例设计

本案例采用层次化设计方法,先进行计数器的设计。程序代码如下:

这是一个异步清零、同步使能16位二进制计数器,顶层文件采用原理图方式,调用2个计数器和1个D触发器组成(见图5-18)。

图5-18等精度频率计

图5-19所示的是仿真结果,在设置仿真信号时,将被测信号Fx的周期设为标准信号F0的十倍。从仿真波形图可以看到,计数结果符合预期,达到了设计要求。

图5-19仿真波形图

5.3.3思考题

1.为什么标准时钟信号频率应比被测信号频率高?若不满足此条件会有什么问题?

2.本案例是等精度频率测量的核心模块,作为一个实用的频率计还需要增加哪些功能?请提出一个完整的设计方案。

5.4 任务四:DDS信号源的设计

5.4.1案例分析

DDS(DirectDigitalSynthesis)即直接数字合成,是一种从相位出发直接合成所需要的波形的数字频率合成技术。同传统的频率合成技术相比,DDS技术具有很高的频率分辨率,可以实现快速的频率变化,并且在频率改变时能保持相位连续,容易实现对信号频率、相位的多种调制,易于功能扩展和数字化集成等优点,满足了现代电子系统的多种要求。

正弦信号可以用下式来描述:

u(t) = sin(2πfot) = sinθ(t)(5-3)

式(5-3)中的时间t是连续的,为了用数字方式实现,必须进行离散化处理。

用周期为Tclk的基准时钟对信号进行采样,采样周期为Tclk(采样频率fclk=1/Tclk),不难看出,连续两次采样之间的相位增量为

(5-4)

我们将整个周期2π分成2N份,则相位的量化单位δ = 2π/2N。若Δθ = δ,代入式(5-4)可得fo

=

fclk/2N。更一般的情况是Δθ为δ的M倍,即可得到输出信号的频率:

(5-5)

M称为频率控制字(TuningWord)。由式(5-5)可见,M决定了输出信号的频率,且两者是简单的线性关系。可以看出,当采样频率一定时,通过控制两次连续采样之间的相位增量(即通过频率控制字M),即可控制离散波形序列的频率,经保持和滤波后,可唯一地恢复出此频率的模拟信号。这就是DDS的原理。

所决定的相位增量累加一次,如果记数大于2N,则自动溢出;波形查找表实际是一个存储器(ROM),其中存储着一个周期正弦波的幅度量化数据,用于实现从相位到幅度的转换。相位累加器的输出作为波形查找表的地址值,查找表根据输入的地址(相位)信息读出幅度信号,送到DAC中转变为模拟量,最后通过滤波器输出一个平滑的模拟信号。

图5-20DDS原理框图

根据式(5-5),我们可以确定DDS的一些基本参数:

输出信号的分辨率(最小频率)

(5-6)

此时每2N个时钟周期输出一个周期的正弦波。

输出信号一个周期内的点数:

(5-7)

当N比较大时,对于较大范围内的M值,DDS系统都可以在一个周期内输出足够的点,保证输出波形失真很小。

当基准时钟确定后,输出信号频率(fo)、频率控制字(M)之间必须满足采样定理,即fclk应大于fo的2倍。实际应用中,为保证输出波形的质量,fclk至少应为fo的4倍。由于D/A转换电路的转换时间应小于1/fclk,因此DDS系统的时钟频率、信号输出频率主要由DAC的性能决定。

5.4.2案例设计

Altera公司的CycloneⅡ系列FPGA器件采用查找表(LUT)和嵌入式阵列块(EAB)相结合的结构模式。LUT结构适用于实现高效的数据通道、增强型寄存器、数学运算及数字信号处理设计,而EAB结构可实现复杂的逻辑功能和存储器功能(每个EAB有4位的RAM)。因此,在这类器件中可以很方便地实现相位累加器和波形查找表。

这个程序描述了一个简化的DDS结构(见图5-21),限于篇幅,只给出了64点(N =

6)的正弦波形表,频率控制字的位宽取4位。根据式(5-7)可知,在最高频率处(M =

15),每个周期波形有4次采样,可以唯一地恢复出此频率的模拟信号。

图5-21

VHDL程序的实体结构

实际上在许多情况下,EDA工具软件会自动识别VHDL程序中某些程序结构并将其综合为存储器,并自动调用嵌入式RAM构建的LPM存储器模块来实现,从而大大节省逻辑资源的耗用。可以综合为存储器的最典型的语句结构是CASE语句,EDA软件将其综合为存储器的方法是将CASE语句表达式的选择值作为地址信号,各条件分支的赋值数据作为对应地址中存储的数据,比如“when00=>D<=255;”就是将数据255存放于地址00中,CASE语句的执行就是按照地址从存储器中读取数据。设置方法是进入Settings对话框,选择“Analysis&SynthesisSettings”,单击“MoreSettings”,将“AutoRAMReplacement”设为“On”即可(见图5-22)。

图5-22调用嵌入式存储器

图5-23所示是该程序在QuartusⅡ中的仿真结果,图中频率控制字TW =

0100(即M =

4),可以看出,此时一个周期由16个点组成。

图5-23QuartusⅡ的仿真波形

5.4.3SignalTapⅡ的使用

1.打开SignalTapⅡ编辑窗口

在设计项目中新建文件,选择SignalTapIILogicAnalyzerFile,即可打开SignalTapII编辑窗口(见图5-24)。

图5-24

SignalTapⅡ编辑窗口

2.调入待测信号

InstanceManager栏内的auto_signaltap_0表示一组待测信号名,单击此名可以将其改为“dds”,然后为其调入具体的待测信号;然后在其下栏空白处双击,即弹出NodeFinder窗口,再于Filter栏选择“Pins:all”,单击List按钮,即出现与此项目有关的所有信号。选择需要观察的信号名,此案例我们选择TW和DD,单击“OK”按钮即可将这些信号调入SignalTapⅡ的信号观察窗口(见图5-25)。注意不要将主频时钟信号CLK调入信号观察窗口,因为在此案例中我们将用CLK信号兼作逻辑分析仪的采样时钟;也不要随意调入不必要的信号,以免SignalTapII无谓地占用芯片内过多的存储资源。

图5-25调入待测信号

3.SignalTapⅡ参数设置

在SignalConfiguration栏中设置SignalTapⅡ的参数。首先设置逻辑分析仪的采样时钟信号,单击Clock栏右侧的“…”按钮,即出现NodeFinder窗口,本案例选择设计项目中的主频时钟信号“CLK”作为逻辑分析仪的采样时钟;接着在Data框的SampleDepth栏选择采用深度为“2K”。采用深度一旦确定,则dds信号组的每一位信号都将获得同样的采样深度,所以应根据待测信号的采样要求、信号数量以及目标芯片的资源等情况,合理确定采样深度,以免发生嵌入式存储器不够用的情况。

然后在Trigger栏设置采样深度中起始触发的位置,可以选择前触发“Pretriggerposition”。最后选择触发信号和触发方式,选中“Triggerin”复选框,在Source框选择触发信号,此案例选择“CLR”作为触发信号,在触发方式Pattern下拉列表框中选择高电平触发方式,即当CLR为高电平时,SignalTapⅡ在CLK的驱动下对dds信号组中的信号进行采样(见图5-26)。

图5-26SignalTapⅡ参数设置

4.文件保存、编译下载

完成以上步骤后选择File→save命令,保存SignalTapⅡ文件,默认文件名为“stp1.stp”,点击保存后会出现提示“DoyouwanttoenableSignalTapⅡ…”,应选择“是”,表示同意在编译时将此文件与设计项目(dds)捆绑在一起进行编译,以便一同下载进目标芯片去完成实时测试任务。如果选择了否,也可以自行设置,方法是打开Settings窗口,选择“SignalTapⅡLogicAnalyzer”,在SignalTapⅡFilename栏中选择已保存的SignalTapⅡ文件“stp1.stp”,并选中“EnableSignalTapⅡLogi

温馨提示

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

评论

0/150

提交评论