数字频率计的设计-- 基于 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设计数字系统时,可以根据需要应用Verilog HDL描述所需要的功能电路,既有利于节约资源&am…...
[程序员] 没有产生core文件的原因
最近和同事一块看一个core文件没有产生的问题,总结了一些在CSDN的专栏里。分析的过程,参考使用了ftrace的功能,感觉非常实用。 如果有需要可以参考。大体上就这么几种情况:信号的特殊处理,coredump相关的配置没有设置正确,文件系统访问权限问题,setuid相关的不匹配问题。…...

【数字图像处理+MATLAB】基于 Sobel 算子计算图像梯度并进行边缘增强:使用 imgradientxy 函数
引言 在图像处理中,边缘通常是图像中像素强度变化最大的地方,这种变化可以通过计算图像的梯度来量化。梯度是一个向量,它的方向指向像素强度增加最快的方向,它的大小(或者说幅度)表示像素强度增加的速度。…...

P10901 [蓝桥杯 2024 省 C] 封闭图形个数
铁子们好呀,今天博主给大家更新一道编程题!!! 题目链接如下: P10901 [蓝桥杯 2024 省 C] 封闭图形个数 好,接下来,我将从三个方面讲解这道例题。分别是 题目解析算法原理代码实现 文章目录 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】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
别忘了请点个赞收藏关注支持一下博主喵!!! 关注博主,更多蓝桥杯nice题目静待更新:) 搜索与查找 一、九宫格 【问题描述】 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三 …...
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,他通过将数据和功能封装在一个被称为‘对象’的实体中,来组织和管理代码。面向对象变成(OOP)具有四个特性,封装、继承、多态、抽象 优点:模块化、安全性高、代码重用性…...

计算机网络(11)和流量控制补充
这一篇对数据链路层中的和流量控制进行详细学习 流量控制(Flow Control)是计算机网络中确保数据流平稳传输的技术,旨在防止数据发送方发送过多数据,导致接收方的缓冲区溢出,进而造成数据丢失或传输失败。流量控制通常…...
Rust 所有权机制
Rust 所有权机制 本文示例代码地址 所有权是Rust中最独特的特性,它让Rust无需GC就可以保证内存安全。 什么是所有权? 所有权(ownership)是 Rust 用于如何管理内存的一组规则。所有程序都必须管理其运行时使用计算机内存的方式…...
Pwn VM writeup
国赛期间,做了一个很有意思的pwn题,顺便学了一下现在常见的pwn的板子题是什么样子的,这里做一下记录 Magic VM 题目逻辑 题目本身其实非常的有趣,它实现了一个简易流水线的功能,程序中包含四个结构体,其中三…...

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

机器学习 贝叶斯公式
这是条件概率的计算公式 𝑃(𝐴|𝐵)𝑃(B|A)𝑃(𝐴)/𝑃(𝐵) 全概率公式 𝑃(𝐵)𝑃(𝐵|𝐴)𝑃(𝐴)&am…...

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

大数据学习14之Scala面向对象--至简原则
1.类和对象 1.1基本概念 面向对象(Object Oriented)是一种编程思想,面向对象主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想,总体来说面向对象的底层还是面向过程,面向过程抽象…...

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

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和科学实验中,大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言,凭借其强大的数据采集和分析能力,广泛应用于实时数据处理和控制系统中。然而,在面对大数据处理时,LabVIEW也存在一些注意事项。…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...