编码器/译码器(Verilog HDL)|计算机组成
目录
- 前言
- 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)|计算机组成相关推荐
- 显示译码器——Verilog HDL语言
显示译码器 任务描述 相关知识 逻辑原理 共阴数码管及其电路 编程要求 源代码 任务描述 根据所学的组合逻辑及数字电路的知识完成一个16进制7段数码显示译码器的设计,验证满足一个16进制7段数码显示译 ...
- 编码器设计——Verilog HDL语言
编码器设计 任务描述 相关知识 3位二进制优先编码器的功能 always语句 事件时序控制 编程要求 源代码 任务描述 设计一个3位二进制优先编码器.运用Verilog HDL进行设计,完善3位二进制 ...
- 你知道Verilog HDL程序是如何构成的吗
本节通过硬件描述语言Verilog HDL对二十进制编码器的描述,介绍Verilog HDL程序的基本结构及特点. 二十进制编码器及Verilog HDL描述 二十进制编码器是数字电路中常用的电路单元 ...
- 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第四章:七段译码器
1单选(2分) 2-4译码器有____位输入,位输出,在输出的所有位中,只有其中1位有效,通常在计算机里用作, 有一些译码器设有一个和多个使能控制输入端,又成为片选端,用来控制允许译码或禁止译码. A ...
- 译码器设计——Verilog HDL语言
译码器设计 任务描述 相关知识 3线-8线译码器的功能 always语句 事件时序控制 case语句 编程要求 源代码 任务描述 设计一个3线-8线译码器.运用Verilog HDL进行设计,完善译码 ...
- 如何用Verilog HDL设计显示译码器
Verilog HDL 设计显示译码器 逻辑原理: 7 段数码是纯组合电路,通常的小规模专用 IC,如 74 或 4000 系列的器件只能作十进制 BCD 码译码,然而数字系统中的数据处理和运算都是 ...
- 【连载】 FPGA Verilog HDL 系列实例--------8-3 BCD七段显示译码器
[连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 8-3 BCD七段显示译码器 一.原理 7段数码管是利用不同发光段组合的方式来显示不同的数码,为了试数码管能将数码所代 ...
- 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第三章:三态门和多路器
1判断(2分) 数字逻辑电路有两大种类型,组合逻辑电路和时序逻辑电路,组合逻辑电路"没有记忆",输出由输入决定,时序逻辑电路"有记忆",输出由当前输入和以前的状 ...
- 数字集成电路设计(四、Verilog HDL数字逻辑设计方法)(一)
文章目录 1.Verilog语言的设计思想和可综合特性 2. 组合电路的设计 2.1 数字加法器 2.2 数据比较器 2.3 数据选择器 2.4 数字编码器 2.4.1 3位二进制8线-3线编码器 2 ...
- 爆肝4万字❤️零基础掌握Verilog HDL
文章目录 0.前言 1.Verilog HDL简介 1.1 什么是Verilog HDL 1.2 verilog发展历史ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ 1.3 为什么要使用verilog ...
最新文章
- Android 布局文件Graphical Layout不显示预览
- 阿里云 MSE 云原生网关助力斯凯奇轻松应对双 11 大促
- 国内下载erlang链接
- c#web服务器 虚拟目录,C#建立自己的Web服务器
- Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)
- java 队列_百战程序员:Java并发阻塞队列
- windows服务器安装nginx
- linux gdb 脚本,如何写gdb命令脚本
- Spring学习笔记:尝试Lombok简化实体类代码
- NXP Pico i.MX7D上安装Android Things系统疑难杂症汇总
- 项目管理之我见:程序开发步骤
- 如何使用QGIS下载Google地图的遥感影像
- kettle工具使用教程
- ECMAScript基础
- 《2022 数字时代|元宇宙产业发展高峰论坛》圆满落幕
- python矩阵求和, numpy.sum()
- 第一篇 .NET高级技术之索引器
- win10取消默认文件打开方式
- DDD如何设计落地?(库存,产品账示例)
- 巨头纷纷布局分布式云,一场新的云战争即将打响