使用Quartus II9.0实现用2片3-8 译码器拼接成4-16 译码器

用2片3-8 译码器拼接成4-16 译码器

在这里插入图片描述
首先我们知道74138仅有3个地址输入端A2,A1,A0。如果相对4位二进制代码译码,只能利用一个附加控制端(S1,S’2,S’3当中的一个)作为第四个地址输入端,上图给出了解决方案。
我们先建立一个project,然后新建一个Block Diagram文件双击BDF空白处,添加组件符号。如图所示
在这里插入图片描述
然后编译一次,新建一个vwf,矢量波形仿真文件,双击name下空白处,点击node finder然后对其添加 输入,输出管脚,可以根据pins:input或者pins:out点击list来选择输入输出引脚。**切记在设置引脚前要先编译一次
在这里插入图片描述
接下来设置输入引脚的值
利用左侧工具或者双击输入波形设置输入值在这里插入图片描述
例如设置成如图所示
在这里插入图片描述
然后编译仿真得出仿真图
在这里插入图片描述
从仿真结果图中可以看到, 该仿真输出结果验证了使用2片3-8 译码器组合的4-16译码器的正确性。

74138译码器是一种常用的地址译码芯,其选择地址的原理和方法如下: ### 原理 74138译码器3个译码地址输入端(A、B、C),3个选通端(G1、G2A、G2B)和8个译码输出端(Y0 - Y7,低电平有效)。只有当选通端G1为高电平,G2A和G2B为低电平时,译码器才能正常工作,将地址端A、B、C的二进制编码在一个对应的输出端以低电平译出。例如,当A、B、C输入为000时,若选通条件满足,则Y0输出低电平,其余输出端为高电平;当输入为001时,Y1输出低电平,依此类推,从而实现地址的选择[^2]。 ### 方法 在实际应用中,如存储器与CPU的连接场景,可按以下步骤使用74138译码器进行地址选择: 1. **确定选通条件**:根据系统要求和芯特性,确定译码器的选通信号。例如,在某系统中,根据存储器地址范围得出A15始终为低,A14始终为高,可分别与译码器的G2A(低)和G1(高)对应,访存控制信号MREQ(低电平有效)与G2B(低)对应,以此保证译码器正常工作[^1]。 2. **连接地址输入端**:将CPU的部分地址线连接到译码器的地址输入端A、B、C。如在上述系统中,将剩下的A13、A12、A11分别接到译码器的C、B、A输入端,通过这3位地址线的不同组合来选择不同的输出端[^1]。 3. **根据输出选择存储芯**:译码器的输出端连接到存储芯选端。当某个输出端有效(低电平)时,对应的存储芯被选中。例如,输出Y4有效时,选中1ROM;Y5与A10同时有效均为低电平时,与门输出选2RAM[^1]。 ### 代码示例 以下是一个简单的Python代码示例,模拟74138译码器的工作原理: ```python def decoder_74138(G1, G2A, G2B, A, B, C): # 检查选通条件 if G1 == 1 and G2A == 0 and G2B == 0: # 根据A、B、C的值计算输出端索引 index = C * 4 + B * 2 + A # 生8个输出端的列表,初始都为1 outputs = [1] * 8 # 将对应输出端置为0 outputs[index] = 0 return outputs else: # 选通条件不满足,所有输出端为1 return [1] * 8 # 示例输入 G1 = 1 G2A = 0 G2B = 0 A = 0 B = 1 C = 1 # 调用译码器函数 output = decoder_74138(G1, G2A, G2B, A, B, C) print(f"译码器输出: {output}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值