【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL18

server/2024/12/22 19:09:22/

实现3-8译码器①

描述

下表是74HC138译码器的功能表.

E3

E2_n

E1_n

A2

A1

A0

Y0_n

Y1_n

Y2_n

Y3_n

Y4_n

Y5_n

Y6_n

Y7_n

x

1

x

x

x

x

1

1

1

1

1

1

1

1

x

x

1

x

x

x

1

1

1

1

1

1

1

1

0

x

x

x

x

x

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

0

1

1

1

1

1

0

1

1

1

1

1

0

0

1

0

0

1

1

1

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

1

0

1

1

1

0

0

1

1

0

1

1

1

1

1

1

0

1

1

0

0

1

1

1

1

1

1

1

1

1

1

0

①请用基础门电路实现该译码器电路,用Verilog将电路描述出来。基础门电路包括:非门、多输入与门、多输入或门

输入描述:

   input             E1_n   ,
   input             E2_n   ,
   input             E3     ,
   input             A0     ,
   input             A1     ,
   input             A2     

输出描述:

   output wire       Y0_n   ,  
   output wire       Y1_n   , 
   output wire       Y2_n   , 
   output wire       Y3_n   , 
   output wire       Y4_n   , 
   output wire       Y5_n   , 
   output wire       Y6_n   , 
   output wire       Y7_n   

解题思路:

由功能表可以看出,当且仅当E3 = 1、E2_n = 0、E1_n=0时,3-8译码器正常工作;

由于要求使用门电路实现,因此给出输出信号Y0_n~Y1_7的逻辑函数式

Y0_n = A_2 + A_1 + A_0\\ Y1_n = A_2 + A_1 + \overset{-}{A_0} \\ Y2_n = A_2 + \overset{-}{A_1} + A_0 \\ Y3_n = A_2 + \overset{-}{A_1} + \overset{-}{A_0} \\ Y4_n = \overset{-}{A_2} + A_1 + A_0 \\ Y5_n = \overset{-}{A_2} + A_1 + \overset{-}{A_0} \\ Y6_n = \overset{-}{A_2} + \overset{-}{A_1} + A_0 \\ Y7_n = \overset{-}{A_2} + \overset{-}{A_1} + \overset{-}{A_0} \\

代码如下所示:

使用行为级建模

`timescale 1ns/1nsmodule decoder_38(input             E1_n   ,input             E2_n   ,input             E3     ,input             A0     ,input             A1     ,input             A2     ,output wire       Y0_n   ,  output wire       Y1_n   , output wire       Y2_n   , output wire       Y3_n   , output wire       Y4_n   , output wire       Y5_n   , output wire       Y6_n   , output wire       Y7_n   
);reg [7:0] Y_t;
always @(*) beginY_t = 8'b1111_1111;if (E3 == 1'b1 && E2_n == 1'b0 && E1_n == 1'b0) beginY_t[0] = A2 | A1 | A0;Y_t[1] = A2 | A1 | ~A0;Y_t[2] = A2 | ~A1 | A0;Y_t[3] = A2 | ~A1 | ~A0;Y_t[4] = ~A2 | A1 | A0;Y_t[5] = ~A2 | A1 | ~A0;Y_t[6] = ~A2 | ~A1 | A0;Y_t[7] = ~A2 | ~A1 | ~A0;endelse beginY_t = 8'b1111_1111;end
endassign Y0_n = Y_t[0];
assign Y1_n = Y_t[1];
assign Y2_n = Y_t[2];
assign Y3_n = Y_t[3];
assign Y4_n = Y_t[4];
assign Y5_n = Y_t[5];
assign Y6_n = Y_t[6];
assign Y7_n = Y_t[7];endmodule
在使用门级建模时,出现以下问题:

代码如下:

`timescale 1ns/1nsmodule decoder_38(input             E1_n   ,input             E2_n   ,input             E3     ,input             A0     ,input             A1     ,input             A2     ,output wire       Y0_n   ,  output wire       Y1_n   , output wire       Y2_n   , output wire       Y3_n   , output wire       Y4_n   , output wire       Y5_n   , output wire       Y6_n   , output wire       Y7_n   
);//代码二wire work;and a1 (work, ~E1_n, ~E2_n, E3_n);or o0(Y0_n, A0, A1, A2, ~work);
or o1(Y1_n, ~A0, A1, A2, ~work);
or o2(Y2_n, A0, ~A1, A2, ~work);
or o3(Y3_n, ~A0, ~A1, A2, ~work);
or o4(Y4_n, A0, A1, ~A2, ~work);
or o5(Y5_n, ~A0, A1, ~A2, ~work);
or o6(Y6_n, A0, ~A1, ~A2, ~work);
or o7(Y7_n, ~A0, ~A1, ~A2, ~work);endmodule

但是其结果如下:

问题出现在哪里??


http://www.ppmy.cn/server/119822.html

相关文章

Windows10、CentOS Stream9 环境下安装kafka_2.12-3.6.2记录

目录 Windows下操作1. 安装kafka [kafka_2.12-3.6.2](https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz)2. 启动Zookeeper2.1 进入Kafka的config目录,修改zookeeper.properties配置文件 3. 启动kafka3.1 进入Kafka的config目录,修改serve…

C语言循环学习

作为初学者,学习C语言中的循环结构是非常重要的,它们能让你轻松地重复执行代码。在C语言中,常用的循环结构主要有for循环和while循环。我们将从基本概念开始,逐步讲解如何使用这两种循环,并通过示例帮助你理解和练习。…

解决ubuntu22.04 gnome-terminal 无法启动的问题

22.04下面默认的python 版本是3.10. 如果你安装了3.8或其它版本,尽量不要去ln -s python3.8 python3修改默认python3版本,不然Terminal会打不开。猜测Terminal可能用到了python的_gi这个库。 可以在xterm或putty远程连上,输入 sudo gnome-te…

96 kHz、24bit 立体声音频ADC芯片GC5358描述

概述: GC5358 是一款高性能、宽采样率、立体声音频模数转换器。其采样率范围是8KHz~96KHz,非常适合从消费级到专业级的音频应用系统。单端模拟输入不需要外围器件。GC5358 音频有两种数据格式:MSB对齐和 I2S 格式,和各种如 DTV、D…

98-策略模式的理解

‌策略模式是一种软件设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。这种模式允许算法的变化不会影响使用算法的客户端,通过将使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些…

java日志框架之JUL(Logging)

文章目录 一、JUL简介1、JUL组件介绍 二、Logger快速入门三、Logger日志级别1、日志级别2、默认级别info3、原理分析4、自定义日志级别5、日志持久化(保存到磁盘) 三、Logger父子关系四、Logger配置文件 一、JUL简介 JUL全程Java Util Logging&#xff…

ES机制原理

它们内部是如何运行的? 主分片和副本分片是如何同步的? 创建索引的流程是什么样的? ES 如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的? 为什么说 ES 是近实时搜索引擎而文档的 CRUD (创建-读取…

蓝桥杯—STM32G431RBT6(LCD的液晶显示,由原理及实践,配置及lcd函数)

目录 一、LCD的原理(了解) LCD属性 OLED与LCD对比 二、使用步骤 1.引入库 2.代码部分 code.c(含详解) code.h main.c 效果展示 开源代码: 一、LCD的原理(了解) LCD属性 LCD 是英文 “…