目的:实现分频器设计。

1.  设计一个分频器实现将原信号进行8分频,所得信号占空比为50%。

分频是将单一频率信号的频率降为原来的1/N,就叫N分频。将信号进行8分频,即所得信号频率是原信号频率的1/8,则其所得信号的1个周期等于原始信号的8个周期。

占空比是高电平持续时间占整个周期的比值。占空比为50%意思是高低电平持续时间一样,均为半个周期的时间长。

程序

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;entity frequency_divider isport(clk     :in std_logic;  --原始信号fp_out    :out std_logic  --经过分频后的输出信号);
end frequency_divider;architecture behave of frequency_divider is
begin process(clk)variable count    :integer := 0; --integer决定分频数Nbeginif(clk'event and clk = '1') then    --上升沿count := count + 1;      --对上升沿的个数进行计数,其实就是对原始信号的周期进行计数if(count < 5) thenfp_out <= '1';  --输出信号在原始信号的前四个周期内保持高电平elsif(count <8) thenfp_out <= '0';  --输出信号在原始信号的后四个周期内保持低电平end if;if(count = 8) then   --因为是8分频,所以当计数到8时要将计数值清0count := 0;end if;end if;end process;
end behave;

波形仿真图

2.  设计一个分频器实现将原信号进行8分频,所得信号占空比为25%。

在上个程序的基础上,对高电平持续时间进行修改,即可实现占空比的修改。

程序

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;entity frequency_divider isport(clk     :in std_logic;  --原始信号fp_out    :out std_logic  --经过分频后的输出信号);
end frequency_divider;architecture behave of frequency_divider is
begin process(clk)variable count    :integer := 0; --integer决定分频数Nbeginif(clk'event and clk = '1') then    --上升沿count := count + 1;      --对上升沿的个数进行计数,其实就是对原始信号的周期进行计数if(count < 3) thenfp_out <= '1';  --输出信号在原始信号的前两个周期内保持高电平elsif(count <8) thenfp_out <= '0';  --输出信号在原始信号的后六个周期内保持低电平end if;if(count = 8) then   --因为是8分频,所以当计数到8时要将计数值清0count := 0;end if;end if;end process;
end behave;

波形仿真图

【VHDL语言学习笔记(七)】 分频器相关推荐

  1. VHDL 语言学习笔记(1)

    一,VHDL语言的基本语法 1.VHDL语言的标识符规则:1).由大小写字母,数字和下划线组成: 2).任何标识符必须以英文字母开头: 3).不以_为末字符: 4)不能出现连续的_; 5)不区分大小写 ...

  2. 【VHDL语言学习笔记(二)】 4位向量加法器

    目的:使用VHDL文本输入法设计并实现一个4位向量加法器. 程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsig ...

  3. c语言第七章作业,C语言学习第七章

    今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针. 指针:指针是一个变量,它存储另一个对象 ...

  4. 笔记:FPGA与VHDL语言学习2

    FPGA与VHDL语言学习2 目录 1. 7位2进制计数器程序,要求计算器从0开始计数,计数到59(十进制的59,看到的是二进制数)后归零,重新循环计数 2. 2位十进制计数器程序,要求计数器从00开 ...

  5. 笔记:FPGA与VHDL语言学习3

    FPGA与VHDL语言学习3 目录 1. LPM_RAM的设置和调用方法,设计一个LPM_RAM 2. 简易正弦信号发生器(这里要使用的 data7X8 .mif 文件),要求用LPM设计一个七位计数 ...

  6. 笔记:FPGA与VHDL语言学习4

    FPGA与VHDL语言学习4 目录 1.<自动售货机控制器设计>,输入程序代码,对代码进行编译,试用Assignments→Assignment Editor进行I/O引脚锁定,重新编译 ...

  7. 笔记:FPGA与VHDL语言学习1

    FPGA与VHDL语言学习1 目录 1.EDA,fpga,asic 2.CPLD与FPGA 3.设计一个三选一FPGA程序 4.使用由半加器与全加器程序生成一个f_adder全加器图形模块.试用4个f ...

  8. VHDL语法学习笔记:一文掌握VHDL语法

    今天给大侠带来FPGA 之 VHDL 语法学习笔记,话不多说,上货. VHDL语法学习笔记 一.VHDL简介 1.1 VHDL 的历史 VHDL 的 英 文 全 名 是 Very-High-Speed ...

  9. 梓益C语言学习笔记之指针

    梓益C语言学习笔记之指针 一.32位平台下,地址是32位,所以指针变量占32位,共4个字节 二.内存单元的地址即为指针,存放指针的变量称为指针变量,故:"指针"是指地址,是常量,& ...

  10. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

最新文章

  1. win10系统上安装cmder并实现右键启动
  2. 美博士环保聚焦“限漆令”出台之后的涂料行业
  3. 学习java时的一些笔记(4)
  4. system函数的返回值和执行脚本的返回值
  5. 【Pytorch神经网络实战案例】08 识别黑白图中的服装图案(Fashion-MNIST)
  6. WebLogic11g 安装配置规范
  7. 采用python解决实际问题_应用 Python 解决一些实际问题
  8. Markdown 语法速查表
  9. 安装卸载Windows服务
  10. CATIA V5汽车焊接夹具设计从基础到高级培训视频教程
  11. mysql创建视图演示_mysql怎么创建视图?(图文+视频)
  12. MySQL-次日留存率问题
  13. MongoDB:查询文档
  14. 深入理解以太坊 P2P 网络设计
  15. dubbo 监控中心配置
  16. p9官方root,p9官方包198网盘分享
  17. html预览pdf文件
  18. python随机生成英文字符串_如何用Python语言生成随机字符串 | 学步园
  19. 第三节 树莓派EC20之PPP拨号上网
  20. FBTFT driver St7789v LCD 移植简介

热门文章

  1. 如何在Excel批量查询电话号码归属地?
  2. houdini 基础
  3. 红外测距模块 51单片机_基于51单片机的红外发射和接收程序。
  4. [ecshop调试]ecshop 数据库查询缓存详解 有三种缓存,query_cache(数据库查询缓存)、static_cache(静态缓存)和cache(普通的缓存)
  5. 学好平面设计需要哪些技术功底?
  6. matlab画学生考试成绩频率直方图,matlab 绘制频率直方图
  7. 多元相关性分析_SPSS分析问卷数据的流程------一篇带你学会SPSS
  8. html+默认ie11,IE11浏览器怎么设置默认浏览器
  9. 【嵌入式技术】Atmega128串口详解
  10. DSP2812学习笔记-Flash固化操作