首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数字IC经典电路设计

    数字分频器设计(偶数分频奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    二、偶数分频 2.1 触发器级联法 采用触发器反向输出端连接到输入端的方式,寄存器级联法能实现2^N的偶数分频,具体是采用寄存器结构的电路,每当时钟上升沿到来的时候输出结果进行翻转,以此来实现偶数分频。 2.2 计数器法 如果偶数分频系数过大或者寄存器级联法无法实现对应的分频,可以采用计数器法进行分频,计数器法可以实现任意偶数分频。 对于计数器实现偶数分频,占空比和分频数都可以得到极大的控制,是实现偶数分频最灵活的一种方式。 奇数分频:计数分频基本原理也是通过计数器实现的,主要分为占空比非50%的奇数分频和占空比50%的奇数分频,后者实现简单而后者稍稍复杂一些。 首先做出两个上升沿和下降沿二分频信号,通过在半整数两边寻找相邻的的奇数偶数(决定信号电平周期数),然后做逻辑运算即可以得到占空比50%的半整数分频

    10.6K40编辑于 2023-05-18
  • 来自专栏瓜大三哥

    奇数分频

    奇数分频有多种实现方法,下面介绍常用的错位“异或”法的原理。如进行三分频,通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到邻近值进行两次翻转。 这种错位“异或”法可以推广实现任意的奇数分频:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发的模N计数,计数到某一选定值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50% 奇数N分频时钟。 再者同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数N分频时钟。 两个占空比非50%的N分频时钟相或运算,得到占空比为50%的奇数N分频时钟。

    1.2K100发布于 2018-02-24
  • 来自专栏FPGA探索者

    Verilog笔记——奇数分频和小数分频

    偶数分频 简单,只是注意时钟翻转的条件是(N/2)还是(N/2)-1,非阻塞赋值在下一个时钟才会更新值。 2. 奇数分频 奇数分频偶数分频复杂一些,当不要求分频的占空比时,对输入时钟clk上升沿计数,可以设置两个计数的翻转点,一个是(N-1)/2,一个是(N-1),计数到(N-1)时输出时钟翻转且将计数器清零 以7分频为例,代码如下: /******************************************** 计数器实现 7 分频 ********************* 小数分频 N+0.5分频,如N=3时进行3.5分频。 先将clk时钟周期的一半记作clk_half,即一个高电平或一个低电平时间。 对2*(N+0.5) = 2N+1,这个数一定是奇数,按照奇数分频的思路做,也取clk_p和clk_n,但是计数值不一样,一个计数N个clk时钟周期(2N个clk_half周期),一个计数2N+2个clk_half

    1K30发布于 2021-03-15
  • 来自专栏数字芯片

    FPGA奇数分频

    设计中尽量还是要避免使用自己计数分频得到的时钟,去使用厂家自带的分频IP(如Vivado中的clock wizard)。 偶数分频比较简单,这里略过。 对于不要求占空比为50%的奇数分频,也比较简单,直接模N计数,期间进行两次翻转就可以了。 这里重点介绍要求占空比为50%的奇数分频。 步骤:   1. 输出时钟clk_o = clk_p | clk_n; 图解:(假如需要5分频) ?

    1.3K11发布于 2020-07-20
  • 来自专栏FPGA开源工作室

    Verilog实现偶数奇数、半整数、分数(小数)分频,画电路图用D触发器实现分频

    通常我们说对原时钟进行N分频,即分频后的时钟的一个周期是原时钟周期的N倍。N可以为偶数奇数、半整数、分数(小数)。 1.偶数分频 Verilog:N为偶数,使用一个计数器循环0-(N-1)进行计数,在N/2-1与N-1分别将输出取反,即完成了N分频。 图1 用D触发器分频 2.奇数分频 Verilog:N为奇数,使用一个计数器循环0-(N-1)进行计数,控制(N-1)/2个高电平,(N+1)/2个低电平,称为A;然后将此A电平信号延迟半个时钟周期称为 B,最后输出C = A|B,即为占空比为50%的奇数分频器。 图3奇数分频 下面给出N为正整数的分频器设计,主要原理是N[0]=1为奇数分频,0为偶数分频

    4.1K10发布于 2020-03-06
  • 来自专栏FPGA探索者

    笔试 | Verilog分频器代码——50%占空比奇数分频、0.5型小数分频

    偶数分频 简单,只是注意时钟翻转的条件是(N/2)还是(N/2)-1,非阻塞赋值在下一个时钟才会更新值。 2. 奇数分频 奇数分频偶数分频复杂一些,当不要求分频的占空比时,对输入时钟clk上升沿计数,可以设置两个计数的翻转点,一个是(N-1)/2,一个是(N-1),计数到(N-1)时输出时钟翻转且将计数器清零 以7分频为例,代码如下: /******************************************** 计数器实现 7 分频 ******************** 小数分频 N+0.5分频,如N=3时进行3.5分频。 先将clk时钟周期的一半记作clk_half,即一个高电平或一个低电平时间。 对2*(N+0.5) = 2N+1,这个数一定是奇数,按照奇数分频的思路做,也取clk_p和clk_n,但是计数值不一样,一个计数N个clk时钟周期(2N个clk_half周期),一个计数2N+2个clk_half

    3K30编辑于 2022-05-26
  • 来自专栏根究FPGA

    分频与偶分频

    其次分频有两种,一种是偶分频,另一种是奇分频,我们分开来讲。 一、偶分频 分频在FPGA通过计数器实现,偶分频计数只需计数到N/2-1,然后进行时钟翻转,同时将计数器清零,即可得到(偶数)N分频,很简单就不赘述了。 实现奇分频的方法有很多种,很常用的方法为相位异或法,该方法的总结:对于实现50%奇数N分频电路,首先进行进行上升沿进行模长N计数,计数选定到某一个值进行输出时钟翻转,然后再经过(N-1)/2(重点! 一定是(N-1)/2)再次进行翻转得到一个占空比非50%奇数N分频时钟;同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同,进行输出时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转会生成占空比非 50%的奇数N分频时钟,两个占空比非50%的奇数N分频时钟相或运算,得到占空比50%的N分频时钟。

    1.5K20发布于 2020-06-29
  • 来自专栏个人测试

    FPGA学习-7偶分频——六分频

    一、分频器 1.定义 分频器是数字系统设计中最常见的基本电路之一。所谓“分频”,就是把输入信号的频率变成成倍数地低于输入频率的输出信号。 分频器分为偶数分频器和奇数分频器,和计数器非常类似,有时候甚至可以说就是一个东西。 2.实现分频 想得到比固定时钟频率更慢的时钟,可以将固定时钟进行分频 想得到比固定时钟频率更快的时钟,可以将固定时钟进行倍频 又两种方式实现分频与倍频 ①锁相环pll ②自己编写verilog语言来实现 3.奇偶分频分频:成倍数低于输入频率的输出信号有2、4、6、8分频分频:成倍数低于输入频率的输出信号有3、5、7、9分频 分频就是输出信号的一个周期对应clk的6个周期 凡是时钟信号都要连接到全局时钟网络 4.实现偶分频方式 方式一:在分频之后的时钟产生的(分频) 方式二:在系统信号中产生的(降频) 其区别如下,实现的条件一个是在分频之后为条件,另外一个是在系统时钟下产生的,我们建议使用第二种方式 图片

    1.5K80编辑于 2022-08-16
  • 来自专栏程序员

    VHDL实现分频

    版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/89353149 10分频电路 分频器) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL 分频电路(2,4,8分频电路) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL counter(0); clk_div_4<=NOT counter(1); clk_div_8<=NOT counter(2); END clk_div_behavior; 占空比为2:4的6分频器 DOWNTO 0):="101"; BEGIN PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1')THEN IF(temp=counter)THEN --控制分频

    1.2K30发布于 2019-05-25
  • 来自专栏瓜大三哥

    非整数分频模块

    非整数分频模块有两种实现方法,分别为分频比交错法和累加器分频法。下面分别进行介绍。 1.分频比交错法 分频比交错法,顾名思义就是在一定时间间隔T内,由不同的分频比电路交叉着对输入信号进行分频,从而在T时间内达到小数分频的目的。 假设要实现8.666666分频,则可以以6次分频为一个周期,每个周期内进行2次9分频和4次8分频,这样,输出F_OUT均为F_IN的8.666666分频,该类分频器的程序结构如图所示。 在这种方法中,为使分频输出信号的占空比尽可能均匀,8分频和9分频应交替进行。 ? 2.累加器分频法 累加器分频法的结构如图所示,通过调整步长STEP 的值来实现不同的分频比。假设累加器位数为8,则累加器的模值N为28=256。若STEP=27,则分频比K为: ?

    1K81发布于 2018-02-24
  • 来自专栏FPGA技术江湖

    FPGA系统性学习笔记连载_Day11【奇分频、偶分频

    连载《叁芯智能fpga设计与研发-第11天》 【奇分频、偶分频】之【设计原理、verilog代码实现及示波器验证】 原创作者:紫枫术河 转载请联系群主授权,否则追究责任 这篇文章记录奇分频、偶分频的设计原理 、verilog代码实现及示波器验证 一、时钟 时钟:是一个占空比为50%的周期信号,在数字电路中用这个信号来做时间基准,下图展示一个50MHz的时钟信号 二、时钟分频 时钟分频:分为奇分频和偶分频, 意思是分频系数是奇数还是偶数。 三、奇分频分频:意思对一个时钟进行奇数分频 假如:我们有一个50MHz的基准信号,我们要得到10MHz信号,该怎么做? 3、50Mhz分频为10Mhz 1)、首先我们要进行5分频 5分频分频后的周期为之前的5个周期电平。 2)、如果周期电平确定为5个,那么我们就需要2.5个周期就改变一次电平状态,才能满足5分频

    1.2K00发布于 2021-04-06
  • 来自专栏AIoT技术交流、分享

    STM32如何计算RTC时钟异步预分频和同步预分频

    在配置RTC时钟时预分频器是关键指标,通过配置预分频器可以自定义计数周期。 以STM32L0系列MCU为例,介绍RTC时钟的异步预分频和同步预分频配置方法。 预分频器分为 2 个可编程的预分频器:通过 RTC_PRER 寄存器的 PREDIV_A 位配置的 7 位异步预分频器(范围0~2^7),通过 RTC_PRER 寄存器的 PREDIV_S 位配置的 15 位同步预分频器(范围0~2^15)。 在参考文档中给出了(f ck_apre)异步预分频和(f ck_spre)同步预分频的计算公式,(f ck_apre)异步预分频主要是亚秒级计数,(f ck_spre)同步预分频是普通得日历计数(秒级别 ),在计算两个预分频器时,推荐将异步预分频器(PREDIV_A)配置为较高的值,以最大程度降低功耗。

    1.8K20发布于 2021-01-20
  • 来自专栏python全栈教程专栏

    判断奇数偶数

    判断奇数偶数 //判断奇数偶数 #include int main() { int number; printf("请输入一个整数: "); scanf("%d", &number); // 判断这个数除以 2 的余数 if(number % 2 == 0) printf("%d 是偶数。" , number); else printf("%d 是奇数。", number); return 0; }

    1.8K30发布于 2021-10-18
  • 来自专栏可涵的从小白到大牛的征程

    调整奇数偶数顺序

    题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 思路一: 可以重新开辟一个数组,然后将原有的数组遍历,先把奇数拷贝到新的数组,然后再把偶数拷贝。 如果left和right表示的区间[left, right]有效,进行b,否则结束循环  b. left从前往后找,找到一个偶数后停止  c. right从后往前找,找到一个奇数后停止  d.

    49610编辑于 2024-10-16
  • 来自专栏数字IC小站

    【005】数字IC笔面试常见题

    代码核心如下: 偶数分频 偶数分频器的实现简单,用计数器在上升沿或者下降沿计数,当计数器的值等于分频系数的一半或等于分频系数时,信号翻转。 偶数分频分频原理如下图所示: 上图的的分频系数是4,就是4分频。 如果偶数分频系数是2的幂,就可以用2分频器级联得到;例如4分频就是两个2分频级联,下图就是用两个2分频器级联得到4分频器。 奇数分频 奇数分频器跟偶数分频器一样,当计数器的值等于分频系数(加1或者减1)的一半或等于分频系数时,时钟信号翻转。 奇数分频想通过计数器直接分频出占空比是50%的时钟是不可能的,必须要通过中间的临时波形,做一些逻辑“与”“或”的动作才能得到占空比50%的分频时钟。

    53010编辑于 2022-08-26
  • 来自专栏阿飞的学习记录

    位运算判断奇数偶数

    例: 1111 0011 运算 1111 0011 结果 0011 一个数的二进制形式 末尾是1一定是奇数 比如我们的5: 二进制形式 0101 = 1x2^0 +1x2^2 = 5 1x2^2 一定是偶数 因为都是2的倍数 当我们1x2^1 2的0次方是 是1 是 奇数 偶数加上奇数一定是奇数 末尾是0 一定是偶数 奇偶判断的方法 让这个数和1相与 结果是0就是偶数 结果为1 就是奇数 例如: 4&1=0 4的二进制:100 1的二进制:001 结果 000 /** * 奇数偶数判断 * 把这个数和 1 相 & 结果为 1 是奇数 结果为0 是偶数 * @create: 2021/8/5 * @author: Tony Stark */ public class

    1.4K40编辑于 2022-03-24
  • 来自专栏Java架构师必看

    cdn加速的原理_一文读懂分频

    今天说一说cdn加速的原理_一文读懂分频器,希望能够帮助大家进步!!!

    1.5K30编辑于 2022-08-14
  • 来自专栏小屁折腾日记

    奇数偶数和-while()结构

    41210编辑于 2024-02-02
  • 来自专栏python全栈教程专栏

    所有偶数放所有奇数

    &sq) { ElemType t; int i = 0, j = sq.len - 1; while (i<j) { while (sq.data[i] % 2 == 1) i++;//奇数 向后 while (sq.data[j] % 2 == 0) j--;//偶数 向前 if(i<j) //只要两个还没相遇 { t = sq.data[i];//得到的奇数 sq.data [i] = sq.data[j];//偶数放到奇数位置 sq.data[j] = t;//奇数放到偶数位置 i++;//同步移动到下一个 j--; } } } void main

    1.1K10发布于 2021-10-18
  • 来自专栏FPGA技术江湖

    源码系列:基于FPGA的任意分频器设计(附源工程)

    今天给大侠带来基于FPGA的任意分频器设计,附源码,获取源码,请在“FPGA技术江湖”公众号内回复“任意分频器设计源码”,可获取源码文件。话不多说,上货。 ? 设计概述 在FPGA设计中,分频器一直都担任着很重要的角色,我相信很多人都已经想到了利用计算器来计算想要使用的时钟频率,但问题是仅仅利用计数器来分频,只可以实现偶数分频,而如果我需要三分频,五分频,七分频等等奇数分频 在这里,让我介绍一个可以实现任意整数分频的方法,这个办法也是同样利用了计数器来计算,跟偶数分频不一样的地方是任意整数分频利用了两个计数器来实现。 ? 设计原理 本次设计主要是设计一个可调的分频器,设置其参数,可以调节其输出的占空比,占空比的意思就是高电平所占周期的多少。 通过对两个计数器的计数,一个计算到了跳转下一个状态,等下一计数器计数到了又调回第一个状态,从而完成任意分频器的设计。 ?

    82010发布于 2020-12-29
领券