FPGA 任意分频器设计
结合网上的经验,自己写了写偶、奇、任意分频器的程序。
偶分频器
/************************* 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 任意分频器设计相关推荐
- (96)分频器设计(任意分频器)
(96)分频器设计(任意分频器) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(任意分频器) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 ...
- 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
实验二 基于FPGA的分频器的设计 1. 实验目的: (1) 掌握QuartusⅡ软件的层次型设计方法: (2) 掌握元件封装及调用方法: (3) 熟悉FPGA实验平台,掌握引脚锁定及下载. 2. 实 ...
- FPGA异步时钟设计中的同步策略
1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免. ...
- (95)分频器设计(偶数分频)
(95)分频器设计(偶数分频) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(偶数分频) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1 ...
- (94)分频器设计(奇数分频)
(94)分频器设计(奇数分频) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)分频器设计(奇数分频) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1 ...
- 数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)
数字分频器设计 一.前言 二.偶数分频 2.1 触发器级联法 2.2 计数器法 2.3 verilog代码 2.4 Testbench 2.5 仿真结果 三.奇数分频 3.1 占空比非50%奇数分频 ...
- 数电实验6:可控分频器设计
数电实验6:可控分频器设计 一.实验目的 二.基本实验内容 三.提高性实验内容(选做) 四.预习实验 五.实验报告要求 六.内容讲解(基础实验内容) 七.testbench及仿真结果 1.testbe ...
- fpga芯片架构设计与实现 pdf_FPGA设计的8大重要知识点,你都get了吗
1. 面积与速度的平衡与互换 这里的面积指一个设计消耗FPGA/CPLD的逻辑资源的数量,对于FPGA可以用消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数. ...
- FPGA学习及设计中的注意事项
为什么80%的码农都做不了架构师?>>> FPGA学习及设计中的注意事项 1.基础问题 FPGA的基础就是数字电路和HDL语言,想学好FPGA的人,建议床头都有一本数字电路的书 ...
最新文章
- linux先运行后面指令,Linux基础命令(6)
- python版本升级后编译_python学习笔记(7)--python版本升级
- Java14-day05【集合(Collection常用方法-遍历、List特有方法、List集合子类特点、LinkedList集合的特有功能、ListIterator)】
- php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
- 【图像处理】透视变换 Perspective Transformation(小细节修正和推导流程补充)
- Spring boot 配置array,list,map
- 常用的一些类,少走弯路。待续...
- docker容器安装和配置实战
- css权威指南——link
- 大众点评App的短视频耗电量优化实战
- Matlab图像分割
- 斐波那契数列c语言while,C语言数据结构递归之斐波那契数列
- 六西格玛黑带考试试题|优思学院
- 马云有自己的银行,为什么还要贷款?
- 使用大白菜U盘重装系统
- 怎么压缩gif图大小?gif格式怎么压缩大小?
- 数据结构与算法之美(一):概论
- 帆软设计器连接远程服务器,帆软设计器远程连接数据库问题
- java学习输出文档
- 视频编辑软件-剪辑制作后期配音字幕合并剪切图片电子相册Mac手机
热门文章
- 提交 Merge Request 申请进行code review
- The requested resource(/)is not available问题
- 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结
- HackTheBox::Seal
- strcmp函数的C语言实现
- Appium:配置华为手机鸿蒙HarmonyOS系统参数
- Java基础之父类引用指向子类对象
- 父类类型的引用指向子类的对象
- Ubuntu创建Eclipse桌面快捷方式
- Pytorch中的Conv1d()和Conv2d()函数