1. 3:8译码器的设计。(输入端3位地址输入端 ,8个输出,s1 s2 s3共同构成使能端)

文章描述了一个使用Verilog编写的模块ymg,该模块有多个输入和一个输出,其功能基于输入信号的状态进行特定的逻辑操作。在测试文件中,对ymg进行了初始化和时序仿真,同时更新输入变量a的值。约束文件指定了输入和输出端口的物理封装和标准,用于连接实际硬件的开关和LED。
摘要由CSDN通过智能技术生成

设计源文件

`timescale 1ns / 1ps
module ymg(
    input s1,
    input s2,
    input s3,
    input [2:0] a,
    output [7:0] y
    );
    
reg [7:0] y=0;
always @(s1 or s2 or s3 or a)
begin
if(s1&&~s2&&~s3)
    case(a)
        0:y=8'b11111110;
        1:y=8'b11111101;
        2:y=8'b11111011;
        3:y=8'b11110111;
        4:y=8'b11101111;
        5:y=8'b11011111;
        6:y=8'b10111111;
        7:y=8'b01111111;
        default:y=8'b11111111;
    endcase
else
    y=8'b11111111;
end
endmodule

 测试文件:

`timescale 1ns / 1ps

module ymg_t();
reg s1,s2,s3;
reg [2:0] a;
wire [7:0] y;
ymg ym(s1,s2,s3,a,y);
initial
begin
    s1=0;s2=0;s3=0;a=0;
    #100
    s1=1;s2=0;s3=0;
end
always #100 a=a+1;
endmodule

仿真结果:

约束文件:



##Switches
set_property -dict { PACKAGE_PIN J15   IOSTANDARD LVCMOS33 } [get_ports { s1 }]; #IO_L24N_T3_RS0_15 Sch=sw[0]
set_property -dict { PACKAGE_PIN L16   IOSTANDARD LVCMOS33 } [get_ports { s2 }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=sw[1]
set_property -dict { PACKAGE_PIN M13   IOSTANDARD LVCMOS33 } [get_ports { s3 }]; #IO_L6N_T0_D08_VREF_14 Sch=sw[2]
set_property -dict { PACKAGE_PIN R15   IOSTANDARD LVCMOS33 } [get_ports { a[0] }]; #IO_L13N_T2_MRCC_14 Sch=sw[3]
set_property -dict { PACKAGE_PIN R17   IOSTANDARD LVCMOS33 } [get_ports { a[1] }]; #IO_L12N_T1_MRCC_14 Sch=sw[4]
set_property -dict { PACKAGE_PIN T18   IOSTANDARD LVCMOS33 } [get_ports { a[2] }]; #IO_L7N_T1_D10_14 Sch=sw[5]

## LEDs
set_property -dict { PACKAGE_PIN H17   IOSTANDARD LVCMOS33 } [get_ports { y[0] }]; #IO_L18P_T2_A24_15 Sch=led[0]
set_property -dict { PACKAGE_PIN K15   IOSTANDARD LVCMOS33 } [get_ports { y[1] }]; #IO_L24P_T3_RS1_15 Sch=led[1]
set_property -dict { PACKAGE_PIN J13   IOSTANDARD LVCMOS33 } [get_ports { y[2] }]; #IO_L17N_T2_A25_15 Sch=led[2]
set_property -dict { PACKAGE_PIN N14   IOSTANDARD LVCMOS33 } [get_ports { y[3] }]; #IO_L8P_T1_D11_14 Sch=led[3]
set_property -dict { PACKAGE_PIN R18   IOSTANDARD LVCMOS33 } [get_ports { y[4] }]; #IO_L7P_T1_D09_14 Sch=led[4]
set_property -dict { PACKAGE_PIN V17   IOSTANDARD LVCMOS33 } [get_ports { y[5] }]; #IO_L18N_T2_A11_D27_14 Sch=led[5]
set_property -dict { PACKAGE_PIN U17   IOSTANDARD LVCMOS33 } [get_ports { y[6] }]; #IO_L17P_T2_A14_D30_14 Sch=led[6]
set_property -dict { PACKAGE_PIN U16   IOSTANDARD LVCMOS33 } [get_ports { y[7] }]; #IO_L18P_T2_A12_D28_14 Sch=led[7]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值