基于FPGA采用模块化思路设计一个译码器

时间:2025-11-02  作者:Diven  阅读:0

本次实验的任务是构建一个3-8译码器,且将译码结果通过小脚丫的LED灯显示。

基于FPGA采用模块化思路设计一个译码器

听上去并不难,而且我能想象到,一定会有不少同学会立刻开始画一个8行的真值表,然后通过卡诺图进行化简,且根据最终的逻辑表达式画出门电路图。这个方法当然没有错,不过,如果面对更多位数的系统,比如4-16或者是8-256的译码器,建一个几百行的真值表并进行逻辑运算听上去似乎不那么科学。

在这里我们将采用模块化的思路来完成我们的实验设计。

在开始进行模块化设计之前,我们先做一个2-4译码器,也就是译码器系列中最底层的基础模块。

表1 2-4译码器真值表这次的代码我们采用行为级描述(Behavioral-level)的写法,直接根据真值表将输入与输出的各种组合进行直接关联。可以看出,行为级的写法甚至不需要构建门电路,仅通过输入输出对应关系即可构建,因此最为抽象。

Module decode24 ( input wire [1:0] A, //定义两位输入 output reg [3:0] Y //定义输出的4位译码结果对应的led ); always@(A) //always块语句,a值变化时执行一次过程块  begin case(A) 2'b00: Y = 4'b0001; //2-4译码结果 2'b01: Y = 4'b0010; 2'b10: Y = 4'b0100; 2'b11: Y = 4'b1000; endcase endendModule

有了最基础的模块,如何通过搭建出3-8译码器呢?现在,我们在原有的真值表上加上一路使能信号E,再来观察一下新的真值表。可以发现,当E为低电平时,不论输入的取值如何,前四位输出均为0。当E为高电平时,右侧仍然为2-4译码器的输出结构。

表2 2-4译码器真值表(加使能信号)我们可以把表3看作为一个3-8译码器的真值表,只不过输入端的最高位由E代替。由于E为低电平时输出最高的四位均为0,因此确保我们在对后四位输出(黄色)进行赋值不会影响到前四位的输出。

表3 3-8译码器真值表从表3不难看出,黄框和红框对应的其实就是一个带有使能端的2-4译码器,且使能端E控制着前后半端位数的输出结果。也就是说,一个3-8译码器可以由两个2-4译码器构成。同理,一个4-16译码器可以由两个3-8译码器构成,以此类推。

带有使能E的2-4译码器如下图所示。实际上就是在之前的代码上稍做修改,在这里我们就不详细写出来了,给大家自行练习的机会。接下来,按照之前的分析,我们画出由两个2-4译码器组成的3-8译码器的结构。以下是用Verilog写的一个3-8译码器,在程序里我们调用了两次2-4译码器的子模块。注意,子模块的文件需要和decode38文件放在同一个工程目录下,不然就成了隔壁老王了。

module decode38( input wire [2:0] X, output wire [7:0] D); decode24 upper //调用第一个子模块,命名为upper  ( .a(X[1:0]), //将大模块的X1,X0与lower的A1,A0匹配 .E(X[2]), //将大模块的X2与lower的E匹配 .Y(D[7:4]) //将大模块的D7-D4与lower的Y3-Y0匹配 ); decode24 lower //调用第二个子模块,命名为lower ( .a(X[1:0]), //将大模块的X1,X0与lower的A1,A0匹配 .E(!X[2]), //将大模块的X2与lower的E匹配 .Y(D[3:0]) //将大模块的D7-D4与lower的Y3-Y0匹配 ); endmodule

当你反复在图和代码之间徘徊几轮,并有了多么痛的领悟之后,你就可以把自己编译好的程序下载到小脚丫里,然后通过实验测试你的代码了。

练习一下,当我们把输出D7-D1分别对应为小脚丫上的L7-L1,且输入X2-X0分别对应至小脚丫的SW3-SW1,请判断以下的LED状态(低电平亮)。在倒腾了半天之后,你终于搞定了代码,并且成功在小脚丫上验证了你的设计,于是满怀信心的你终于可以尝试一下通过模块化的设计思路去构建4-16甚至更多位的译码器了。

猜您喜欢

LDO 线性稳压器,也称为低压差线性稳压器,是一种应用于各种电子设备中的电源管理元件。以其高效率、低噪声和简单的设计而闻名。决定 LDO 使用寿命的因素有很多,...
2024-06-03 00:00:00

在电子电路设计和维修中,经常需要替换贴片电阻。找到合适的替代元件看似简单,却需要考虑阻值、功率、精度等多个因素。贴片电阻换算法提供了一种快速精准的替换方法,帮助...
2024-11-26 11:29:47

贴片电阻的耐高温性能取决于的材质和封装。一般来说,普通贴片电阻的工作温度范围在 -55°C 到 +125°C 之间。 这意味着能够承受日常电子设备的运行温度。对...
2024-11-29 10:26:20

在工业制造和建筑领域,铆钉作为连接材料的关键组件,其规格尺寸对于结构的稳固性和安全性非常重要。市面上常见的铆钉规格包括直径、长度和头型等多种参数。例如,常用的铆...
2009-06-03 00:00:00

CCD高速摄像机和CMOS高速摄像机区别CCD和CMOS都是摄像机的图像传感器,它们负责将光转换成电子信号。但不少小伙伴有个疑问,这两者之间有什么区别吗?它们...
2023-08-12 09:06:00

动力电池作为电动汽车的心脏,其充电管理很重要。合理的充电管理不仅能延长电池寿命,还能保障充电安全。那么,动力电池充电管理有哪些工作模式呢?让我们一起来了解一下。...
2024-10-20 00:00:00

电流检测电阻在各类电子设备中的应用越来越。作为一家知名的电子元器件制造企业,FH(风华高科)生产的电流检测电阻因其优异的性能和稳定的质量,受到了广大电子工程师和...
2015-03-13 19:46:27

高压棒是应用于电气工程和自动化设备中的重要元件,其参数直接影响设备的性能和安全性。高压棒的额定电压是其最关键的参数,通常以千伏(kV)为单位,表示其能够承受的最...
2012-01-07 00:00:00

贴片电阻在电子电路中无处不在,而读懂标号对于电路的搭建和维修很重要。对于常见的1kΩ(千欧)贴片电阻,其标号方式主要有三种:数字标号、字母标号和色环标号,但实际...
2024-11-29 10:26:12

很多人认为电子元件不像食品药品一样有明确的保质期,其实不然,贴片电阻也是有保质期的,只是通常被称为储存寿命或货架寿命。一般来说,正规厂家生产的贴片电阻,在合适的...
2024-11-29 10:26:05