【FPGA】Verilog:解码器 | 实现 2-4 解码器

实践内容:解释 2 至 4 解码器的结果和仿真过程 (包括真值表创建和 k 映射、AND 门)。


0x00 解码器(Decoder)

解码器是一种根据输入信号从多个输出 bit 中只选择一个的设备。

例如,如果有一个解码器接收一个 2 位二进制数值作为输入,它可以接收 00、01、10、11 四个数值作为输入,并通过为每个输入只选择四个位中的一个来输出 1000、0100、0010 和 0001 四个数值。只选择一个输出位为 1 的解码器称为主动高电平解码器,只选择一个输出位为 0 的解码器称为主动低电平解码器。当输入存储在特定存储器中的字地址时,主要用于解码操作数/地址,如发出信号选择相应的字(地址解码器)。

解码器分为两种类型:

  1. 主动高电平解码器:在输出中只有一个位是高电平(1),其他位都是低电平(0)。
  2. 主动低电平解码器:在输出中只有一个位是低电平(0),其他位都是高电平(1)。

Active High Decoder

Active High Decoder

0x01 2-4 解码器的实现

解释 2 至 4 解码器的结果和仿真过程 (包括真值表创建和 k 映射、AND 门)。

📃 真值表如下:

输入

输出

A

B

D0

D1

D2

D3

0

0

1

0

0

0

0

1

0

1

0

0

1

0

0

0

1

0

1

1

0

0

0

1

📜 K-map:

D0

D1

D2

D3

💬 Design source:(使用AND门实现)

`timescale 1ns / 1psmodule h_dec(input A,input B,output D0,output D1,output D2,output D3);assign D0 = (~A) & (~B);
assign D1 = B & (~A);
assign D2 = A & (~B);
assign D3 = A & B;endmodule

💬 Testbench:

`timescale 1ns / 1psmodule h_dec_tb;
reg A,B;
wire D0,D1,D2,D3;h_dec u_h_dec (.A(A ),.B(B ),.D0(D0 ),.D1(D1 ),.D2(D2 ),.D3(D3 )
);initial beginA = 1'b0;B = 1'b0;
endalways@(A or B) beginA <= #10 ~A;B <= #20 ~B;
endinitial begin#40$finish;
endendmodule

🚩 运行结果如下:

💭 Schematic:

输入 N 位的情况下返回 2^N 位的输出,其中只有一位为 1,其余为 0(高电平有效),或者只有一位为 0,其余为 1(低电平有效)。将 A、B 作为单个 2 位输入,并将 A 视为 MSB,因此如果 A、B 的值为 00,则 D0、D1、D2、D3 的输出为 1000,01 为 0100,10 为 0010,11 为 1111。

  • D0 = (~A) & (~B); D0 输出被设置为 AB 的取反的与操作。当 AB 都为0时,D0 被激活,即输出为1。
  • D1 = B & (~A); D1 输出被设置为 BA 的取反的与操作。当 A 为0且 B 为1时,D1 被激活,即输出为1。
  • D2 = A & (~B); D2 输出被设置为 AB 的取反的与操作。当 A 为1且 B 为0时,D2 被激活,即输出为1。
  • D3 = A & B; D3 输出被设置为 AB 的与操作。当 AB 都为1时,D3 被激活,即输出为1。

根据输入的不同组合,解码器的四个输出信号中的一个会被激活。

📌 [ 笔者 ]   최역우
📃 [ 更新 ]   2023.12.14
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

📜 参考资料 

Introduction to Logic and Computer Design, Alan Marcovitz, McGrawHill, 2008

Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .

百度百科[EB/OL]. []. https://baike.baidu.com/.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于spacy的句法依存、实体识别、分析

文章目录 简介spaCy特性&#xff1a; 系统环境与版本安装应用示例参考文献 简介 spaCy spaCy 是一个 Python 和 CPython 的 NLP 自然语言文本处理库。因此它是一个非常快的库。它建立在最新的研究基础上&#xff0c;从设计的第一天起就被用于实际产品中。 spaCy 自带预训练的…

好用的硬盘分区工具,傲梅分区助手 V10.2

傲梅分区助手软件可以帮助用户在硬盘上创建、调整、合并、删除分区&#xff0c;以及管理磁盘空间等操作。它可以帮助你进行硬盘无损分区操作。 支持系统 目前这款软件支持 Windows 7、Windows 8、Windows 10、Windows 11 等个人系统&#xff0c;还支持 Windows 2012/2016/2019…

五金品牌网站建设的效果如何

五金产品多而广&#xff0c;无论零售还是批发&#xff0c;都有很高需求&#xff0c;市场中也林立着众多大小品牌&#xff0c;在实际经营中&#xff0c;五金也分为多个类目&#xff0c;同时高需求下相关企业也面临着一些痛点&#xff1a; 1、品牌传播难 对普通消费者来说&…

android下的app性能测试应主要针对那些方面,如何开展?

如何开展安卓手机下的App性能测试&#xff0c;对于优秀的测试人员而言&#xff0c;除了要懂得性能测试的步骤流程外&#xff0c;还应该懂的性能测试的一些其他知识&#xff0c;比如性能测试指标、各指标的意义&#xff0c;常用的性能测试工具、如何查看结果分析等等知识。所以本…

linux空洞文件以及多线程写入

介绍空洞文件 Linux空洞文件&#xff08;hole file&#xff09;是一种特殊类型的文件&#xff0c;其大小可能超过实际存储的数据量。在空洞文件中&#xff0c;文件系统会为文件分配磁盘空间&#xff0c;但实际上只在文件中存储了部分数据&#xff0c;其余部分被称为"空洞…

linux应用程序直接return与exit的区别

在Linux应用程序中&#xff0c;可以使用return语句直接从main函数返回。这将导致程序终止并返回给操作系统。然而&#xff0c;有时候使用exit函数比直接使用return语句更有优势&#xff0c;以下是一些原因&#xff1a; 清理资源&#xff1a;exit函数可以确保在程序终止之前执行…

C/C++常见面试知识总结(三)

C语言是一种通用计算机&#xff08;高级&#xff09;编程语言&#xff1b;面向过程&#xff1b;广泛应用于计算机系统设计以及应用程序编写&#xff1b;设计目标&#xff0c;是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行…

01_Web开发基础之HTML+CSS

Web开发基础之HTMLCSS 学习目标和内容 1、能够描述Web开发需要的技术点 2、能够描述HTML的作用 3、能够实现一个列表 4、能够实现创建一个表格 5、能够实现一个表单 6、能够描述CSS的作用 7、能够使用选择器获取到标签 8、能够使用CSS设置字体的颜色和大小 一、Web开发相关介绍…

Python+Selenium UI自动化测试环境搭建及使用

一、什么是Selenium &#xff1f; Selenium 是一个浏览器自动化测试框架&#xff0c;它主要用于web应用程序的自动化测试&#xff0c;其主要特点如下&#xff1a;开源、免费&#xff1b;多平台、浏览器、多语言支持&#xff1b;对web页面有良好的支持&#xff1b;API简单灵活易…

window同时安装java8和java11

背景 在日常工作中&#xff0c;使用的工具&#xff0c;有一些java写的比较老的工具&#xff0c;环境要求是1.8,有一些java写的工具&#xff0c;环境要求是java11以上。 痛点 使用java写的工具要求是1.8的java&#xff0c;但是window电脑上只安装了java11。就会报下面的错误 …

pytorch中数据预处理模块:transforms详解

1 tranforms概述 1.1 torchvision介绍 torchvision是pytorch的计算机视觉工具包&#xff0c;主要有以下三个模块&#xff1a; torchvision.transforms&#xff1a;提供了常用的一系列图像预处理方法&#xff0c;例如数据的标准化&#xff0c;中心化&#xff0c;旋转&#xff…

Redis实现延迟队列

目录 一、什么是延时队列 二、延时队列的应用 三、举例说明 我的设计思想: 一、什么是延时队列 延时队列相比于普通队列最大的区别就体现在其延时的属性上&#xff0c;普通队列的元素是先进先出&#xff0c;按入队顺序进行处理&#xff0c;而延时队列中的元素在入队时会指定…

策略+工厂完成支付方式选择(微信/支付宝),简单实现

需求 传参String payType wechat 使用微信支付传参String payType ali 使用支付宝支付代码不允许出现if-else 思路 把支付当作一个行为&#xff0c;代码中当作一个接口&#xff0c;payService。2个实现类&#xff0c;分别是微信支付实现类WeChatPayServiceImpl&#xff0c…

4G无线工业级路由器在智能制造设备互联互通中的角色

随着工业技术的不断发展和进步&#xff0c;智能制造已经成为了现代制造业的重要趋势和发展方向。而在智能制造过程中&#xff0c;设备之间的互联互通是至关重要的一环。在这个过程中&#xff0c;4G无线工业级路由器扮演着重要的角色&#xff0c;它提供了稳定可靠的网络连接&…

c语言->浅学结构体

系列文章目录 文章目录 前言 ✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青_C语言,函数,指针-CSDN博客 目的&#xff1a;学习结构体基础内容&am…

6.【自动驾驶与机器人中的SLAM技术】鲁邦核函数的含义和应用

目录 1. 给ICP和NDT配准添加柯西核函数1.1 代码实现 2. 将第1部分的robust loss引入IncNDTLO和LooselyLIO&#xff0c;给出实现和运行效果3. 从概率层面解释NDT残差和协方差矩阵的关系&#xff0c;说明为什么NDT协方差矩阵可以用于最小二乘4. 为LOAM like LO设计一个地面点云提…

从菜鸟到专业人士:来自真实 PRD 写作经验的 5 个改变游戏规则的产品管理课程

产品管理是一个复杂且具有挑战性的角色。PRD&#xff08;即产品需求文档&#xff09;就像构建产品的蓝图&#xff0c;可将其视为指导开发团队创造令人惊叹的产品的详细路线图。本文除了介绍产品经理如何写好PRD&#xff0c;也将进一步阐述产品经理应该学习哪些技能&#xff1f;…

玩转树莓派之系统安装篇

介绍 树莓派是树莓派基金会下的一个明星产品&#xff08;单板计算机&#xff09;&#xff0c;已经迭代到第五代了&#xff1b;它性能强大、开源、拓展性强、体积小&#xff0c;搞物联网开发的人基本都听说过这个玩意&#xff01;笔者手上刚好有一块4B的板子&#xff0c;让我们…

python封装执行cmd命令的方法

一、前置说明 在自动化时&#xff0c;经常需要使用命令行工具与系统进行交互&#xff0c;因此可以使用python封装一个执行cmd命令的方法。 二、代码实现 import subprocess import timefrom common.exception import RunCMDError from common.logger import loggerclass Cmd…

STM32储存器和总线构架

一、引言 本篇文章旨在介绍STM32小容量、中容量和大容量的储存器和系统构架&#xff0c;文中涉及到一些专有名词和概念较为抽象和陌生&#xff0c;建议读者能够查阅相关资料和知识加深了解。 二、正文 &#xff08;一&#xff09;、系统构架 在小容量、中容量和 大容量产品中…