FPGA入门(三):3-8 译码器 仿真波形解读

FPGA入门


文章目录


前言

前面已经讲过如何仿真并且把代码烧进板子里验证,本章就重点讲一下如何看懂波形。

一、3-8 译码器的核心逻辑

3-8 译码器的本质是3 位二进制输入 → 8 位独热码输出的组合逻辑电路:

  • 输入:A2A1A0(3 位,范围000 ~ 111,对应十进制0~7)
  • 输出:Y7~Y0(8 位,高电平有效,同一时间只有 1 个输出为 1,其余全 0)
  • 举个例子:输入A2A1A0=011(十进制 3),只有Y3会被拉高,其余 7 个输出全为低电平。

二、仿真波形解读:怎么看懂译码器

我们运行 Testbench 后,会在 Vivado 里得到这样的波形图,但一开始看满屏的高低电平会有点乱,别慌,我们一步步把它 "读明白"!

2.1 波形更直观

直接看A2、A1、A0三个独立信号很难一眼看出输入值,我们可以把它们拼成一个虚拟总线:

  1. 按住Ctrl键,同时选中A2、A1、A0三个信号;

  2. 右键点击选中的信号,选择New Virtual Bus;

  3. 给总线起个名字(比如A),这样三个信号就被打包成了一个 3 位总线。

接下来,把总线的显示改成十进制:右键点击总线A → Radix → 选择Unsigned Decimal,这样波形里就会直接显示0~7的数字,一眼就能看出当前输入是几!

处理后的波形图就清晰多了:输入A会从0依次增加到7,对应我们 Testbench 里的 8 种测试用例。

2.2 逐段验证

可以看到,我们的译码器完全按照预期工作,没有出现多个输出同时为高的错误


总结

通过虚拟总线、进制修改,把抽象的高低电平变成直观的输入输出对应关系,快速验证逻辑是否正确

相关推荐
Elihuss2 小时前
关于RK3506 的MCU软复位后跑不起问题
linux·单片机·嵌入式硬件
fengfuyao9852 小时前
GRBL 1.1 移植到 STM32 (HAL库)
stm32·单片机·嵌入式硬件
biyezuopinvip2 小时前
基于STC89C51单片机的多波形信号发生器设计与Proteus仿真
单片机·proteus·课程设计·proteus仿真·基于stc89c51单片机的·多波形·信号发生器设计
无人装备硬件开发爱好者2 小时前
STM32G474 驱动 1.54 寸三色电子墨水屏实现贪吃蛇游戏完整指南
stm32·嵌入式硬件·游戏
山木嵌入式3 小时前
FreeRTOS任务创建全解析:动态/静态创建+实战案例+参数深度剖析
stm32·freertos
项目題供诗3 小时前
STM32-定时器定时中断&定时器外部时钟(十一)
stm32·单片机·嵌入式硬件
披着假发的程序唐3 小时前
STM32 H743 MPU的配置使用方法
linux·c语言·c++·驱动开发·stm32·单片机·mcu
踏着七彩祥云的小丑3 小时前
嵌入式测试学习第 9 天:单片机、MCU、开发板、固件
单片机·嵌入式硬件
张健11564096483 小时前
MSP主堆栈指针
单片机