当前位置: 首页 > news >正文

数字频率计的设计-- 基于 HDL 方法

   

目录

   

数字频率计的设计

1.计数、锁存与显示译码电路设计

2.主控电路设计

3.分频电路设计

4.顶层电路设计

伪随机序列发生器 的设计


数字频率计的设计

基于HDL设计数字系统时,可以根据需要应用Verilog HDL描述所需要的功能电路,既有利于节约资源,同时又有利于提高系统的性能和可靠性。

   本节仍以设计能够测量1Hz~100MHz信号频率的数字频率计为目标,讲述基于Verilog HDL的设计方法。频率计应用8位数码管显示频率值,要求测量误差不大于±1Hz。

1.计数、锁存与显示译码电路设计

   描述只具有异步清零、计数允许控制和进位链接功能的同步十进制计数器的Verilog代码参考如下:

module HC160s(clk,rd_n,ep,et,q,co); input clk;input rd_n,ep,et;output reg [3:0] q;output wire co;// 进位逻辑assign co = (( q == 4'b1001 ) & et );     // 计数过程always @( posedge clk or negedge rd_n )  if ( !rd_n )   q <= 4'b0000;else if ( ep & et )if ( q == 4'b1001 )  q <= 4'b0000;  else  q <= q + 1'b1; endmodule

  为了节约FPGA资源,可以简化掉CD4511的灯测试和灭灯功能,只保留锁存功能,同时将显示译码器的输出设计为低电平有效以适应驱动DE2-115开发板上共阳数码管的需要。

2.主控电路设计

  主控电路用于产生周期性的清零信号、闸门信号和显示刷新信号。基于HDL设计时,可以根据功能要求直接描述主控电路。

 module freqer_ctrl ( clk, clr_n, cnten, dispen_n );input clk;           // 8Hzoutput reg clr_n;         // 计数器清零信号output reg cnten;         // 闸门信号output reg dispen_n;     // 显示刷新信号,低电平有效// 计数器状态变量定义reg [3:0] q;              // 10进制计数逻辑always @( posedge clk )  if (q >= 4'b1001) q <= 4'b0000;elseq <= q  +1'b1;// 译码输出always @( q )               case ( q )                 4'b0000 : begin clr_n = 0; cnten = 0; dispen_n = 1; end4'b0001 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0010 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0011 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0100 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0101 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0110 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b0111 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b1000 : begin clr_n = 1; cnten = 1; dispen_n = 1; end4'b1001 : begin clr_n = 1; cnten = 0; dispen_n = 0; enddefault: begin clr_n = 1; cnten = 0; dispen_n = 1; endendcaseendmodule

3.分频电路设计

   将DE2-115开发板所用的50MHz晶振分频为8Hz,需要用分频系数为(50×106/8=)6250000的分频器。应用偶分频器实现。

4.顶层电路设计

   频率计顶层电路既可以应用原理图进行设计,也可以应用Verilog HDL进行例化描述。

伪随机序列发生器 的设计

   在数字系统中,伪随机序列(pseudo-random sequence)是指具有随机统计特性,重复产生的确定性二值序列。伪随机序列在雷达、数字通信、信息安全以及通信系统性能测试等领域有着广泛的应用。

   伪随机序列通常由移位寄存器附加反馈网络产生,可分为线性反馈移位寄存器( Linear Feedback Shift Register,简称LFSR )和非线性反馈移位寄存器两大类。由LFSR产生的最大长度二值序列称为m序列。n级LFSR产生的m序列长度为 2n-1,是除全0状态之外的所有状态。m序列因其理论成熟,实现简单,因而获得了广泛的应用。

  如果n级LFSR序列的特征多项式f(x)满足以下三个条件:(1) f(x)是既约的,即f(x)不能再分解为多项式;(2 )f(x)可整除xm+1,其中m=2n-1;(3) f(x)除不尽xq+1,其中q<m,则f(x)为本原多项式。

    对于7级LFSR序列:取反馈系数c1和c7同时为1,或者c3和c7为同时1时,可以产生127位的m序列;对于12级LFSR:取反馈系数c1、c4、c5和c12同时为1时,可以产生4095位的m序列。

 // 定义循环变量integer i,j;// 时序逻辑过程,生成m序列输出位always @( posedge clk or negedge rst_n )  if ( !rst_n ) beginmCode_reg <= LFSR_INIT_STATE;mCode_bit <= 1'b0;endelse beginmCode_reg[1] <= polydat;for ( i=1; i <= mCode_LFSR_LEN-1; i = i+1 )mCode_reg[i+1] <= mCode_reg[i];mCode_bit <= mCode_reg[mCode_LFSR_LEN];end// 组合过程,根据特征多项式确定反馈值always @ *  for ( j = mCode_LFSR_LEN; j >= 1; j = j-1 )  if ( j == mCode_LFSR_LEN )polydat = mCode_reg[j];else if ( polynomial[j] )polydat = polydat ^ mCode_reg[j];            // m序列输出assign mCode_out = mCode_bit;
endmodule

  要求m序列的数据率为10~100kbps、按10kbps步进可调时,可应用分频器,通过切换分频器的分频系数,或者应用DDS实现。

相关文章:

数字频率计的设计-- 基于 HDL 方法

目录 数字频率计的设计 1.计数、锁存与显示译码电路设计 2.主控电路设计 3.分频电路设计 4.顶层电路设计 伪随机序列发生器 的设计 数字频率计的设计 基于HDL设计数字系统时&#xff0c;可以根据需要应用Verilog HDL描述所需要的功能电路&#xff0c;既有利于节约资源&am…...

[程序员] 没有产生core文件的原因

最近和同事一块看一个core文件没有产生的问题,总结了一些在CSDN的专栏里。分析的过程,参考使用了ftrace的功能,感觉非常实用。 如果有需要可以参考。大体上就这么几种情况:信号的特殊处理,coredump相关的配置没有设置正确,文件系统访问权限问题,setuid相关的不匹配问题。…...

【数字图像处理+MATLAB】基于 Sobel 算子计算图像梯度并进行边缘增强:使用 imgradientxy 函数

引言 在图像处理中&#xff0c;边缘通常是图像中像素强度变化最大的地方&#xff0c;这种变化可以通过计算图像的梯度来量化。梯度是一个向量&#xff0c;它的方向指向像素强度增加最快的方向&#xff0c;它的大小&#xff08;或者说幅度&#xff09;表示像素强度增加的速度。…...

P10901 [蓝桥杯 2024 省 C] 封闭图形个数

铁子们好呀&#xff0c;今天博主给大家更新一道编程题&#xff01;&#xff01;&#xff01; 题目链接如下&#xff1a; P10901 [蓝桥杯 2024 省 C] 封闭图形个数 好&#xff0c;接下来&#xff0c;我将从三个方面讲解这道例题。分别是 题目解析算法原理代码实现 文章目录 1.题…...

ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)

ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法) 一、更新并安装基础软件 #切换root用户 sudo su -#更新 apt update #升级 apt upgrade#install vim apt install vim#install net-tools apt install net-tools二、安装ssh并设置…...

手机直连卫星NTN通信初步研究

目录 1、手机直连卫星之序幕 2、卫星NTN及其网络架构 2.1 NTN 2.2 NTN网络架构 3、NTN的3GPP标准化进程 3.1 NTN需要适应的特性 3.2 NTN频段 3.3 NTN的3GPP标准化进程概况 3.4 NTN的3GPP标准化进程的详情 3.4.1 NR-NTN 3.4.1.1 NTN 的无线相关 SI/WI 3.4.1.2…...

蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 搜索与查找 一、九宫格 【问题描述】 小明最近在教邻居家的小朋友小学奥数&#xff0c;而最近正好讲述到了三阶幻方这个部分&#xff0c;三 …...

Android加载pdf

依赖 implementation com.squareup.okhttp3:okhttp:4.9.1 implementation com.github.barteksc:android-pdf-viewer:3.2.0-beta.1在project.build中添加该源 maven { url "https://repository.liferay.com/nexus/content/repositories/public/" }XML <LinearLa…...

IOT物联网低代码可视化大屏解决方案汇总

目录 参考来源云服务商阿里云物联网平台产品主页产品文档 开源项目DGIOT | 轻量级工业物联网开源平台项目特点项目地址开源许可 IoTGateway | 基于.NET6的跨平台工业物联网网关项目特点项目地址开源许可 IoTSharp | 基于.Net Core开源的物联网基础平台项目特点项目地址开源许可…...

Python的面向对象day7

1、什么是面向对象 面向对象称为OO&#xff0c;他通过将数据和功能封装在一个被称为‘对象’的实体中&#xff0c;来组织和管理代码。面向对象变成&#xff08;OOP&#xff09;具有四个特性&#xff0c;封装、继承、多态、抽象 优点&#xff1a;模块化、安全性高、代码重用性…...

计算机网络(11)和流量控制补充

这一篇对数据链路层中的和流量控制进行详细学习 流量控制&#xff08;Flow Control&#xff09;是计算机网络中确保数据流平稳传输的技术&#xff0c;旨在防止数据发送方发送过多数据&#xff0c;导致接收方的缓冲区溢出&#xff0c;进而造成数据丢失或传输失败。流量控制通常…...

Rust 所有权机制

Rust 所有权机制 本文示例代码地址 所有权是Rust中最独特的特性&#xff0c;它让Rust无需GC就可以保证内存安全。 什么是所有权&#xff1f; 所有权&#xff08;ownership&#xff09;是 Rust 用于如何管理内存的一组规则。所有程序都必须管理其运行时使用计算机内存的方式…...

Pwn VM writeup

国赛期间&#xff0c;做了一个很有意思的pwn题&#xff0c;顺便学了一下现在常见的pwn的板子题是什么样子的&#xff0c;这里做一下记录 Magic VM 题目逻辑 题目本身其实非常的有趣&#xff0c;它实现了一个简易流水线的功能&#xff0c;程序中包含四个结构体&#xff0c;其中三…...

LSTM(长短期记忆网络)详解

1️⃣ LSTM介绍 标准的RNN存在梯度消失和梯度爆炸问题&#xff0c;无法捕捉长期依赖关系。那么如何理解这个长期依赖关系呢&#xff1f; 例如&#xff0c;有一个语言模型基于先前的词来预测下一个词&#xff0c;我们有一句话 “the clouds are in the sky”&#xff0c;基于&…...

机器学习 贝叶斯公式

这是条件概率的计算公式 &#x1d443;(&#x1d434;|&#x1d435;)&#x1d443;(B|A)&#x1d443;(&#x1d434;)/&#x1d443;(&#x1d435;) 全概率公式 &#x1d443;(&#x1d435;)&#x1d443;(&#x1d435;|&#x1d434;)&#x1d443;(&#x1d434;)&am…...

Scala-注释、标识符、变量与常量-用法详解

Scala Scala-变量和数据类型-用法详解 Scala一、注释二、标识符规范三、变量和常量1. 变量&#xff08;var&#xff09;2. 常量&#xff08;val&#xff09;3. 类型推断与显式声明4. var 和 val 的区别5. Scala与Java对比Tips&#xff1a; 各位看客老爷万福金安&#xff0c;一键…...

大数据学习14之Scala面向对象--至简原则

1.类和对象 1.1基本概念 面向对象&#xff08;Object Oriented&#xff09;是一种编程思想&#xff0c;面向对象主要是把事物给对象化&#xff0c;包括其属性和行为。面向对象编程更贴近实际生活的思想&#xff0c;总体来说面向对象的底层还是面向过程&#xff0c;面向过程抽象…...

docker 安装之 windows安装

文章目录 1: 在Windows安装Docker报19044版本错误的时候&#xff0c;请大家下载4.24.1之前的版本&#xff08;含4.24.1&#xff09;2: Desktop-WSL kernel version too low3: docker-compose 安装 (v2.21.0) 1: 在Windows安装Docker报19044版本错误的时候&#xff0c;请大家下载…...

JS 实现游戏流畅移动与按键立即响应

AWSD 按键移动 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.box1 {width: 400px;height: 400px;background: yellowgreen;margin: 0 auto;position: relative;}.box2 {width: 50px;height:…...

LabVIEW大数据处理

在物联网、工业4.0和科学实验中&#xff0c;大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言&#xff0c;凭借其强大的数据采集和分析能力&#xff0c;广泛应用于实时数据处理和控制系统中。然而&#xff0c;在面对大数据处理时&#xff0c;LabVIEW也存在一些注意事项。…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...