为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 偶数分屏器VHDL讲解

偶数分屏器VHDL讲解

2017-10-16 5页 doc 104KB 36阅读

用户头像

is_637320

暂无简介

举报
偶数分屏器VHDL讲解偶数分屏器VHDL讲解 先介绍一下通用的偶数分频器。该分频器能将输入信号进行偶数倍分频后输出,占空比为50%。 代码如下:(工程见example下的gen_div文件夹) 程序解释: 8:类属参数。类属参数可以从外面传入给该设计实体,类似于C语言中的函数参数。我们利用该类属参数来定义分频的倍数,这样在元件例化(下面介绍)过程中,用不同的传入参数来形成不同的分频倍数。分频倍数=div_param*2,因为高低电平分别持续div_param个输入时钟周期,所以需要乘以2,这也就是为什么会是偶数倍的分频。若外部没有传入参数...
偶数分屏器VHDL讲解
偶数分屏器VHDL讲解 先介绍一下通用的偶数分频器。该分频器能将输入信号进行偶数倍分频后输出,占空比为50%。 代码如下:(工程见example下的gen_div文件夹) 程序解释: 8:类属参数。类属参数可以从外面传入给该设计实体,类似于C语言中的参数。我们利用该类属参数来定义分频的倍数,这样在元件例化(下面介绍)过程中,用不同的传入参数来形成不同的分频倍数。分频倍数=div_param*2,因为高低电平分别持续div_param个输入时钟周期,所以需要乘以2,这也就是为什么会是偶数倍的分频。若外部没有传入参数,则默认为2分频。 14:复位信号。高电平时复位。 25-27:在复位期间,输出信号为低电平。 29:对输入信号clk进行计数。 30-32:当计数值达到指定的分频数时,输出信号取反,并清计数器。这样就达 到了占空比50%的效果。 36:并行赋值语句,输出信号。 该分频器会将在以后的例程中不断的用到,希望读者好好理解。 元件的运用是VHDL中比较重要的知识点,希望读者通过如下的讲解能够掌握其运用方法,并在以后的练习中多运用。 下面通过流水灯例程介绍元件的使用。 程序代码:(工程见example下的led_w文件夹) 程序解释: 10:输入时钟—40M。 17:保存分频出来的半秒脉冲信号。 19:一个指示那个led亮的数组,任何时刻只有一位是1,即只有一个led处于点亮状态。通过移动这个唯一的1,来逐次点亮LED,达到流水灯的效果。 21-29:元件声明,即将上面所讲的偶数分频器声明为一个元件。22句设置类属参数,即传入分频倍数10000000,进行10000000×2=20000000分频,产生半秒脉冲。 元件简单的说就是把一个实体看成是可以调用的整体,可以类比成C语言中函数。而元件的例化就相当于函数的调用,在元件例化时要先进行元件的声明,这就可以类比成函数的声明。 元件的声明如下(”[]”标注的可以省略): Component 元件名称 is [generic ()] 类属列; [Port(端口列表);] End component; 提示:一般的就直接把要调用的实体的声明整体拷贝过来,然后把entity改成component就可以了。 35-41:元件例化,使调用实体和被调用元件产生实际的关联。 元件例化的语法结构: 元件标签:元件名称[port map(关联列表)]; 所谓的关联就是把调用元件的实体中的信号(可以称为实际参数)与被调用元件端口(可以成为形式参数)连接起来。实际参数必须是信号。 关联可以有两种方法,这里介绍的的是名称关联法,其结构就是用“=>”把行参和实参联系起来。个人觉得,这个名称关联法比较方便,不易出错。 对于任何一种关联,必须遵循两个规则: 1. 形式参数和实际参数的类型必须相同。 2. 端口模式必须相同。比如,实际参数是out的端口,那它就不能和形式参数 中in的端口相连。 46-48:当复位时,初始led_tmp,使最左边的LED亮,其它都灭。 49-60:在半秒脉冲的驱动下,左移led_tmp使逐次向右点亮。这里解释一下为什么要计数cnt。刚开始时,led_tmp=001,一个脉冲来后,在53句的驱动下变为010,再来一个脉冲,变为100,再来一个脉冲,此时若没55-57的判断,而是继续执行53-54,那么led_tmp变为000,这样一下,下接下来的脉冲的驱动下led_tmp始终为0,即led全灭,流水灯的功能就不能实现了。所以在第三个脉冲来的时候,通过55-57的操作,将led_tmp强置为001,这样即可达到流水灯的效果。 63-76:用计数器在内部产生一个由高到低的信号,来充当复位信号。但这样由内部产生的复位信号不可靠,建议在实际应用中,由外部信号充当复位信号。该内部产生复位的方法仅作参考。 改变流速: 可通过修改分频的倍数来改变流水灯的速度,分频倍数越大,流速越慢,反之,越快,但不能太快,因为若当分频后时钟州周期小于人的视觉暂留时间0.1s的话,人眼就会觉的这个逐次点亮的过程是连续的,即被眼睛“误解”为这三个led始终都是亮的。 改变流向: 将47句改为led_tmp<="100";53句改为led_tmp<='0'&led_tmp(2 downto 1);56 句改为led_tmp<="100";这样即可变为左流动。
/
本文档为【偶数分屏器VHDL讲解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索