码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 「Verilog学习笔记」用优先编码器①实现键盘编码电路


    专栏前言

    本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

     

    分析 

    用此编码器实现键盘的编码电路。

    注意:编码器的输出是低电平有效,而键盘编码电路输出的是正常的8421BCD码,是高电平有效。因此将编码器的输出取反就是8421编码输出的结果

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

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

    仅有一种情况GS为0 即Y_n的四位均为1且S_n[0]也为1 即所有按键都没按下

    1. `timescale 1ns/1ns
    2. module encoder_0(
    3. input [8:0] I_n ,
    4. output reg [3:0] Y_n
    5. );
    6. always @(*)begin
    7. casex(I_n)
    8. 9'b111111111 : Y_n = 4'b1111;
    9. 9'b0xxxxxxxx : Y_n = 4'b0110;
    10. 9'b10xxxxxxx : Y_n = 4'b0111;
    11. 9'b110xxxxxx : Y_n = 4'b1000;
    12. 9'b1110xxxxx : Y_n = 4'b1001;
    13. 9'b11110xxxx : Y_n = 4'b1010;
    14. 9'b111110xxx : Y_n = 4'b1011;
    15. 9'b1111110xx : Y_n = 4'b1100;
    16. 9'b11111110x : Y_n = 4'b1101;
    17. 9'b111111110 : Y_n = 4'b1110;
    18. default : Y_n = 4'b1111; // 若0被按下 Y_n会赋值为默认值
    19. endcase
    20. end
    21. endmodule
    22. module key_encoder(
    23. input [9:0] S_n ,
    24. output wire[3:0] L ,
    25. output wire GS
    26. );
    27. wire [3:0] Y_n ;
    28. encoder_0 u0 (
    29. .I_n (S_n[9:1]),
    30. .Y_n (Y_n)
    31. );
    32. assign L = ~Y_n ;
    33. assign GS = ~(S_n[0] & Y_n[0] & Y_n[1] & Y_n[2] & Y_n[3]) ;
    34. endmodule

  • 相关阅读:
    【学习笔记】windows 下的 shared memory(共享内存)
    [ACNOI2022]不猜不行
    玩机搞机-----安卓全机型刷机卡fastboot模式解决方法与故障解析
    基于Python实现并测试协同滤波算法
    死锁的Demo,产生条件
    php使用sqlServer
    【C++程序员必修第一课】C++基础课程-09:while 循环
    上市公司员工及工资数据(2000-2022年)
    什么是RabbitMQ
    大话“高可用“-Part2∶高可用的干预阶段(原创,转载请标明出处)
  • 原文地址:https://blog.csdn.net/m0_54689021/article/details/134396217
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号