芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球
四社区联合力荐!近500篇数字IC精品文章收录
【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍

Verilog半整数分频

  • 一、前言
  • 二、半整数分频题目
  • 三、半整数分频原理
  • 四、RTL设计
  • 五、半整数分频的Testbench
  • 六、结果分析

一、前言

本系列旨在提供100%准确的数字IC设计/验证手撕代码环节的题目,原理,RTL设计,Testbench和参考仿真波形,每篇文章的内容都经过仿真核对。快速导航链接如下:

1.奇数分频
2.偶数分频
3.半整数分批
4.小数/分数分频
5.序列检测器
6.模三检测器
7.饮料机
8.异步复位,同步释放
9.边沿检测(上升沿,下降沿,双边沿)
10.全加器,半加器
11.格雷码转二进制
12.单bit跨时钟域(打两拍,边沿同步,脉冲同步)
13.奇偶校验
14.伪随机数生成器[线性反馈移位寄存器]
15.同步FIFO
16.无毛刺时钟切换电路

应当说,手撕代码环节是面试流程中既重要又简单的一个环节,跟软件类的岗位相比起来,数字IC的手撕代码题目固定,数量有限,属于整个面试中必得分的一个环节,在这个系列以外,笔者同样推荐数字IC求职者使用“HdlBits”进行代码的训练
链接如下
HDLBits — Verilog Practice

二、半整数分频题目

  1. 用verilog实现3.5分频电路
  2. 用verilog实现N.5分频电路

三、半整数分频原理

在第四章,我们实现了小数分频和分数分频,正常已经涵盖了半整数分频的部分,那么我们为什么现在还要来单独强调半整数分频呢?

理由有二
1、虽然说第四章的小说分频可以用来实现半整数分频,但是正对于半个周期的特殊分频,我们可以使用更为有效的电路结构来缩小实现所需的面积,优化面积的价值,就是单独讨论半整数分频的意义之一。
2、对于使用小数分频法得到的,以3.5分频为例,需要使用一个四分频和一个三分频,七个周期内,输出两个1,这个平均概念使clock jitter很大,时钟信号的质量得不到保证,用新的方法得到的分频信号可以做出每一个周期都是3.5T的效果,时钟抖动为零,信号的质量更好以下提出的设计方法主要是因为这个优点

半整数分频可以实现50%占空比吗?

很困难
对于3.5分频来说,需要1.75个时钟周期进行一次翻转,这种存在1/4周期的翻转很难仅仅通过数字电路/Verilog取实现,因此我们不将占空比作为关注的重点,仅仅考量3.5分频的电路结构

具体原理

用上升沿和下降沿各产生一个7分频的时钟信号,这两个信号的距离是3.5个时钟周期,用逻辑或的形式,即可产生无抖动3.5分频信号

四、RTL设计

module half_divide (clk,rst_n,clk_out);input clk;
input rst_n;
output clk_out;reg [3:0] p_cnt;
reg [3:0] n_cnt;wire p_out;
wire n_out;always@(posedge clk or negedge rst_n)
if(!rst_n)
p_cnt <= 4'd0;
else if(p_cnt < 4'd6)
p_cnt <= p_cnt + 1'b1;
else
p_cnt <= 4'd0;always@(negedge clk or negedge rst_n)
if(!rst_n)
n_cnt <= 4'd0;
else if(n_cnt < 4'd6)
n_cnt <= n_cnt + 1'b1;
else
n_cnt <= 4'd0;assign p_out = p_cnt == 4'd0 ? 1 : 0;
assign n_out = n_cnt == 4'd4 ? 1 : 0;assign clk_out = p_out ||  n_out;endmodule

五、半整数分频的Testbench

`timescale 1ns /1ps
module half_dividet_tb();
reg clk;
reg rst_n;
wire clk_out;half_divide u1(.clk(clk),.rst_n(rst_n),.clk_out(clk_out));always #5 clk = ~clk;initial
begin
clk = 0;
rst_n =1;#15 rst_n = 0;
#24 rst_n = 1;
#4000
$stop;endendmodule

六、结果分析

可以发现,当信号复位后,clk_out作为输出,的周期为35ns,即完成了3.5分频的目标

【数字IC手撕代码】Verilog半整数分频|题目|原理|设计|仿真相关推荐

  1. 数字IC手撕代码-兆易创新笔试真题

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  2. 数字IC手撕代码---百题斩

    前言: 本篇导览目录,用来索引笔者写的其他手撕代码文章 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC ...

  3. 数字IC手撕代码--小米科技(除法器设计)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  4. 数字IC手撕代码-泰凌微笔试真题

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  5. 数字IC手撕代码-分频器(任意偶数分频)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  6. 数字IC手撕代码-流水握手(利用握手解决流水线断流、反压问题)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  7. 数字IC手撕代码-乐鑫科技笔试真题(4倍频)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  8. 数字IC手撕代码-同步FIFO

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  9. 数字IC手撕代码-边沿检测(上升沿、下降沿、双边沿)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

最新文章

  1. OpenStack(Kilo版本)基础架构学习笔记
  2. PHP 7.3声称速度比PHP 5快3倍还多,值得更新了!
  3. 意法半导体STM32 ARM Cortex 32位微控制器
  4. 编程练习:Matlab 一个小任务(-)
  5. matlab fspeical,matlab的special函数用法
  6. Amazon S3和Swift鉴权机制分析
  7. 谷歌云计算机,google云计算的三大核心技术
  8. 提高文档翻译效率神器:VS Code 插件之 Translator Helper
  9. ZOJ1081 Points Within
  10. asp.net 生命周期中的时间流程
  11. Linux基础——操作系统框架
  12. 创建界面_《魔兽世界》智慧烈风buff延长 9.0版本角色创建界面改动
  13. Atitit.guice3 ioc 最佳实践 o9o
  14. 无限增益多路反馈有源滤波器
  15. 深度学习教程(3) | 浅层神经网络(吴恩达·完整版)
  16. 如何通俗理解泊松分布?
  17. Android studio的gradle教程整理
  18. 排列组合cn和an公式
  19. ios看html文件乱码,iOS webView 打开 TXT/PDF 文件乱码的问题
  20. java opencv 图片读取,边缘化,写出图片操作

热门文章

  1. 华为手机保留数据解锁密码手机保资料解锁原理华为解锁屏密码不删资料华为手机怎么保留数据解锁
  2. mysqlpid ended
  3. scala语言编写的maven项目打jar包运行
  4. MBSE和SysML
  5. 《Splunk智能运维实战》——1.6 使用通用转发器收集数据
  6. 浏览器模式与文本模式
  7. 必看!女生走路如何变得有气质
  8. 牛客网--14407--甄总搬石头
  9. opencv学习篇(1) 图像处理和图像识别中常用的OpenCV函数
  10. 平安人寿推出“财富健康双守护 尊享生活有平安”主题活动