1、基于VHDL的占空比50的7分频题目: 基于VHDL的占空比50%的7分频电路设计XX: 学 号: 班 级: 指导教师: 成绩:摘要:在数字逻辑电路设计中,分频器是一种根本电路, 通常用来对某个给定频率的时钟进展分频, 得到所需的时钟。时序电路设计中需要各种各样的分频器来获得不同频率的时钟,其中以整数分频器最为常见。整数分频可以简单的使用模 n计数器实现,即随驱动时钟跳变n 次后就输出一个进位脉冲,然后立即被清零或置位,再开场新一轮的循环的计数。 模 n计数器的进位脉冲的宽度一般与驱动时钟一样, 这对于边沿驱动的时序逻辑并不会带来什么问题。但是在某些需要使用电平逻辑的设计中,我们更希望分频时钟
2、拥有 50%,或者与驱动时钟一样的占空比。 这时就需要通过另外的逻辑方法来进展分频, 或者使用 PLL。在基于 CPLD复杂可编程逻辑器件/FPGA现场可编程门阵列的数字系统设计中,很容易实现由计数器或其级联构成各种形式的偶数分频及非等占空比的奇数分频, 但对等占空比的奇数分频及半整数分频的实现较为困难。 本文利用 VHDL超高速集成电路硬件描述语言,通过 Quartus II 7.1 开发平台,设计了一种能够实现占空比50%的7分频电路设计,这种设计方法原理简单,可重用性好,而且只需很少的逻辑宏单元。 关键词: VHDL 占空比 分频器1、VHDL语言1.1 、VHDL语言的介绍VHDL语言
3、是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的构造、行为、功能和接口。除了含有许多具有硬件特征的语句外VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序构造特点是将一项工程设计,或称设计实体可以是一个元件,一个电路模块或一个系统分
4、成外部或称可视局部,及端口)和部或称不可视局部,既涉及实体的部功能和算法完成局部。在对一个设计实体定义了外部界面后,一旦其部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成外局部的概念是VHDL系统设计的根本点。1.2 、VHDL语言的特点1功能强大、设计灵活支持广泛、易于修改2强大的系统硬件描述能力3独立于器件的设计、与工艺无关4很强的移植能力5易于共享和复用2、分频电路的设计分频电路是数字系统设计中的根本电路。在硬件电路设计中,时钟信号是最重要的信号之一,经常需要对较高频率的时钟进展分频操作,得到较低频率的时钟信号。2.1分频电路的分类:1)、任意占空比的偶数分频及非等占空
5、比的奇数分频,通常由计数器或计数器的级联来完成。2)、等占空比的奇数分频电路。要实现占空比为50的M=2N+1分频电路。2.2任意奇数倍2N+1分频占空比为 X/(2N+1)或2N1-X/2N+1分频,模2N1计数器模块可以实现。取 0 至2N之间某一数值 X(0X2N),当计数器时钟上升沿从 0 开场计数到 X值时输出时钟翻转一次,在计数器继续计数到达 2N1 时,输出时钟再次翻转并对计数器置一复位信号,使之从 0 开场重新计数,即可实现。 2.3 占空比为 50的分频 2.2 中占空比为非 50的输出时钟在输入时钟的上升沿触发翻转。假设在同一个输入时钟周期,此计数器分别在输入时钟的上升沿和
6、下降沿触发翻转得到的两路信号,再将所得到的信号进展逻辑或,即可得到占空比为 50的奇数倍分频时钟。另外,对于实现占空比为50%的N倍奇数分频,首先进展上升沿触发进展模N计数,计数选定到某一个值进展输出时钟翻转,然后经过N-1/2再次进展翻转得到一个占空比非50%奇数n分频时钟。再者同时进展下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值一样值时,进展输出时钟时钟翻转,同样经过N-1/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。另外一种方法:对进展奇数倍n分频时钟,首先进展n/2分频带小数,即等于(n
7、-1)/2+0.5,然后再进展二分频得到。得到占空比为50%的奇数倍分频。奇数倍分频原理下列图所示:3、占空比为50%的7分频电路的设计3.1、7分频电路的RTL视图,如下:3.2、基于VHDL的占空比为50%的7分频电路的代码程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity clk_div3 is port(clk_in: in std_logic; clk_out: out std_logic); end clk
8、_div3; architecture a of clk_div3 is signalt1,t2: integer range 0 to 6; signal clk1, clk2: std_logic; begin process(clk_in)-上升沿 begin if(rising_edge(clk_in) then if(t1 6) then t1 =t1 + 1; else t1 = 0; end if; if(t1 3) then clk1 = 1; else clk1 = 0; end if; end if; end process; process(clk_in)-下降沿 beg
9、in if(falling_edge(clk_in) then if(t2 6) then t2 =t2 + 1; else t2 = 0; end if; if(t2 3) then clk2 = 1; else clk2 = 0; end if; end if; end process; clk_out = clk1 or clk2; end a;3.3、占空比为50%的7分频仿真4、心得体会通过本次的设计,我加深了对EDA课程的认识和了解。一方面,这也是理论到实践的一个过渡;另一方面,通过软件的学习,虽然刚开场的时候很难学,不懂得操作,可是弄多了就上手了。另外,刚开场学这门课的时候,看到的是一段段的代码,很繁琐的东西,顿时感到烦倦,完全提不起学习的兴趣。可是通过这个分段器的设计,让我明白到任何一个东西,只要肯用心,花心机去弄懂它,最终我们会承受它,从中得到乐趣。至少我们接触了以后不会排斥它。而且任何知识都是有用的,只是时间的问题。当我们不知道它有什么用的时候,先学好,不要到了书到用时方恨少的境地。5、参考文献1 阎石主编,清华大学电子学教研组编数字电子技术根底:高等教育2 多利,丽,高明伦等可配置非幂方分频器的全新设计方法 J 1电子学报3 汪虹,宏基于FPGA 的等占空比任意整数分频器的设计仪器与仪表4 松,黄继业EDA 实用技术教程:科学
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1