实验七 分频器电路设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七、分频器电路设计

一、实验目的

1、学习任意分频器的设计方法;

2、学习数控分频器的设计、分析和测试方法。

二、实验要求

1、基本要求

1、设计一个偶分频器

2、设计一个2n分频器

3、设计一个奇分频器

4、设计一个半整数分频器

5、设计一个数控分频器

2、扩展要求

1、设计一个任意N分频计数器。N为奇数或偶数

2、设计一个硬件电子琴电路

三、实验原理

1、偶数分频

对时钟进行偶数分频,使占空比为50%。只要使用一个计数器,在计数器的前一半时间使输出为高电平,在计数器的后一半时间使输出为低电平,即可得到偶分频时钟。

2、奇数分频

对时钟进行奇数分频,使占空比为50%。先对输入时钟的上升沿进行计数,让一个内部信号在前一半时间(分频系数除2取整)为高电平,后一半时间为低电平;再对输入时钟的下降沿进行计数,让另一个内部信号在前一半时间为高电平,后一半时间为低电平;然后将这内部两个信号相或后即得到奇数分频时钟。

3、2n分频器

用一个M(2M>=f0)位的二进制计数器对输入时钟进行计数。其第0位为输入时钟的二分频,第1位为输入时钟的四分频,第2位为输入时钟的8分频,依此类推,第n-1位为输入时钟的2n分频。

4、半整数分频器

分频系数为N=0.5的整数倍的分频器电路可由一个异或门、一个模N的计数器和一个2

分频构成。通用半整数分频器电路组成如图7-1所示。

图7-1 通用半整数分频器电路框图与原理图

5、数控分频器

数控分频器的功能就是在输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比。数控分频器一般是用计数值可并行预置的加法计数器完成的,方法是将计数溢出位与预置数加载输入信号相接即可。

四、实验步骤

建立一个工程项目,路径如:D:\20050837\seventh ,项目名和顶层实体名为freq_div 。

1、设计一个分频系数可预置的偶分频器(如8分频器),并进行编译仿真。

2、设计一个2n 分频器(如输入频率为1024HZ ,输出频率为256HZ ,64Hz ,4Hz 等),并进行编译仿真。

3、设计一个分频系数可预置的占空比为50%的奇分频器(如5分频器),并进行编译仿真。

4、根据图7-1设计一个分频系数是N-0.5的半整数分频器,并进行编译仿真。

5、设计一个数控分频器,进行编译仿真,下载测试,并画出该程序的RTL 电路图。

图7-2 当给出不同输入值D 时,FOUT 输出不同频率(CLK 周期=50ns)

(1) 仿真:输入不同的CLK 频率和预置值D ,给出如图7-2 的时序波形。

(2) 下载测试:频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT 接扬声 器(SPKER)。编译下载后进行硬件测试:改变输入值,可听到不同音调的声音。

五、参考程序

1、偶分频器程序

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY FDIV8 IS

GENERIC (N:INTEGER:=8);

PORT(CLR,CLKIN:IN STD_LOGIC;

CLKOUT:OUT STD_LOGIC);

END FDIV8;

ARCHITECTURE ONE OF FDIV8 IS

SIGNAL COUNT:INTEGER;

BEGIN

PROCESS(CLKIN,CLR)

BEGIN

IF CLR=‘1’ THEN COUNT<=0;

ELSIF(CLKIN'EVENT AND CLKIN=‘1’ )THEN

IF(COUNT=N-1) THEN COUNT<=0;

ELSE COUNT <=COUNT +1 ;

IF COUNT< INTEGER(N/2) THEN

CLKOUT<=‘0’;

ELSE

CLKOUT<=‘1’;

END IF;

END IF;

END IF;

END PROCESS;

END ONE

2、设计一分频器,输入频率为1024HZ,输出频率为512HZ,64HZ,4HZ,1HZ. LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FPQ IS

PORT(CLK,CLR:IN STD_LOGIC;

CLK1024,CLK64,CLK4,CLK1:OUT STD_LOGIC);

END FPQ;

ARCHITECTURE ART OF FPQ IS

SIGNAL COUNT:STD_LOGIC_VECTOR(9 DOWNTO 0);

BEGIN

PROCESS(CLK,CLR)

BEGIN

IF(CLR=‘1’)THEN COUNT<=( OTHERS=>’0’);

ELSIF(CLK'EVENT AND CLK=‘1’ )THEN

COUNT<=COUNT +‘1’;END IF;

END IF;

END PROCESS;

CLK1<=COUNT(9); CLK4<= COUNT(7);

相关文档
最新文档