【Verilog】verilog实现奇数次分频

实现占空比为50%的N倍奇数分频:
首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟。再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。

/*奇数分频,占空比为50%,5分频*/
always @(posedge clk)//时钟上升沿,分频
begin
  if(~rst)
  begin
    counter2<=0;
     clk_out3p<=0;
  end
  else
    begin
    if(counter2==4)
      begin
        clk_out3p<=~clk_out3p;
        counter2<=0;
      end
    else if(counter2==2)
      begin
        clk_out3p<=~clk_out3p;
         counter2<=counter2+1;
      end
    else
       counter2=counter2+1;
    end
end
always @(negedge clk)//时钟下降沿分频
begin
  if(~rst)
    clk_out3<=0;
    else
    begin
      if(counter2==2||counter2==4)
        clk_out3<=~clk_out3;
    end
end
assign clk3=clk_out3||clk_out3p;
时间: 2024-11-05 10:09:53

【Verilog】verilog实现奇数次分频的相关文章

Verilog HDL实现奇数次分频

在数字逻辑电路中,经常需要设计分频电路,本文是通过Verilog HDL实现了奇数次分频. 以下是设计程序源代码: module freq_div( // Input clk_50, rst_n, // Output clk_div2, clk_div5 ); parameter DIVN = 5; input clk_50; // Clockinput rst_n; // Resetoutput clk_div2; // indicates write transferoutput clk_d

[Verilog]任意整数(奇数,整数)分频器设计, 50%占空比

module div_clk(clk_in, divisor, clk_out); input clk_in; input divisor; output clk_out; reg clk_out = 0; wire clk_in; reg [7 : 0] count = 0; wire [7 : 0] divisor; wire odd; assign odd = divisor & 1; always @(clk_in) begin if (count == 0 && clk_

基于verilog的分频器设计(奇偶分频原理及其电路实现:上)

在一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率太高)进行分频.分频器主要分为奇数分频,偶数分频,半整数分频和小数分频,在对时钟要求不是很严格的FPGA系统中,分频器通常都是通过计数器的循环来实现的. 偶数分频:假设为N分频,由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数.以此循环下去.这种方法可以实现任意的偶数分频.如图所示,两个D触发器级联实现四分频电路,原理:来一个

Verilog实现任意分频和占空比

任意分频模板和技巧 (一)   偶数的分频技巧 (1)       任意偶数分频(占空比为50%)的模板 /******************** N  dividen clk   (1:1) duty  Template ***************/ module clk_div( inputclk_100, output clk_out ); /********* 10 dividen clk 1:1 duty   success *********/ //  1--2--3--4--

基础项目(5)任意时钟分频程序设计讲解

写在前面的话 在数字逻辑电路设计中,分频器是一种基本的电路单元.通常用来对某个给定频率进行分频,以得到所需的频率.分频在FPGA的设计中一直都担任着很重要的角色,而说到分频,我相信很多人都已经想到了利用计数器计数来得到想要的时钟频率,但问题是仅仅利用计数器来分频,只可以实现偶数分频,而如果需要三分频.五分频.七分频等等奇数类分频,那应该怎么办呢?在这里,梦翼师兄为大家介绍一种可以实现任意整数分频的方法. 实现原理 这种方法同样也是利用了计数器来实现,当然我们是使用状态机来实现的.我们首先定义分频

基于Verilog的偶数、奇数、半整数分频以及任意分频器设计

在FPGA的学习过程中,最简单最基本的实验应该就是分频器了.由于FPGA的晶振频率都是固定值,只能产生固定频率的时序信号,但是实际工程中我们需要各种各样不同频率的信号,这时候就需要对晶振产生的频率进行分频.比如如果FPGA芯片晶振的频率为50MHz,而我们希望得到1MHz的方波信号,那么就需要对晶振产生的信号进行50分频. 分频器的设计虽然是FPGA学习过程中最简单的实验,但是真正想要把分频器的来龙去脉弄清楚,还是需要花费一番功夫的.下面先介绍一下最常见的几种分频器写法: 1.偶数分频器 相信大

verilog 奇数分频设计

module tw(clk,k_or,k1,k2); input clk; output k_or,k1,k2; reg [2:0] c1,c2; reg m1,m2; initial begin c1=0; c2=0; m1=0; m2=0; end always @(posedge clk) begin if(c1==a) c1<=0;else c1<=c1+1; if(c1==1) m1=~m1;else if(c1==b) m1=~m1;end always @(negedge clk

使用prismjs为网站添加代码高亮功能

prismjs 是一款轻量.可扩展的代码语法高亮库,使用现代化的 Web 标准构建,使用 Prismjs 可以快速为网站添加代码高亮功能,支持超过113中编程语言,还支持多种插件,是简洁.高效的代码高亮解决方案.科技爱好者博客就是使用了Prism.js 实现漂亮的代码语法高亮功能,本文教你如何在wordpress上快速使用Prismjs实现代码高亮. 一.下载JS和CSS文件并上传到网站根目录. 在Prismjs网站下载页面下载需要的JS和CSS文件,下载页面: http://prismjs.c

[转]Haroopad Markdown 编辑器代码语法高亮支持

代码语法高亮 书写格式为: ` ` ` language_key if (condition){ return true } ` ` ` 在 ` ` ` (三个反引号)之间的是代码,其中language_key的值,请参考 支持的语言和缩写标记 例如,将language_key用JavaScript替换,效果如下: if (condition){ return true } 支持的语言和缩写标记 Language language_key 1C 1c ActionScript actionscr