5. 简单组合逻辑 — 译码器
5.1. 章节导读
在本章我们用Verilog语言描述一个具有3-8译码器功能的电路,通过学习3-8译码器继续巩固整个设计流程以及语法的使用。
5.2. 理论学习
译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。把代码状态的特定含义翻译出来的过程叫做译码,实现译码操作的电路称为译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。
译码器(decoder)是一类多输入多输出组合逻辑电路器件,其可以分为:变量译码和显示译码两类。变量译码器一般是一种较少输入变为较多输出的器件,常见的有n线-2^n线译码和8421BCD码译码两类;显示译码器用来将二进制数转换成对应的七段码,一般其可分为驱动LED和驱动LCD两类。
本节我们主要讲解变量译码,最常见的变量译码器为3-8译码器,主要用于端口的扩展。假如我们有8个led灯需要单独控制,理论上我们需要用8个I/O口,普通的单片机也够用,但是如果我们控制的不是8个led灯,而是一个点阵屏,那就可想而知我们要使用的I/O口数量不是一般控制器就能满足的了,即便是I/O资源丰 富的FPGA在面对巨大的点阵屏时也可能面临管脚资源不够用的尴尬境地。此种情况下使用3-8译码器就可以很好的解决这个问题,我们可以通过控制器控制3个I/O输出的8种情况来分别控制8个输出状态,相当于用3个I/O口就可以独立控制8个led灯,即一个3-8译码器就能够节约出来5个I/O口,算起来是相当合算 的。现在的3-8译码器大都做成了独立ASIC芯片,价格也往往非常便宜。
5.3. 实战演练
5.3.1. 实验目标
设计并仿真验证3-8译码器。
注:3-8译码器的上板验证需要用到8个led灯或者数码管,因为板卡led灯数目不够且数码管部分还未作讲解,3-8译码器只进行仿真验证,不再上板测试,上板测试可等到数码管讲解完毕后,读者自行验证。
5.3.2. 程序设计
5.3.2.1. 模块框图
根据功能分析,该工程只需实现一个3-8译码器的功能,所以设计成一个模块即可。模块命名decoder3_8,模块的输入为3个1bit信号,输出为1个8bit信号,实现通过输入3个信号组成的二进制的8种情况来控制对应输出8bit的8种不同状态。根据上面的分析设计出的Visio框图如图 11‑1所示。
图 11‑1 模块框图
端口列表与功能描述如表格 11‑1所示。
表格 11‑1 输入输出信号描述
| 信号 |
位宽 |
类型 |
功能描述 |
|---|---|---|---|
| in1 |
1Bit |
Input |
输入信号1 |
| in2 |
1Bit |
Input |


最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



