尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
FPGA实战(48):基于FPGA的Gardner位定时同步NCO模块设计与实现
一、模块功能概述NCO(数控振荡器)在Gardner定时同步环中承担两个任务:产生插值使能信号o_sels,告诉内插器何时进行一次插值;同时输出分数间隔o_uk,告诉内插器插值点位于哪两个采样点之间。这两个信号缺一不可,内插器拿到o_sels才知道动作,拿到o_uk才知道怎么插。模块接口如下:端口方向位宽说明i_clkinput1系统时钟i_rstinput1异步复位i_wkinput16频率控制字,来自环路滤波器o_selsoutput1插值使能脉冲o_ukoutput16分数间隔,Q14格式o_resetoutput1符号周期脉冲二、参数与定点格式parameter P_Q0 = 16'd14745; // 0.9*2^14 parameter P_OFFSET = 16'd16384; // 2^14 parameter P_THRESHOLD = 16'd50;采用Q14定点格式,P_OFFSET = 16384对应数值1.0。P_Q0是相位寄存器复位值,设为0.9使启动后很快产生第一个插值脉冲,不用等太久。P_THRESHOLD = 50对应约0.003,用于检测uk是否接近零值。三、相位累加器设计assign w_wtmps = r_q_0 - i_wk; assign w_cond = (r_q_0 i_wk); assign w_next_q = w_cond ? w_wtmps : (P_OFFSET + w_wtmps);相位寄存器r_q_0在每个时钟周期减去i_wk,这是递减累加器。判断r_q_0 i_wk:成立说明没有跨过零点,直接相减;不成立说明减完会小于0,需要加上P_OFFSET做回绕,保持相位在[0, 1)区间。w_cond同时作为插值使能的原始信号——相位回绕意味着NCO溢出了,此时应该输出一个插值点。assign w_next_sels = w_cond;w_next_sels的值正是w_cond,打一拍输出为o_sels。四、分数间隔uk的计算assign w_next_uk = w_cond ? ro_o_uk : (2 * r_q_0);uk的计算是这里最需要注意的地方。正常情况下uk保持不变(
RELATED

相关推荐

AI 驱动的智能合约 Gas 预测:基于历史交易特征的机器学习模型与精度评估

AI 驱动的智能合约 Gas 预测:基于历史交易特征的机器学习模型与精度评估

AI 驱动的智能合约 Gas 预测:基于历史交易特征的机器学习模型与精度评估 一、Gas 预测:链上交互的成本计量与智能优化 以太坊网络的每一次状态变更都需要支付 Gas 成本,而 Gas 价格的波动性往往让开发者和用户陷入两难:出价过高浪…

📅 2026/8/24 2:29:02
如何简单快速管理《博德之门3》模组:BG3ModManager完整使用指南

如何简单快速管理《博德之门3》模组:BG3ModManager完整使用指南

如何简单快速管理《博德之门3》模组:BG3ModManager完整使用指南 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 还在为《博德之门3》模组…

📅 2026/9/9 15:13:49
网站抗攻击体系搭建教程:一站式解决恶意访问侵扰问题

网站抗攻击体系搭建教程:一站式解决恶意访问侵扰问题

一、前言:为什么需要构建抗攻击体系? 在当今数字化时代,网站已成为企业展示、业务运营和用户交互的核心平台。然而,随着网络攻击手段的日益复杂和自动化工具的泛滥,恶意访问、DDoS攻击、爬虫滥用、CC攻击等安全威胁已…

📅 2026/8/25 21:35:06
MORE NEWS

更多资讯

📰

热力图技术封装与性能优化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

TongSearch中文分词插件analysis-ik详解与优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Go服务内嵌V8引擎:用Gin搭建JavaScript动态执行网关

前阵子在折腾一个内部 API 网关的时候,接了一个特别有意思的需求:业务方希望能在不改动 Go 服务代码的前提下,动态下发一段 JavaScript 校验逻辑,让请求在被转发前先跑一遍 JS 规则。我第一反应是这需求听着像要造一个迷你 JVM&am…

📰

嵌入式软件单元测试(六)——代码质量翻倍:如何用TDD驱动嵌入式驱动开发

摘要:本文面向嵌入式驱动开发场景,介绍如何用测试驱动开发(TDD)提升代码质量。文章先分析驱动开发在硬件依赖、回归成本、缺陷发现时机和行为契约方面的痛点,再讲解「红-绿-重构」的核心循环,并说明如何通过…

📰

「主线程一帧 14ms,所以是 CPU 不够快」为什么这个推论经常是错的

第 0 章:一句话先说清 0.1 核心误解 你在 Profiler 里看到:主线程 PlayerLoop ───────────── 14.2 ms你的推论:"CPU 忙了 14.2 ms,所以 CPU 算不过来"问题出在一个词上: Profiler 显示的是「墙上时钟时间」(wall clock), 不是「CPU 真的在算…

📰

程序员健康饮食:糙米与精米的营养对比与选择建议

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬