用优先编码器①实现键盘编码电路

描述

        请使用优先编码器①实现键盘编码电路,可添加并例化题目中已给出的优先编码器代码。

        10个按键分别对应十进制数0-9,按键9的优先级别最高;按键悬空时,按键输出高电平,按键按下时,按键输出低电平;键盘编码电路的输出是8421BCD码。

        要求:键盘编码电路要有工作状态标志,以区分没有按键按下和按键0按下两种情况。

        优先编码器真值表如下图:

优先编码器代码如下: 

module encoder_0(
   input      [8:0]         I_n   ,
   
   output reg [3:0]         Y_n   
);

always @(*)begin
   casex(I_n)
      9'b111111111 : Y_n = 4'b1111;
      9'b0xxxxxxxx : Y_n = 4'b0110;
      9'b10xxxxxxx : Y_n = 4'b0111;
      9'b110xxxxxx : Y_n = 4'b1000;
      9'b1110xxxxx : Y_n = 4'b1001;
      9'b11110xxxx : Y_n = 4'b1010;
      9'b111110xxx : Y_n = 4'b1011;
      9'b1111110xx : Y_n = 4'b1100;
      9'b11111110x : Y_n = 4'b1101;
      9'b111111110 : Y_n = 4'b1110;
      default      : Y_n = 4'b1111;
   endcase    
end 
     
endmodule

输入描述

input      [9:0]         S_n   

输出描述

output wire[3:0]         L     ,

output wire              GS

解题分析

②实现键盘编码电路

        用S_n[0]~S_n[9]表示10个按键,分别对应编码器的10个输入端,工作状态用GS表示,当有按键按下时,GS是1,当无按键按下时,GS是0.

        需要考虑的是如何将10个按键对应到编码器的9个输入端。

画出此键盘编码电路真值表。

        对照此键盘编码电路真值表和编码器的真值表可以看出,将编码器输出反向后,就可以实现表格中蓝色的部分功能。将所有输入信号进行与非运算后,便可作为GS的输出。

        编码器是9个输出端,键盘编码器需要10个,因此将S_n[0]接与非门的输入端,当S_n[1]~S_n[9]是1,S_n[0]是0时,L编码是0000,GS是1,进而可画出键盘编码电路如下:

 结合电路图,将电路转换成Verilog代码描述如下:

wire   [3:0]         Y_n;
encoder_0 u0(
   .I_n   (S_n[9:1]),
       
   .Y_n   (Y_n)
);

assign L = ~Y_n;

assign GS = ~(S_n[0] & Y_n[0] & Y_n[1] & Y_n[2] & Y_n[3]);

实现代码

`timescale 1ns/1ns

module encoder_0(
   input      [8:0]         I_n   ,
   
   output reg [3:0]         Y_n   
);

always @(*)begin
   casex(I_n)
      9'b111111111 : Y_n = 4'b1111;
      9'b0xxxxxxxx : Y_n = 4'b0110;
      9'b10xxxxxxx : Y_n = 4'b0111;
      9'b110xxxxxx : Y_n = 4'b1000;
      9'b1110xxxxx : Y_n = 4'b1001;
      9'b11110xxxx : Y_n = 4'b1010;
      9'b111110xxx : Y_n = 4'b1011;
      9'b1111110xx : Y_n = 4'b1100;
      9'b11111110x : Y_n = 4'b1101;
      9'b111111110 : Y_n = 4'b1110;
      default      : Y_n = 4'b1111;
   endcase    
end 
     
endmodule

module key_encoder(
      input      [9:0]         S_n   ,         
 
      output wire[3:0]         L     ,
      output wire              GS
);

wire   [3:0]         Y_n;
encoder_0 u0(
   .I_n   (S_n[9:1]),
       
   .Y_n   (Y_n)
);

assign L = ~Y_n;

assign GS = ~(S_n[0] & Y_n[0] & Y_n[1] & Y_n[2] & Y_n[3]);
      
   
endmodule

注:解题分析来源于网友,如有侵权,请告删之。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络----第八天

真是交换机怎么操作使用 H3C路由交换产品连接方法: ①SSH |Telnet |console ②直连和间接连接方式 ③上手操作建议: 命令行使用基础: ① system-view #进入系统视图 user-interface vty 0 4 #vty就是用telnet/ssh远程进入交换机的界面(虚…

第十四讲:C语言字符函数和字符串函数

目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…

Qwen-WisdomVast (千问-智瀚)

介绍 Qwen-WisdomVast是以Qwen1.5-7B为底座,使用 DORA LORA 的训练方法,在100w高质量中文多轮SFT数据 20w英文多轮SFT数据 2000单轮自我认知数据训练而来的大模型,数学能力相比Qwen1.5-7B-Chat提升了5.16%,在HumanEval数据集上…

12 nacos 一系列 403 的构造

前言 最近 生产环境环境出现了 一系列的 nacos 403, 然后 这里来大致看一下 各种可能得情况 首先 nacos 服务器需要开启认证配置 这里 nacos 调试版本为 2.0.4 case1 用户无角色关联导致 403 报错的信息如下 2023-06-28 13:05:11.448 ERROR 10279 --- [ mai…

JR-D401 UHD 4K超高清音视频解码器

详细介绍: JR-D401 UHD 4K超高清解码器,AVS2.0/AVS/H.265HEVC/H.264/MPEG2解码,支持RF/ASI/IP输入,支持4K/1080P/1080I/720P/576I/480I多种分辨率,支持DRA/AC3/EAC3/AAC/MPEG等音频,支持4x3G SDI 4K输出。 产品特点 支持多种输入…

图解WebGLThree.js工作原理

一、WebGL背后的工作原理是什么? 以Three.js为例,讲述框架在背后扮演什么样的角色? 二、我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或者用Three.js做过了一些东西,这个时候,你可…

Conductor 项目的编译启动

本节主要是将Conductor进行启动,观察基本项目的基本能力。 Conductor 后端的编译启动 Conductor是基于17开发的(代码中展示11可运行),依赖管理是通过Gradle完成的,要对项目进行编译通过,至少要满足环境如…

Ant Design 组件中文名称大全

整理Ant Design 中主要组件的中英文名称,加深对组件的印象,为后续使用时更容易想起和查找、与团队成员或其他开发者交流时,使用中文名称能够更加清晰地表达自己的意图,有助于沟通交流、可以更好地理解每个组件的功能和适用场景,有助于加深对 Ant Design 组件库的理解…

数据库提权_攻防(1),2024年最新缓存架构技术

第二个组件显示成功,但是没有回显,我们使用dnslog看一下。命令执行成功。 第三个也成功提权,第四个经过测试,提权失败。 三:mysql提权_UDF提权 MOF提权的条件为小于win2008的机型,所以不作研究。 条件&am…

查询category的id存在于项目表中category_id_list的json array字段中

表category 表project 查询category的id存在于项目表中category_id_list的json array字段中。

使用tomcat里的API - Servlet

Servlet 是一组api,操作http协议的,tomcat提供的。 写网站,接收前端传来的http请求,根据请求计算出一个http响应,并把http响应返回到浏览器这边 一、创建一个新的Maven空项目 首次创建maven项目的时候,…

【上海大学计算机组成原理实验报告】三、微指令系统实验

一、实验目的 了解译码器、微指令结构的基本工作原理。学习设计微指令的方法。 二、实验原理 根据实验指导书的相关内容,本实验所用的实验箱的微指令系统控制总线宽度为24位,每个地址单元宽度也为24位,其中微指令存储器由3片8位存储器按照…

PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图)

目录 前言 需求场景 用例图 类图 活动图 时序图 前言 在软件开发的生命周期中,需要先进行设计,最后才是进行具体的编码和测试。设计时就需要画各种 UML 图,有专业的 UML 画图软件,也有很多在线的 UML 画图网站可以来画图&a…

k8s部署nacos集群

部署环境: ubuntu20.04docker version 20.10.12k8s version 1.23.1kubeadm 一主两从 本篇主要参考nacos官方k8s配置文档的配置顺序,配置文件。 废话不多说直接开肝。 虚拟机上需要nfs 安装nfs #本篇所有执行的命令都是在root用户下操作 #安装命令&am…

用 ElementPlus 的日历组件 Calendar 自定义渲染

文章目录 需求分析1. 英文改为中文2. 修改样式3. 自定义头部4. 增删改功能接入 需求 使用 ElementPlus中的 Calendar 组件完成自定义渲染 分析 1. 英文改为中文 转为中文的方式&#xff1a;用 ElementPlus的日历组件如何改为中文 2. 修改样式 附源码 <template><…

Flask项目如何在测试环境和生产环境部署上线

前言 最近在使用Flask框架&#xff0c;写一个小项目&#xff0c;在项目部署启动后&#xff0c;出现了以下这段提示&#xff0c;这段提示的意思是&#xff0c;该启动方式适用于开发环境中&#xff0c;生产环境要使用WSGI服务器。 WARNING: This is a development server. Do no…

Redis(Windows版本下载安装和使用)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

共享IP和独享IP如何选择,两者有何区别?

有跨境用户在选择共享IP和独享IP时会有疑问&#xff0c;不知道该如何进行选择&#xff0c;共享IP和独享IP各有其特点和应用场景&#xff0c;选择哪种方式主要取决于具体需求和预算。以下是对两者的详细比较&#xff1a; 首先两者的主要区别在于使用方式和安全性&#xff1a;共…

AI人工智能讲师简历大模型讲师叶梓大模型技术与应用培训提纲

叶梓&#xff0c;工学博士&#xff0c;高级工程师。现某大型上市企业资深技术专家。 2005年上海交通大学计算机专业博士毕业&#xff0c;在校期间的主研方向为数据挖掘、机器学习、人工智能。毕业后即进入软件行业从事信息化技术相关工作&#xff1b;负责或参与了多项国家级、省…

如何在 JavaScript 中创建自定义事件?

理解 JavaScript 中的事件 在深入研究自定义事件之前&#xff0c;我们首先了解 JavaScript 中事件的概念。事件是浏览器中发生的操作或事件&#xff0c;由用户交互&#xff08;如单击、鼠标移动或键盘输入&#xff09;或浏览器本身&#xff08;如页面加载、调整大小等&#xf…