博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Verilog设计分频器(一)
阅读量:3916 次
发布时间:2019-05-23

本文共 1200 字,大约阅读时间需要 4 分钟。

分频器,顾名思义,就是将一个波形,分成具有若干占空比的波。占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(Duty Ratio)在电信领域中有如下含义:例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。在一段连续工作时间内脉冲占用的时间与总时间的比值。

在CVSD调制(continuously variable slope delta modulation)中,比特”1”的平均比例(未完成)。

引申义:

在周期型的现象中,某种现象发生后持续的时间与总时间的比。

例如,在俗语中有句话:「三天打渔,两天晒网」,是说五天里有两天在晒网,即周期为5天,”打渔”的占空比为5分之3。

在Verilog数字系统设计中,我们要深入理解输入与输出端口,以及模块化设计。下图为其模块:

这里写图片描述

可以看出,我们要得到分配后的时钟,为其输出端口。

例如,我们要设计一个三天打鱼两天晒网的分频器,可以设计Verilog代码如下:

module div(      input clk,rst_n;      output [4:0] Q;      output clk_div;);      always@(posedge clk or negedge rst_n)      begin          if(!rst_n) begin              Q<=0;              clk_div<=1;          end          else if(Q<=4) begin    //两天晒网              clk_div<=1;              Q<=Q+1;          end          else if(Q<=10&&Q>4) begin  //三天打鱼              Q<=Q+1;              clk_div<=0;          end          else              Q<=0;           //自动清零      end  endmodule

其testbeach测试代码如下:

`timescale 1ns/1nsmodule div_tb();    reg clk,rst_n;    wire [4:0]Q;    wire clk_div;    initial begin    clk=0;    #10 forever clk=~clk;    end    initial begin    rst_n=0;    #20 rst_n=1;    end div u1(    .clk(clk),    .rst_n(rst_n),    .Q(Q),    .clk_div(clk_div));endmodule
你可能感兴趣的文章
把 Console 部署成 Windows 服务,四种方式总有一款适合你!
查看>>
缓存一致性和跨服务器查询的数据异构解决方案canal
查看>>
BeetleX之Websocket服务使用
查看>>
【源码】常用的人脸识别数据库以及上篇性别识别源码
查看>>
深入探究ASP.NET Core Startup的初始化
查看>>
跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了(总结了一张思维图)...
查看>>
一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
查看>>
IdentityServer4系列 | 资源密码凭证模式
查看>>
TIOBE 11 月榜单:Python 挤掉 Java,Java的下跌趋势确立了?
查看>>
C#实现观察者模式
查看>>
使用Azure静态Web应用部署Blazor Webassembly应用
查看>>
Win10 Terminal + WSL 2 安装配置指南,精致开发体验
查看>>
Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用
查看>>
【招聘(西安)】深圳市中兴云服务有限公司.NET工程师
查看>>
注意.NET Core进行请求转发问题
查看>>
别“躺”着了,赶紧把「复盘」做起来
查看>>
真正拖垮你的,是沉没成本
查看>>
Docker:恢复对开源项目的无限制访问
查看>>
Blazor 准备好为企业服务了吗?
查看>>
.NET5全面拥抱Azure云,微软市值重回巅峰,那些年吹过的牛,都实现了!
查看>>