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

FPGA应用开发和仿真【2.3】

4.2.2 数据选择器

代码4-5是参数化的数据选择器,输入端口定义为数组,数据选择器功能使用数组索引实现。

4.3 常用时序逻辑单元的描述

本节介绍第1章提到的常用时序逻辑的Verilog描述。这些代码均以模块的形式给出,但在实际设计中,也有可能只是复杂模块中的一部分。

代码4-5 参数化的数据选择器

4.3.1 移位寄存器

代码4-6是参数化的移位寄存器,对照第1章的图1-117,这里的描述还增加了同步复位rst和移位使能shift。由if-else语句判断rst、load或shift的有效与否来决定对q作复位、预置或移位操作。if-else语句隐含优先逻辑,rst信号优先于load,load优先于shift,例如在load为高时,无论shift为何电平,都是对q作预置操作。

代码4-6 参数化的移位寄存器

4.3.2 延迟链

代码4-7是参数化的延迟链,使用生成块区分LEN为零和不为零分别描述,在第17行将数组中的连续元素当作整体赋值实现以元素为单位的“移位”。

代码4-7 参数化的延迟链

4.3.3 计数器

代码4-8是参数化模的计数器的代码,包含使能输入和进位输出。

代码4-8 参数化的计数器

代码4-9则实现了类似第1章图1-141所示的秒、分、时计数。代码中假定时钟频率为10Hz,使用模为10的计数器的进位输出作为秒计数的使能。

代码4-9 秒、分、时计数

图4-1、图4-2和图4-3是代码4-9的仿真波形(测试平台代码略),分别是秒计数、分计数和时计数的细节。在图4-3中还包含了秒计数向分计数和分计数向时计数两个进位信号为高的波形。

有时可能需要用到可变模(作为输入端口)的计数器,如代码4-10所示。注意输入的并非模,而是最大值(模减去1),这样可以使得它与计数输出位宽一致。

代码4-10 可变模计数器

计数器是数字逻辑中最为重要的少数几个功能单元之一,代码4-8所示的

http://www.jsqmd.com/news/178754/

相关文章:

  • 基于VOFA+的数据可视化操作指南
  • 三位3D视觉从业者的2025年终总结!
  • YOLOFuse直播演示预告:手把手教你运行第一个demo
  • 时钟分频电路设计详解:vhdl课程设计大作业系统学习
  • Multisim14.2安装后无法启动?Win10专项修复
  • framebuffer驱动中的显存管理机制详细解析
  • 一文说清理想二极管在多电源选择中的作用
  • es可视化管理工具助力精准数据检索实践
  • 微信4.0 hook,三端(mac,windows,安卓)都可用的可行性方案,附带frida脚本
  • YOLOFuse自动化脚本编写建议:批量推理与定时任务配置
  • YOLOFuse缉毒犬训练辅助:可疑物品藏匿点热成像提示
  • YOLOFuse自动驾驶感知层补充:恶劣天气目标识别
  • AI应用架构师实战分享:AI系统性能测试方案经验
  • YOLOFuse深海探测器视觉系统:黑暗环境目标识别
  • YOLOFuse新生儿保温箱监控:温度波动即时提醒
  • YOLOFuse适用于哪些场景?夜间监控、烟雾穿透、安防系统应用前景
  • 快速理解vivado使用教程核心要点:初学者必备知识
  • 安卓 audioservice 之 BtHelper
  • React Native 导航错误解析与解决方案
  • React Native 导航错误解析与解决方案
  • 使用调试器调试某UE4手游
  • 单精度浮点数转换误区:IEEE 754常见陷阱与规避策略
  • 从“概念炼金”到“价值落地”:AI时代企业咨询的防忽悠指南与务实之道
  • YOLOFuse体育馆赛事安保:人群冲撞风险预测
  • 深入理解UDS 31服务:ECU编程前的必备知识
  • YOLOFuse助力PID控制系统的视觉感知模块设计
  • YOLOFuse河道非法采砂监控:夜间作业车辆识别
  • YOLOFuse机场行李遗落提醒:长时间停留物品检测
  • YOLOFuse林区非法砍伐监测:运输车辆轨迹追踪
  • YOLOFuse人工繁育中心监控:幼崽成长状态记录