结合网上的经验,自己写了写偶、奇、任意分频器的程序。
偶分频器

/************************* Date:2018.8.14**************************************
****************************Vision:V1.0**************************************/module Divide_even(CLK,RST,CLK_EVEN);input CLK;
input RST;
output CLK_EVEN;reg CLK_EVEN;
reg [5:0] CNT;//分频计数器,该寄存器的大小由待分频的数决定。
parameter N=6;//待分频数always @(posedge CLK or negedge RST)
    begin
        if (!RST)
            begin
            CNT<=0;
            CLK_EVEN<=0;
            end
        else
            begin
                if (CNT==N/2-1)
                    begin
                    CLK_EVEN<=~CLK_EVEN;
                    CNT<=0;
                    end
                else
                    begin
                    CNT<=CNT+1;
                    end
            end
    end
endmodule

testbench文件

`timescale 1 ns/ 1 ns
module Divide_even_vlg_tst();reg RST;
reg CLK;wire CLK_EVEN;Divide_even i1 (.RST(RST),.CLK(CLK),.CLK_EVEN(CLK_EVEN)
);initial                                                begin                                                                         CLK=0;forever  #50 CLK=~CLK;                     end                                                    initialbeginRST=0;#1000 RST=1;endendmodule

奇分频器
/*************** Date:2018.8.14**************************************
***********************Vision:V1.0*********************************/

module Divide_odd(CLK,RST,CLK_OUT);input RST;
input CLK;
output CLK_OUT;parameter N=5;reg CLK_POS;
reg [5:0]CNT_POS;always @(posedge CLK or negedge RST)beginif (!RST)beginCLK_POS<=0;CNT_POS<=0;endelsebeginif(CNT_POS==(N-1)/2)beginCLK_POS<=~CLK_POS;CNT_POS<=CNT_POS+1;endelse if(CNT_POS==(N-1))beginCLK_POS<=~CLK_POS;CNT_POS<=0;endelsebeginCLK_POS<=CLK_POS;CNT_POS<=CNT_POS+1;endendendreg CLK_NEG;
reg [5:0]CNT_NEG;       always @(negedge CLK or negedge RST)beginif (~RST)beginCLK_NEG<=0;CNT_NEG<=0;endelsebeginif(CNT_NEG==(N-1)/2)beginCNT_NEG<=CNT_NEG+1;CLK_NEG<=~CLK_NEG;endelse if(CNT_NEG==(N-1))beginCNT_NEG<=0;CLK_NEG<=~CLK_NEG;endelsebeginCNT_NEG<=CNT_NEG+1;CLK_NEG<=CLK_NEG;endendendassign CLK_OUT=CLK_NEG | CLK_POS;endmodule

testbench文件

`timescale 1 ns/ 1 ns
module Divide_odd_vlg_tst();reg CLK;
reg RST;wire CLK_OUT;Divide_odd i1 (.CLK(CLK),.CLK_OUT(CLK_OUT),.RST(RST)
);
initial                                                beginCLK=0;forever #50CLK=~CLK;                             end                                                    initialbeginRST=0;#1000 RST=1;end
endmodule

任意分频器

/************************* Date:2018.8.14**************************************
****************************Vision:V1.0**************************************/
module Divide_any(RST,CLK,CLK_OUT);input RST,CLK;
output CLK_OUT;parameter K=4;reg CLK_POS;
reg [3:0] CNT_POS;
always @(posedge CLK or negedge RST)beginif(!RST)beginCLK_POS<=0;CNT_POS<=0;endelsebeginif (CNT_POS==K-1)beginCLK_POS<=~CLK_POS;CNT_POS<=0;end**else if(CNT_POS==(K>>1)-1)**beginCLK_POS<=~CLK_POS;CNT_POS<=CNT_POS+1;endelsebeginCNT_POS<=CNT_POS+1;CLK_POS<=CLK_POS;end endendreg CLK_NEG;
reg [3:0] CNT_NEG;
always @(negedge CLK or negedge RST)    beginif (!RST)beginCLK_NEG<=0;CNT_NEG<=0;endelsebeginif(CNT_NEG==K-1)beginCLK_NEG<=~CLK_NEG;CNT_NEG<=0;endelse if (CNT_NEG==(K>>1)-1)beginCLK_NEG<=~CLK_NEG;CNT_NEG<=CNT_NEG+1;endelsebeginCLK_NEG<=CLK_NEG;CNT_NEG<=CNT_NEG+1;endendendassign CLK_OUT=(K%2)?(CLK_POS&CLK_NEG):(CLK_POS);
endmodule 

testbench文件

`timescale 1 ns/ 1 ns
module Divide_any_vlg_tst();reg CLK;
reg RST;wire CLK_OUT;Divide_any i1 ( .CLK(CLK),.CLK_OUT(CLK_OUT),.RST(RST)
);
initial                                                begin                                                                         CLK=0;forever  #50 CLK=~CLK;                     end initial                begin                                                  RST=0;#1000 RST=1;end
endmodule

FPGA 任意分频器设计相关推荐

  1. (96)分频器设计(任意分频器)

    (96)分频器设计(任意分频器) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(任意分频器) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 ...

  2. 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)

    实验二 基于FPGA的分频器的设计 1. 实验目的: (1) 掌握QuartusⅡ软件的层次型设计方法: (2) 掌握元件封装及调用方法: (3) 熟悉FPGA实验平台,掌握引脚锁定及下载. 2. 实 ...

  3. FPGA异步时钟设计中的同步策略

    1 引言    基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免. ...

  4. (95)分频器设计(偶数分频)

    (95)分频器设计(偶数分频) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(偶数分频) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1 ...

  5. (94)分频器设计(奇数分频)

    (94)分频器设计(奇数分频) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(奇数分频) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1 ...

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

    数字分频器设计 一.前言 二.偶数分频 2.1 触发器级联法 2.2 计数器法 2.3 verilog代码 2.4 Testbench 2.5 仿真结果 三.奇数分频 3.1 占空比非50%奇数分频 ...

  7. 数电实验6:可控分频器设计

    数电实验6:可控分频器设计 一.实验目的 二.基本实验内容 三.提高性实验内容(选做) 四.预习实验 五.实验报告要求 六.内容讲解(基础实验内容) 七.testbench及仿真结果 1.testbe ...

  8. fpga芯片架构设计与实现 pdf_FPGA设计的8大重要知识点,你都get了吗

    1. 面积与速度的平衡与互换 这里的面积指一个设计消耗FPGA/CPLD的逻辑资源的数量,对于FPGA可以用消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数. ...

  9. FPGA学习及设计中的注意事项

    为什么80%的码农都做不了架构师?>>>    FPGA学习及设计中的注意事项 1.基础问题 FPGA的基础就是数字电路和HDL语言,想学好FPGA的人,建议床头都有一本数字电路的书 ...

最新文章

  1. linux先运行后面指令,Linux基础命令(6)
  2. python版本升级后编译_python学习笔记(7)--python版本升级
  3. Java14-day05【集合(Collection常用方法-遍历、List特有方法、List集合子类特点、LinkedList集合的特有功能、ListIterator)】
  4. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
  5. 【图像处理】透视变换 Perspective Transformation(小细节修正和推导流程补充)
  6. Spring boot 配置array,list,map
  7. 常用的一些类,少走弯路。待续...
  8. docker容器安装和配置实战
  9. css权威指南——link
  10. 大众点评App的短视频耗电量优化实战
  11. Matlab图像分割
  12. 斐波那契数列c语言while,C语言数据结构递归之斐波那契数列
  13. 六西格玛黑带考试试题|优思学院
  14. 马云有自己的银行,为什么还要贷款?
  15. 使用大白菜U盘重装系统
  16. 怎么压缩gif图大小?gif格式怎么压缩大小?
  17. 数据结构与算法之美(一):概论
  18. 帆软设计器连接远程服务器,帆软设计器远程连接数据库问题
  19. java学习输出文档
  20. 视频编辑软件-剪辑制作后期配音字幕合并剪切图片电子相册Mac手机

热门文章

  1. 提交 Merge Request 申请进行code review
  2. The requested resource(/)is not available问题
  3. 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结
  4. HackTheBox::Seal
  5. strcmp函数的C语言实现
  6. Appium:配置华为手机鸿蒙HarmonyOS系统参数
  7. Java基础之父类引用指向子类对象
  8. 父类类型的引用指向子类的对象
  9. Ubuntu创建Eclipse桌面快捷方式
  10. Pytorch中的Conv1d()和Conv2d()函数