【FPGA】QuartusII13.0实现组合逻辑 3/8 译码器

3/8译码器一般用于资源扩展,如驱动led阵列时,即使是FPGA,IO资源也明显不足,借此可以扩展出更多的IO口,通过实现 3/8译码器,记录一下FPGA开发的基本步骤

1.代码编写

module decoder3_8
(
input wire in1 , //输入信号 in1
input wire in2 , //输入信号 in2
input wire in3 , //输入信号 in3

output reg [7:0] out //输出信号 out
);

//out:根据 3 个输入信号选择输出对应的 8bit out 信号
always@(*)
//使用"{}"位拼接符将 3 个 1bit 数据按照顺序拼成一个 3bit 数据
if({in1, in2, in3} == 3'b000)
out = 8'b0000_0001;
else if({in1, in2, in3} == 3'b001)
out = 8'b0000_0010;
else if({in1, in2, in3} == 3'b010)
out = 8'b0000_0100;
else if({in1, in2, in3} == 3'b011)
out = 8'b0000_1000;
else if({in1, in2, in3} == 3'b100)
out = 8'b0001_0000;
else if({in1, in2, in3} == 3'b101)
out = 8'b0010_0000;
else if({in1, in2, in3} == 3'b110)
out = 8'b0100_0000;
else if({in1, in2, in3} == 3'b111)
out = 8'b1000_0000;
else

out = 8'b0000_0001;

endmodule

2.分析综合

(1)分析综合
在这里插入图片描述
(2)查看RTL视图
在这里插入图片描述
3.编写仿真代码

`timescale 1ns/1ns
module tb_decoder3_8();

//reg define
reg in1;
reg in2;
reg in3;
//wire define
wire [7:0] out;

//初始化输入信号
initial begin
in1 <= 1'b0;
in2 <= 1'b0;
in3 <= 1'b0;
end

//in1:产生输入随机数,模拟输入端 1 的输入情况
always #10 in1 <= {$random} % 2;

//in2:产生输入随机数,模拟输入端 2 的输入情况
always #10 in2 <= {$random} % 2;

//in3:产生输入随机数,模拟输入端 3 的输入情况
always #10 in3 <= {$random} % 2;

//------------------------------------------------------------
initial begin
$timeformat(-9, 0, "ns", 6);
$monitor("@time %t:in1=%b in2=%b in3=%b out=%b",$time,in1,in2,in3,out);
end
//------------------------------------------------------------

//-------------decoder3_8_inst----------------
decoder3_8 decoder3_8_ins
(
 .in1(in1), //input in1
 .in2(in2), //input in2
 .in3(in3), //input in3

 .out(out) //output [7:0] out
);

endmodule

4.波形仿真

(1)波形输出
在这里插入图片描述
(2)数值输出
在这里插入图片描述
5.引脚约束
在这里插入图片描述
FPGA分配策略参照:https://wenku.baidu.com/view/394b592c6137ee06eef9182b.html

6.全编译
在这里插入图片描述

7.下载到板

  • 7
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外来务工人员徐某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值