FPGA入门
文章目录
- FPGA入门
- 前言
- [一、3-8 译码器的核心逻辑](#一、3-8 译码器的核心逻辑)
- 二、仿真波形解读:怎么看懂译码器
-
- [2.1 波形更直观](#2.1 波形更直观)
- [2.2 逐段验证](#2.2 逐段验证)
- 总结
前言
前面已经讲过如何仿真并且把代码烧进板子里验证,本章就重点讲一下如何看懂波形。
一、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三个独立信号很难一眼看出输入值,我们可以把它们拼成一个虚拟总线:
-
按住Ctrl键,同时选中A2、A1、A0三个信号;
-
右键点击选中的信号,选择New Virtual Bus;

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

接下来,把总线的显示改成十进制:右键点击总线A → Radix → 选择Unsigned Decimal,这样波形里就会直接显示0~7的数字,一眼就能看出当前输入是几!
处理后的波形图就清晰多了:输入A会从0依次增加到7,对应我们 Testbench 里的 8 种测试用例。

2.2 逐段验证

可以看到,我们的译码器完全按照预期工作,没有出现多个输出同时为高的错误
总结
通过虚拟总线、进制修改,把抽象的高低电平变成直观的输入输出对应关系,快速验证逻辑是否正确