目录

  • 前言
  • 1. 8-3编码器
  • 2. 3-8译码器

前言

编码与译码是一对相反的操作,其中编码是将2n个电路状态转换为n个二进制结果;译码是将n个二进制结果转换为2n个电路状态。下面主要介绍最经典的8-3编码器与3-8译码器。

1. 8-3编码器

8-3编码器即把8个1位的二进制数转换位3个1位的二进制结果输出。我们根据转换表来编写代码,转换表如下,从I0到I7(从低位到高位)表示的是编码器的输入,从Y2到Y0(从高位到低位)表示的是编码器的输出。在进行转换时我们只需要注意到出现在最高位的1即可。

代码如下:

module encoder8_3(input [7:0]I,output reg [2:0]Y);always@(I) begin//从高位到低位判断出现1的位置,并进行转换if(I[7]==1) Y=3'b111;else if(I[6]==1) Y=3'b110;else if(I[5]==1) Y=3'b101;else if(I[4]==1) Y=3'b100;else if(I[3]==1) Y=3'b011;else if(I[2]==1) Y=3'b010;else if(I[1]==1) Y=3'b001;else if(I[0]==1) Y=3'b000;else Y=3'b000;end
endmodule

仿真代码如下:(只取了8之前的数字,自己可以继续进行扩充)

module encoder8_3_sim();reg [7:0]I=8'b00000000;wire [2:0]Y;encoder8_3 uut(.I(I),.Y(Y));initial begin#100 I=8'b00000001;#100 I=8'b00000010;#100 I=8'b00000011;#100 I=8'b00000100;#100 I=8'b00000101;#100 I=8'b00000110;#100 I=8'b00000111;#100 I=8'b00001000;end
endmodule

仿真波形结果如下:

2. 3-8译码器

译码是编码的逆过程,可以将n位的二进制代码,译为2n种电路状态。代码的变量介绍如下:

变量 长度 输入/输出 含义
a 3 input 3-8译码器三位二进制输入
ena 1 input 3-8译码器使能信号,为0则归0,为1则输出对应的译码信号
y 8 output 3-8译码器对应的8种电路状态输出

同样转换关系表如下图所示:

代码如下:

module decoder3_8(input [2:0]a,input ena,output reg [7:0]y); always@(*) beginif(ena==0) y=8'b00000000;else begincase(a)3'b000:y=8'b00000001;3'b001:y=8'b00000010;3'b010:y=8'b00000100;3'b011:y=8'b00001000;3'b100:y=8'b00010000;3'b101:y=8'b00100000;3'b110:y=8'b01000000;3'b111:y=8'b10000000;default:y=8'b00000000;endcaseendend
endmodule

仿真代码如下:

module decoder3_8_sim();reg [2:0]a=3'b000;reg ena=1;wire [7:0]y;decoder3_8 uut(.a(a),.ena(ena),.y(y));initial begin#100 a=3'b001;#100 a=3'b010;#100 a=3'b011;#100 a=3'b100;#100 a=3'b101;#100 a=3'b110;#100 a=3'b111;#100 a=3'b010;ena=0;#100 a=3'b111;end
endmodule

仿真波形结果如下:

编码器/译码器(Verilog HDL)|计算机组成相关推荐

  1. 显示译码器——Verilog HDL语言

    显示译码器 任务描述 相关知识 逻辑原理 共阴数码管及其电路 编程要求 源代码 任务描述 根据所学的组合逻辑及数字电路的知识完成一个16进制7段数码显示译码器的设计,验证满足一个16进制7段数码显示译 ...

  2. 编码器设计——Verilog HDL语言

    编码器设计 任务描述 相关知识 3位二进制优先编码器的功能 always语句 事件时序控制 编程要求 源代码 任务描述 设计一个3位二进制优先编码器.运用Verilog HDL进行设计,完善3位二进制 ...

  3. 你知道Verilog HDL程序是如何构成的吗

    本节通过硬件描述语言Verilog HDL对二十进制编码器的描述,介绍Verilog HDL程序的基本结构及特点. 二十进制编码器及Verilog HDL描述 二十进制编码器是数字电路中常用的电路单元 ...

  4. 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第四章:七段译码器

    1单选(2分) 2-4译码器有____位输入,位输出,在输出的所有位中,只有其中1位有效,通常在计算机里用作, 有一些译码器设有一个和多个使能控制输入端,又成为片选端,用来控制允许译码或禁止译码. A ...

  5. 译码器设计——Verilog HDL语言

    译码器设计 任务描述 相关知识 3线-8线译码器的功能 always语句 事件时序控制 case语句 编程要求 源代码 任务描述 设计一个3线-8线译码器.运用Verilog HDL进行设计,完善译码 ...

  6. 如何用Verilog HDL设计显示译码器

    Verilog HDL 设计显示译码器 逻辑原理: 7 段数码是纯组合电路,通常的小规模专用 IC,如 74 或 4000 系列的器件只能作十进制 BCD 码译码,然而数字系统中的数据处理和运算都是 ...

  7. 【连载】 FPGA Verilog HDL 系列实例--------8-3 BCD七段显示译码器

    [连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 8-3 BCD七段显示译码器 一.原理 7段数码管是利用不同发光段组合的方式来显示不同的数码,为了试数码管能将数码所代 ...

  8. 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第三章:三态门和多路器

    1判断(2分) 数字逻辑电路有两大种类型,组合逻辑电路和时序逻辑电路,组合逻辑电路"没有记忆",输出由输入决定,时序逻辑电路"有记忆",输出由当前输入和以前的状 ...

  9. 数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(一)

    文章目录 1.Verilog语言的设计思想和可综合特性 2. 组合电路的设计 2.1 数字加法器 2.2 数据比较器 2.3 数据选择器 2.4 数字编码器 2.4.1 3位二进制8线-3线编码器 2 ...

  10. 爆肝4万字❤️零基础掌握Verilog HDL

    文章目录 0.前言 1.Verilog HDL简介 1.1 什么是Verilog HDL 1.2 verilog发展历史ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 1.3 为什么要使用verilog ...

最新文章

  1. Android 布局文件Graphical Layout不显示预览
  2. 阿里云 MSE 云原生网关助力斯凯奇轻松应对双 11 大促
  3. 国内下载erlang链接
  4. c#web服务器 虚拟目录,C#建立自己的Web服务器
  5. Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)
  6. java 队列_百战程序员:Java并发阻塞队列
  7. windows服务器安装nginx
  8. linux gdb 脚本,如何写gdb命令脚本
  9. Spring学习笔记:尝试Lombok简化实体类代码
  10. NXP Pico i.MX7D上安装Android Things系统疑难杂症汇总
  11. 项目管理之我见:程序开发步骤
  12. 如何使用QGIS下载Google地图的遥感影像
  13. kettle工具使用教程
  14. ECMAScript基础
  15. 《2022 数字时代|元宇宙产业发展高峰论坛》圆满落幕
  16. python矩阵求和, numpy.sum()
  17. 第一篇 .NET高级技术之索引器
  18. win10取消默认文件打开方式
  19. DDD如何设计落地?(库存,产品账示例)
  20. 巨头纷纷布局分布式云,一场新的云战争即将打响

热门文章

  1. web项目下的WEB-INF、WebRoot
  2. 解决微信调整字体大小导致页面样式混乱的问题
  3. python编写程序统计一元人民币换成一分、两分和五分的所有兑换方案个数(用while循环)
  4. iOS开发中向iPhone模拟器中添加视频资源
  5. 查看ubuntu版本号
  6. 设计原则Python
  7. 网络攻防之wireshark抓取登录信息
  8. 天池项目总结,特征工程了解一下!
  9. JAVA文章相似度对比(hanlp)
  10. 外网登录homeassistant