基于FPGA的3-8译码器

目录

一、译码简介:

二、实战演练

三、工程代码

四、总结


开发平台:Quartus Prime 18.1Standard Edition        EP4CE10F17C8(征途PRO系列)

文章后附工程代码链接

一、译码简介:

译码是编码的逆过程,在编码时,每一种二进制代码都赋予了特定的含义,即都表示了一个确定的信号或者对象把代码状态的特定含义翻译出来的过程叫做译码,实现译码操作的电路称为译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。译码器(decoder)是一类多输入多输出组合逻辑电路器件,其可以分为:变量译码和显示译码两类。

二、实战演练

1、实验目标

设计并仿真验证3-8译码器。3-8译码器顾名思义就是3个输入,一共2^3个输出,通过控制输入的不同得到不同的输出

注:3-8译码器的上板验证需要用到8个led灯或者数码管,因为板卡led灯数目不够且数码管部分还未作讲解,因此3-8译码器只进行仿真验证,不再上板测试。

2、模块框图

输入输出信号描述

3、模块波形图

4、实验代码

module decoder  (
    input         [2:0]  a,
    output  reg   [7:0]  b
);
​
always @(*) begin
    case(a)
    3'b000:b= 8'b0111_1111;
    3'b001:b= 8'b1011_1111;
    3'b010:b= 8'b1101_1111;
    3'b011:b= 8'b1110_1111;
    3'b100:b= 8'b1111_0111;
    3'b101:b= 8'b1111_1011;
    3'b110:b= 8'b1111_1101;
    3'b111:b= 8'b1111_1110;
    default:b=8'b0000_0000;
    endcase
    
end
    
endmodule
`timescale 1ns/1ns
module decoder_tb ();
reg         [2:0]  a;
wire        [7:0]  b;
initial begin
    a[0] <=1'b0;
    a[1] <=1'b0;
    a[2] <=1'b0;
end
always #10 a[0] <= {$random} % 2;
always #10 a[1] <= {$random} % 2;
always #10 a[2] <= {$random} % 2;
​
 decoder  decoder_inst(
    .a(a),
    .b(b)
);
​
endmodule

5、仿真波形图

三、工程代码

链接:https://pan.baidu.com/s/1g_1ytZWcl9TD0urjWYjEDQ?pwd=yykl 
提取码:yykl

四、总结

通过本次实验我简单的组合逻辑---3_8译码器,项目并不是很难,但需要我们足够细心。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值