一起来学FPGA(vhdl)三:分频器实验
目录
- 环境
- 关键逻辑
- 偶数分频
- 奇数分频
- Code
- 总结
- 参考文档
环境
软件:ISE 14.7
关键逻辑
偶数分频
分频系数scaler为偶数,采用上升沿(或下降沿)触发计数到scaler/2时反转状态,实现占空比50%的偶数分频信号。
signal clk_div:bit:='0';
signal count:integer:=0;constant scaler:integer :=2;
constant scaler_half:integer := scaler/2;process(clk)
beginif(clk'event and clk = '1') then count <= count+1;if(count <= scaler_half-1) thenclk_div <= '1';elsif(count < scaler-1) thenclk_div <= '0';elsecount <= 0;clk_div <= '0';end if;end if;
end process;
二分频仿真结果:
奇数分频
分别采用上升沿触发和下降沿触发的方式,可以得到相隔半个clk周期的两个信号,对结果进行与运算,实现占空比50%的奇数分频信号。
三分频仿真结果:
Code
- clk:原始时钟信号
- scaler:分频系数(8-bits integer)
- clk_div:分频时钟信号
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;entity cycle_divider isPort ( clk : in bit;scaler : in integer range 0 to 64;clk_div : out bit);
end cycle_divider;architecture Behavioral of cycle_divider issignal p_clk_div:bit:='0';
signal n_clk_div:bit:='0';
signal p_count:integer range 0 to 64:=0;
signal n_count:integer range 0 to 64:=0;signal even:integer range 0 to 1:=0;
signal hcount:integer range 0 to 32:=0;begineven <= scaler rem 2;hcount <= (scaler - even) / 2 -1;with (even * scaler) selectclk_div <= p_clk_div when 0,clk when 1,p_clk_div or n_clk_div when others;process(clk,scaler)beginif(scaler > 0) thenif(clk'event and clk = '1') then p_count <= p_count+1;if(p_count <= hcount) thenp_clk_div <= '1';elsif(p_count < scaler-1) thenp_clk_div <= '0';elsep_count <= 0;p_clk_div <= '0';end if;elsif(clk'event and clk = '0') then n_count <= n_count+1;if(n_count <= hcount) thenn_clk_div <= '1';elsif(n_count < scaler-1) thenn_clk_div <= '0';elsen_count <= 0;n_clk_div <= '0';end if;end if;end if;end process;
end Behavioral;
总结
对于硬件来说,时钟是一个重要的信号。一般分频通过硬件的分频电路来实现,本次实验通过软件来实现任意频率的分频也是一个不错的练习。
参考文档
FPGA利用待分频时钟实现任意分频
一起来学FPGA(vhdl)三:分频器实验相关推荐
- 零基础学FPGA(三):国产芯片短板—FPGA(为什么选择FPGA)
文章目录 前言 一.FPGA简介 二.FPGA的用途 三.FPGA比较 1.FPGA与单片机比较 2.FPGA与CPU比较 四.为什么选择FPGA 总结 前言 在正点原子的技术文档里面看到一个小故事, ...
- 小数分频器vhdl实现_基于FPGA的小数分频器的设计与实现.doc
基于FPGA的小数分频器的设计与实现.doc 基于FPGA的小数分频器的设计与实现 [摘要]本文首先分析了现有小数分频器的优缺点,在此基础上提出了一种改进型小数分频器的设计方法.同时结合VHDL文本输 ...
- 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...
- 三叔学FPGA系列之二:Cyclone V中的POR、配置、初始化,以及复位
对于FPGA内部的复位,之前一直比较迷,这两天仔细研究官方数据手册,解开了心中的诸多疑惑,感觉自己又进步了呢..... 原创不易,转载请转原文,注明出处,谢谢. 一.关于POR(Power-On ...
- 中国地质大学北京信息管理与信息系统——Java程序设计第一次上机前三个实验
第一个实验: package Sw; import java.util.Scanner; public class shangjiwork_1 {public static void main(Str ...
- B-ICE-EDA/SOPC FPGA创新电子教学实验平台
简介:北京革新创展科技有限公司B-ICE IEELS系列创新教学实验平台目前主推Intel Cyclone IV/V系列,标准配置如下:主机B-ICE-EDA/SOPC,核心板可选GX-SOPC-EP ...
- (05)VHDL实现分频器
(05)VHDL实现分频器 1.1 目录 1)目录 2)FPGA简介 3)VHDL简介 4)VHDL实现分频器 5)结语 1.2 FPGA简介 FPGA(Field Programmable Gate ...
- (43)FPGA状态机三段式
(43)FPGA状态机三段式 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA状态机三段式 5)结语 1.2 FPGA简介 FPGA(Field Programm ...
- 我的网络安全第三次实验汇报
网络安全第三次实验汇报 一.SQL 注入(SQL Injection) 演示 SQL 注入 简单了解WEB项目 SQL 注入的原理(3个SQL语句) 从代码看 SQL 注入原理 何为预处理语句? 为什 ...
- 桂 林 理 工 大 学实 验 报 告实验五 数组
桂 林 理 工 大 学 实 验 报 告 班级 计算机类20 学号32020520 姓名 实验名称实验五 数组 日期 2020年 11月28日 一.实验目的: 熟悉掌握一维数组和二维数组的定义和 ...
最新文章
- C#判断Textbox是否为数字
- python界面-图形界面
- 程序员面试金典——2.4链表分割
- 一个很可爱的二次元风格的个人技术博客
- 黑客入侵电脑网络四大步骤全面曝光
- java控制html弹出框,Selenium+java - 弹出框处理
- win环境sftp软件_Windows环境下使用bitvise架构sftp服务器
- express文件上传中间件Multer详解
- 如何入门嵌入式?ARM嵌入式开发板学习方法步骤
- 【K站神器】百度SEO尊诺发包程序
- 个人独立开发的一款天气app
- 自助建站工具 搭建出来的网站真的适合SEO吗?
- 微信小程序不能使用本地图片当背景图片的解决方法
- 全球及中国IC卡水表行业销售策略及竞争趋势预测报告(2022-2027)
- 设备电容老化危害大,出厂测试可别轻视它!
- QMI8658 - 姿态传感器学习笔记 - Ⅲ
- Unity学习笔记 关于TextMeshPro(TMP) 字体大小FontSize单位说明
- 前端H5开发的基础知识点
- python制作一个网易音乐下载器
- Linux——详解进程控制之等待