二分频和三分频

二分频:将输入频率CLK分为原来的 1/2 。

实现:在每次CLK的上升沿或下降沿将输出翻转。

三分频

1/3占空比。

实现:可使用上升沿或下降沿计数生成输出。需要一个两位计数器。

  1. 第一个CLK,输出Q翻转,计数器加1;
  2. 第二个CLK,输出Q不变,计数器加1;
  3. 第三个CLK,输出Q翻转,计数器清零。

50%占空比。

实现:将上升沿生成的Q1和下降沿生成的Q2两个1/3占空比相或。

code:

module DividerMultiple(
input clk_i,
input rst_n_i,
output div2_o,
output div3_o,
output [:]div3p_o,
output [:]div3n_o
// output [1:0]div3_r,
// output div3_75
);
//***************
reg div2_o_r;
//****************
reg [:] pos_cnt;
reg [:] neg_cnt;
reg div3_o_r0;
reg div3_o_r1;
//reg div3p_o;
//reg div3n_o;
//reg [1:0]div3_r;
//reg div3_75;
//******************* //always@(posedge clk_i or negedge rst_n_i)
//begin
// if(!rst_n_i)begin
// div3_r <= 2'b00;
// div3_75 <= 1'b0;
// end
// else begin
// if(div3_r == 2'b00) begin
// div3_75 <= ~div3_75;
// div3_r <= div3_r + 1'b1;
// end
// else if(div3_r == 2'b10) begin
// div3_75 <= ~div3_75;
// div3_r <= 2'b00;
// end
// else
// div3_r <= 2'b00;
// end
//end //two divided-frequency
always@(posedge clk_i or negedge rst_n_i)
begin
if(!rst_n_i)begin
div2_o_r <= 'b0;
end
else begin
div2_o_r <= ~div2_o_r;
end
end //three divided-frequency
always@(posedge clk_i or negedge rst_n_i) //上升沿计数
begin
if(!rst_n_i)begin
pos_cnt<='b00;
end
else begin
if(pos_cnt=='d2)
pos_cnt<='b00;
else
pos_cnt<=pos_cnt+'b1;
end
end
always@(negedge clk_i or negedge rst_n_i) //下降沿计数
begin
if(!rst_n_i)begin
neg_cnt<='b00;
end
else begin
if(neg_cnt=='d2) begin
neg_cnt<='b00;
end
else
neg_cnt<=neg_cnt+'b1;
end
end
always@(posedge clk_i or negedge rst_n_i)
begin
if(!rst_n_i)
div3_o_r0<='b0;
else
if(pos_cnt<'d1) div3_o_r0<=1'b1;
else div3_o_r0<='b0;
end
always@(negedge clk_i or negedge rst_n_i)
begin
if(!rst_n_i)
div3_o_r1<='b0;
else
if(neg_cnt<'d1) div3_o_r1<=1'b1;
else div3_o_r1<='b0;
end assign div2_o = div2_o_r;
assign div3_o = div3_o_r0 | div3_o_r1; //相或
assign div3p_o = div3_o_r0;
assign div3n_o = div3_o_r1; endmodule

testbench

module Divider_Multiple_tb;
// Inputs
reg clk_i;
reg rst_n_i;
// Outputs
wire div2_o;
wire div3_o;
wire [:]div3p_o;
wire [:]div3n_o;
// Instantiate the Unit Under Test (UUT)
DividerMultiple uut (
.clk_i(clk_i),
.rst_n_i(rst_n_i),
.div2_o(div2_o),
.div3_o(div3_o) ,
.div3p_o(div3p_o) ,
.div3n_o(div3n_o)
);
initial begin
// Initialize Inputs4
clk_i = ;
rst_n_i = ;
// Wait 100 ns for global reset to finish
#; rst_n_i=;
end
always
begin
# clk_i=~clk_i;
end
endmodule

仿真结果

FPGA学习笔记. 二分频和三分频的更多相关文章

  1. 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert

    [Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...

  2. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换 学习目标 理解如何用矩阵表示线性变换和仿射变换: 学习在 ...

  3. FPGA学习笔记(二)——FPGA学习路线及开发流程

    ###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -& ...

  4. 20145316许心远《Java学习笔记》第三周总结

    20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定 ...

  5. MySQL实战45讲学习笔记:第三十九讲

    一.本节概况 MySQL实战45讲学习笔记:自增主键为什么不是连续的?(第39讲) 在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧 ...

  6. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  7. 【EF6学习笔记】(三)排序、过滤查询及分页

    本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...

  8. 学习笔记-AngularJs(三)

    学习笔记-AngularJs(二)写了个所有程序语言入门时都必须要写的Hello World,那么从现在开始做那个之前说过的互联网大佬介绍的学习例子,当然这里开始会慢慢按照之前说过的目录来搭建这个学习 ...

  9. FPGA学习笔记(三)—— 数字逻辑设计基础(抽象的艺术)

    FPGA设计的是数字逻辑,在开始用HDL设计之前,需要先了解一下基本的数字逻辑设计-- 一门抽象的艺术. 现实世界是一个模拟的世界,有很多模拟量,比如温度,声音······都是模拟信号,通过对模拟信号 ...

随机推荐

  1. M1阶段事后分析

    M1阶段的开发结束了,在周四的课上我们组也进行了alpha阶段的汇报.我们的努力得到了应有的回报,下面我们将针对M1阶段产生的一些问题进行分析和反思. 一.设想和目标 1.我们的app更像是一款针对北 ...

  2. Daily Scrum - 12/07

    Meeting Minutes 确认基本完成了UI组件的基本功能的动画实现: 准备开始实行UI组件的合并: 讨论了长期计划算法的难点,以及简单版本的实现方案. 督促大家更新TFS: Burndown ...

  3. [转帖]Edge投降Chromium!微软王牌浏览器是如何跪倒的

    Edge投降Chromium!微软王牌浏览器是如何跪倒的   https://tech.sina.com.cn/n/k/2018-12-17/doc-ihmutuec9824604.shtml   谷 ...

  4. [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

    CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146   一.概述 kubernetes 1.13 ...

  5. Yii框架的原代码

    http://www.digpage.com/app_struct.html#index-php

  6. gitlab迁移

    1.背景: 操作系统:CentOS Linux release (Core) gitlab版本: 使用rpm包地址:https://mirrors.tuna.tsinghua.edu.cn/gitla ...

  7. SSM 中 BaseController 使用 session

    转载: http://blog.sina.com.cn/s/blog_7085382f0102v9jg.html public class BaseController { //region Http ...

  8. nginx “403 Forbidden” 错误的原因及解决办法

    nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看. 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误 ...

  9. Racket Cheat Sheet

    Racket Cheat Sheet 来源  http://docs.racket-lang.org/racket-cheat/index.html?q=Racket%20Cheat%20Sheet ...

  10. MT【107】立体几何中用阿波罗尼乌斯圆的一道题

    分析:利用内外圆知识知道,B,C两点到 AD 的距离$\le4$. 利用体积公式$V=\frac{1}{3}S_{截面}|AD|\le2\sqrt{15}$