一、原理

输入为n,输出为2^n。一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象。在这里3-8译码器则将3为二进制代码翻译为8位只有一位为低电平其余全为高电平的对象。

二、时序

在这里采用组合逻辑,每输入一个三位二进制,就立即对应输出8位译码。

三、代码

decoder_38.v

module decoder_38(input              clk,input               rst_n,input     [2:0]   din,output  reg [7:0]   dout
);always @(*)begincase(din)3'b000:dout<=8'b11111110;3'b001:dout<=8'b11111101;3'b010:dout<=8'b11111011;3'b011:dout<=8'b11110111;3'b100:dout<=8'b11101111;3'b101:dout<=8'b11011111;3'b110:dout<=8'b10111111;3'b111:dout<=8'b01111111;default:;endcaseend
endmodule

decoder_38_tb.v

`timescale 1ns/1ps
module decoder_38_tb();reg              tb_clk  ;reg            tb_rst_n;reg        [2:0]   tb_din  ;wire   [7:0]   tb_dout ;decoder_38 u_decoder_38(.clk   (tb_clk     ),.rst_n    (tb_rst_n   ),.din  (tb_din     ),.dout   (tb_dout  )
);parameter CYCLE_CLOCK = 20;initial tb_clk = 1'b1;always #(CYCLE_CLOCK/2) tb_clk = ~tb_clk;integer i=0,j=0;initial begintb_din = 3'd0;tb_rst_n = 1'b1;#(20*CYCLE_CLOCK);tb_rst_n = 1'b0;#(20*CYCLE_CLOCK);tb_rst_n = 1'b1;repeat(20)beginfor(i=0;i<10;i=i+1)beginj={$random}%10;#2;tb_din = {$random}%7;#(j*CYCLE_CLOCK);endend$stop;endendmodule

decoder_38.do

#tcl脚本仿真vlib work
#创建工作库 名为workvmap work work
#映射工作库 work 到 workvlog decoder_38_tb.v
#编译被testbench文件vlog decoder_38.v
#编译被仿真文件vsim -novopt work.decoder_38_tb
#指定仿真顶层add wave -position insertpoint sim:/decoder_38_tb//*
#添加testbench顶层模块中的信号波形窗

四、总结

可以对其进行扩展,例如4-16译码器,5-32译码器等等。

Verilog 38译码器相关推荐

  1. (147)Verilog编程:使用3-8译码器实现全减器

    (147)Verilog编程:使用3-8译码器实现全减器 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Verilog编程:使用3-8译码器实现全减器: 5)结束语. ...

  2. Verilog快速入门(13)—— 用3-8译码器实现全减器

    Verilog快速入门 (1) 四选一多路器 (2)异步复位的串联T触发器 (3)奇偶校验 (4)移位运算与乘法 (5)位拆分与运算 (6)使用子模块实现三输入数的大小比较 (7)4位数值比较器电路 ...

  3. 记录使用Spartan-6 FPGA进行一次3-8译码器实验

    之前仔细的记录过一次PWM蜂鸣器的实验,见博文:全过程实现一个最简单的FPGA项目之PWM蜂鸣器控制,这里就不再仔细的写下全过程了,因为都是一样的过程,只记录一下做这个小实验的思路即可. 3-8译码器 ...

  4. 学习笔记——3-8译码器实例(FPGA)

    一.3-8译码器简介 1.简介 译码是编码的逆过程.其功能是将具有特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路称为译码器.如果有n个二进制选择线,则最多可译码转换成2n个数据. ...

  5. fpga组合逻辑(4位比较器、8-3优先编码器、38译码器实现全减器、数据选择器实现逻辑函数等)

    目录 组合逻辑 VL11 4位数值比较器电路 VL12 4bit超前进位加法器电路 VL13 优先编码器电路① VL14 用优先编码器①实现键盘编码电路 VL15 优先编码器Ⅰ VL16 使用8线-3 ...

  6. 38译码器数码管c语言代码,38译码器驱动数码管电路图

    使用38译码器来驱动数码管来节省IO端口 (1)什么是38译码器? 38译码器有3个输入端口A.B.C和8个输出端口Y0-Y7.由输入端口控制输出端口的值 (2)为什么要使用38译码器 回想之前的驱动 ...

  7. 3-8 译码器设计实验--VHDL

    一.实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习使用原理图方法进行逻辑设计输入,并初步了解可编程器件设计的全过程 (3)熟悉ALTERA公司EDA设计工具软件Quartusll ...

  8. 牛客刷题<19>使用3-8译码器实现逻辑函数

    题目:使用3-8译码器①实现逻辑函数_牛客题霸_牛客网 思路:此方法可适合于任何逻辑函数,需要将L=(~A)·C+A·B 逻辑式转换为最小项的形式. 实现逻辑表达式 38译码器的输出实际上包含了输入A ...

  9. 51单片机交通灯(定时器+38译码器+中断)

    51单片机交通灯这个实例主要用到的知识点有: >如何点亮LED >38译码器位选与段选 >定时器控制 >中断控制 #include <reg52.h>/****** ...

  10. 计算机组成原理画出CPU与主存及3-8译码器之间信号线的连接问题

    [前驱知识–主存储器扩展]      主存储器表达方法:字线(地址线) × 位线(数据线)      *CS片选信号线.WE读写控制信号线.A地址线.D数据线. 位扩展(数据线扩充) 例如:两片16K ...

最新文章

  1. go语言----函数 结构体 接口 多态
  2. c++ 获取时间字符串
  3. oracle查询表的id,oracle 查看所有用户及密码 实现Oracle查询用户所有表
  4. php ascii art,ASCII art (简体中文)
  5. 罗永浩回应被限制高消费:已跟债权方达成和解
  6. opencv之CmakeLists.txt配置
  7. 怎样用java生成GUID与UUID
  8. webpack最佳入门实践系列(08)
  9. java研发微博营销
  10. 内存卡格式化了怎么办?能恢复吗?
  11. matlab hold all,Matlab中的命令hold on hold off | 学步园
  12. java中的undefined_undefined是什么意思啊?
  13. Elsevier论文模板没有author biography的解决办法
  14. 联想小新V1070-FXSE(FX版)怎么重装系统教程
  15. EXCEL:SUMIFS多条件求和2(筛选效果),含字符串转数组用法
  16. Android 音视频开发之基础篇 使用 imageview绘制一张图片
  17. javascript 的七七八八
  18. 移动硬盘一直不能正常读取
  19. 为什么电源纹波那么大?
  20. #VCS# 关于Verdi KDB 数据库

热门文章

  1. 主流开源 BI 产品对比
  2. hive三种建表语句
  3. 《ParaView Tutorial》
  4. 微信小程序自定义Dialog弹框
  5. elasticsearch 分组求和
  6. 变砖的平板怎样重装android,台电平板电脑刷机教程,小编教你台电平板电脑怎么刷机...
  7. ORL、Yale等人脸数据库百度云链接
  8. 使用Chrome谷歌浏览器打开Axure原型图
  9. mysql卸载不_mysql卸载不干净解决方法
  10. android怎么实现记住密码功能,Android学习笔记——记住密码的功能实现(一)