3-8译码器

3-8译码器

基于XILINX BASYS 3板

3输入8输出,通过三个信号来控制8个信号

原理图

在这里插入图片描述

源代码

module decoder_3_8(
    a,
    b,
    c,
    out
);
    input a;
    input b;
    input c;
    output  reg [7:0] out;
    //位宽描述符【 :】
    //也可添加语句 reg [7:0] out;
    
    //以always块描述的信号赋值,被赋值对象必须定义为reg类型
    always@(*)begin
    //等价于:always@(a,b,c)
        case({a,b,c})
        //{a,b,c}原本三个一位的信号变成了,一个三位的信号(位拼接)
        //wire [3:0]d;
        //assign d={a,1'b0,b,c};
            3'b000:out = 8'b0000_0001;
            3'b001:out = 8'b0000_0010;
            3'b010:out = 8'b0000_0100;
            3'b011:out = 8'b0000_1000;
            3'b100:out = 8'b0001_0000;
            3'b101:out = 8'b0010_0000;
            3'b110:out = 8'b0100_0000;
            3'b111:out = 8'b1000_0000;
         endcase
    end    
endmodule

测试激励

module decoder_3_8_tb;
    reg s_a;
    reg s_b;
    reg c;
    wire [7:0] out;
    
    decoder_3_8 decoder_3_8(
        .a(s_a),
        .b(s_b),
        .c(c),
        .out(out)
    );
    
    initial begin
    s_a=0;s_b=0;c=0;
    #200;
    s_a=0;s_b=0;c=1;
    #200;
    s_a=0;s_b=1;c=0;
    #200;
    s_a=0;s_b=1;c=1;
    #200;
    s_a=1;s_b=0;c=0;
    #200;
    s_a=1;s_b=0;c=1;
    #200;
    s_a=1;s_b=1;c=1;
    #200;
            
    end
endmodule

仿真

在这里插入图片描述

布局布线

在这里插入图片描述

分配管脚

依据图

在这里插入图片描述

set_property IOSTANDARD LVCMOS33 [get_ports {out[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {out[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports a]
set_property IOSTANDARD LVCMOS33 [get_ports b]
set_property IOSTANDARD LVCMOS33 [get_ports c]
set_property PACKAGE_PIN V16 [get_ports b]
set_property PACKAGE_PIN V17 [get_ports c]
set_property PACKAGE_PIN W16 [get_ports a]
set_property PACKAGE_PIN U16 [get_ports {out[0]}]
set_property PACKAGE_PIN E19 [get_ports {out[1]}]
set_property PACKAGE_PIN U19 [get_ports {out[2]}]
set_property PACKAGE_PIN V19 [get_ports {out[3]}]
set_property PACKAGE_PIN W18 [get_ports {out[4]}]
set_property PACKAGE_PIN U15 [get_ports {out[5]}]
set_property PACKAGE_PIN U14 [get_ports {out[6]}]
set_property PACKAGE_PIN V14 [get_ports {out[7]}]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值