参加过一次笔试,让实现3分频,楼主当时是懵逼的,脑子里只知道同时利用上升沿和下降沿,本来写对了,慌张面试,脑子不管用了,(因为是手写,只能用脑子仿真)后来又给改错了,捂脸。。。

还是逻辑不清晰,现在自己写一个,贴在这里给大家参考。

 module Top#(

 )
 (
     input clkin,
     output clkout
     );
     wire clkin;
     wire clkout;
     reg  clkoutr;
     function integer clogb2;
       :] divNum;
       integer i;
       begin
       clogb2 = ;
       ; **i < divNum; i = i + )
           clogb2 = i + ;
       end
     endfunction
     parameter cntbits = clogb2(divNum);
     ] cnt;
     initial begin
         clkoutr <= ;
         cnt <= ;
     end
     always@(posedge clkin or negedge clkin)begin
         ))begin
             cnt <= ;
             clkoutr <= ~clkoutr;
         end
         else begin
             cnt <= cnt +  ;
         end
     end
     assign clkout = clkoutr;

现在说我那段改错的代码,当时就想着得用异或,反而弄麻烦了,以下纯粹个人弥补遗憾之举,可以略过。

偶数分频容易,奇数分频不好弄,拿三分频举例,如果先六分频后再二倍频,拿俩个相差90的六分频时钟异或则得到3分频。

难就难在相差90上了,楼主坦白讲,下面这代码是试出来的(捂脸)。。。。。。哈哈哈

直接上代码,示例代码为7分频,保准好用,这个逻辑完全是脱裤子发屁的感觉,头一眼看还挺迷惑,看懂了就知道楼主是个笨蛋,哈哈哈,有兴趣的读者自己分析吧,欢迎指正

 module Top#(

 )
 (
     input clkin,
     output clkout
     );
     wire clkin;
     reg  clkout1;
     reg  clkout2;
     wire  clkout;

     function integer clogb2;
     :] divNum;
     integer i;
     begin
     clogb2 = ;
     ; **i < divNum; i = i + )
         clogb2 = i + ;
     end
     endfunction
     parameter cntbits = clogb2(divNum);
     ] cnt;

     initial begin
         clkout1 <= ;
         clkout2 <= ;
         cnt <= ;
     end
     always@(posedge clkin)begin
         ))begin
             cnt <= ;
             clkout1 <= ~clkout1;
         end
         else begin
             cnt <= cnt +  ;
         end
     end
     always@(negedge clkin)begin
         ))begin
                 cnt <= ;
                 clkout2 <= ~clkout2;
             end
             else begin
                 cnt <= cnt +  ;
             end
     end
     assign clkout = clkout1 ^ clkout2;
 endmodule
`timescale 1ns/1ps
module Top_test(
    );
    wire clkout_P;
    reg  clkin_P;
    Top Top(
    .clkin(clkin_P),
    .clkout(clkout_P)
    );
    initial begin
        clkin_P <= ;
    end
    always@(*)begin
      # clkin_P <= ~clkin_P;
    end
endmodule

Verilog 任意(奇数/偶数)分频器的更多相关文章

  1. 基于Verilog的奇数偶数小数分频器设计

    今天呢,由泡泡鱼工作室发布的微信公共号“硬件为王”(微信号:king_hardware)正式上线啦,关注有惊喜哦.在这个普天同庆的美好日子里,小编脑洞大开,决定写一首诗赞美一下我们背后伟大的团队,虽然 ...

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

    module div_clk(clk_in, divisor, clk_out); input clk_in; input divisor; output clk_out; reg clk_out = ...

  3. vijos 2035 奇数偶数与绚丽多彩的数

    描述 Q先生是一个热爱学习的男孩子. 他认为一个 n 位的正整数 x 若能被称作是绚丽多彩的,一定要满足对于{1,3,5,7,9} 中任意一个奇数或者没有在 x 中出现,或者在 x 中出现了恰好奇数次 ...

  4. 输出1-100 , 奇数偶数分别添加标识(for循环语句嵌套if-else语句)

    package com.summer.cn; /** * @author Summer * 输出1-100 , 奇数偶数分别添加标识 */ public class Test041518 { publ ...

  5. C 语言实例 - 判断奇数/偶数

    C 语言实例 - 判断奇数/偶数 C 语言实例 C 语言实例 以下实例判断用户输入的整数是奇数还是偶数. 实例 #include <stdio.h> int main() { int nu ...

  6. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  7. verilog实现奇数倍分频

    在学习FPGA的过程中,最简单最基本的实验应该就是分频器了, 同时分频器也是FPGA设计中使用频率非常高的基本设计之一, 尽管在芯片厂家提供的IDE中集成了锁相环IP, 如altera 的PLL,Xi ...

  8. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等

    1 .100以内的奇数和偶数 var js = ""; var os = ""; for(var i=1;i<101;i++) { if(i%2 == 0 ...

  9. CodeForces 710CMagic Odd Square(经典-奇数个奇数&偶数个偶数)

    题目链接:http://codeforces.com/problemset/problem/710/C 题目大意:输入一个奇数n,则生成n*n矩阵,要求矩阵的行.列还有斜着,所有元素之和为奇数. 解题 ...

随机推荐

  1. canvas学习总结三:绘制路径-线段

    Canvas绘图环境中有些属于立即绘制图形方法,有些绘图方法是基于路径的. 立即绘制图形方法仅有两个strokeRect(),fillRect(),虽然strokezText(),fillText() ...

  2. java 局部变量几点笔记

    1.局部变量的作用时间很短暂,都被存储在方法的栈内存中:2.(没使用static)非静态变量=实例变量:(使用static)静态变量=类变量3.成员变量:类体内定义的变量:4.局部变量有三种:1)形参 ...

  3. phpcms v9栏目列表调用每一篇文章内容方法

    {pc:content action="lists" catid="$catid" num="25" order="id DESC ...

  4. win server2012 r2 服务器共享文件夹设置

    按照普通的win7 设置共享文件夹,不起作用 于是乎倒腾,百度,总结以下步骤 1.启用guest账号 控制面板->用户账户->管理其他账户->Guest启用 2.设置共享文件夹 添加 ...

  5. h5之scrollIntoView控制页面元素滚动

    如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法 ...

  6. ci框架中表前缀的处理

    后面的写死,前面的无论如何改变都没事,会自动的替换,以后如果数据库的表前缀被修改了,只需要修改上面的配置项,下面的不变

  7. vue 基础-->进阶 教程(2): 指令、组件

    第二章 建议学习时间4小时  课程共3章 前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零 ...

  8. [leetcode-606-Construct String from Binary Tree]

    You need to construct a string consists of parenthesis and integers from a binary tree with the preo ...

  9. 关于Ext 修复源代码 bug的方法

    Ext修复源代码出现的问题 1.使用override属性,重写组件 定义一个新的组件,override属性设为要重写的源组件 例子: Extjs4.2.3遇到的一个bug,Datefield 选择不了 ...

  10. 使用JDK自带的MessageDigest计算消息摘要

    使用JDK自带的MessageDigest计算消息摘要 上代码 /** * 使用JDK自带MessageDigest */ public class MessageDigestUtils { /** ...