- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
奇数和半整数分频器
奇数分频器
1 引言
分频器在CPLD/FPGA设计中使用频率非常高,尽管目前大部分设计中采用芯片厂家集成的锁相环资源,但是对于要求奇数倍分频、小数倍分频的应用场合却往往不能满足要求。硬件工程师希望有一种灵活的设计方法,根据需要,在实验室就能设计分频器并马上投入使用,更改频率时无需改动原器件或电路板,只需重新编程,在数分钟内即可完成。
对于偶数分频,但对于实现50%的占空比却是比较困难的。占空比50%library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; --添加库
entity fdiv is --设计实体
port( clk,reset : in std_logic; --端口说明
preset: in integer; --preset: 分频预置数
clkout : out std_logic); - -clkout : 分频后得到的时钟
end fdiv;
architecture behave of fdiv is --设计构造体
signal s1,s2 : std_logic; --内部信号s1,s2
signal cnt : integer range 0 to preset-1; --模为preset的计数信号
begin
P1: process(clk,reset) --计数器
begin
if reset=1 then
cnt=0;
elsif clkevent and clk=1 then
if cnt=0 then
cnt=preset-1;
ELSE
cnt=cnt-1;
end if;
end if;
end process;
P2: process(clk,reset) --信号1
begin
if reset=1 then
s1=1;
elsif clkevent and clk=1 then
if cnt=0 then --计数信号为0时,S1翻转
s1=not s1;
else
s1=s1;
end if;
end if;
end process;
P3: process(clk,reset) --信号2
begin
if reset=1 then
s2=1;
elsif clkevent and clk=0 then
if cnt=(preset-1)/2 then --计数信号为N时,S2翻转
s2=not s2;
else
s2=s2;
end if;
end if;
end process;
clkout= s1 xor s2; -- 异或输出
end behave;
程序说明:以上程序实现任意奇数的50%占空比分频,计数器cnt的模值为,计数器是为了控制信号1和信号2,使两信号保持恒定的时间差。信号1为上升沿触发,在cnt=0时,信号2为下降沿触发,在cnt=(preset-1)/2 时。将1和2异或输出,这样就实现了的50%占空比分频。计数器cnt的模值为,信号1是上升沿触发,cnt=0时2是下降沿触发,cnt=时,然后将1和2异或输出,这样就实现了50%占空比的分频。
4 VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY decount IS
PORT(inclk: IN STD_LOGIC; --时钟源
preset: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --预置分频值N
outclk: BUFFER STD_LOGIC); --输出时钟
END decount;
ARCHITECTURE decount_arch OF decount IS
SIGNAL clk,divide2:
您可能关注的文档
最近下载
- 第四章战国、秦、汉、三国时期的建筑详解.ppt VIP
- T_HAEPCI 55—2023(有色冶炼场地土壤-地下水重金属污染协同修复与管控技术指南).pdf VIP
- 青春筑梦婴幼儿托育服务与管理专业启航未来职业生涯.pptx VIP
- 【新教材】2025-2026学年统编版(2024)三年级道德与法治上册第1课《学习伴我成长》课件.pptx
- T ACEF 111—2023 焦化污染土壤多环芳烃生物修复智能监测预警技术指南.pdf VIP
- MTT 114-2005 煤矿用多级离心泵.pdf VIP
- TACEF 112-2023 焦化污染土壤多环芳烃生物修复智能监测设备配置技术指南.pdf VIP
- GBT18479-2001 地面用光伏(PV)发电系统 概述和导则.pdf
- 低血容量性休克的护理.pptx VIP
- 2《住宅项目规范》宣贯培训-第3章.pdf
文档评论(0)