FPGA学习verilog基础语法练习实现取最大值

该文介绍了使用Verilog语言设计一个模块,该模块接收4个8位输入变量A、B、C、D,并输出其中的最大值。通过条件赋值语句,当一个输入大于其他所有输入时,该输入作为输出。在测试模块中,使用随机数模拟输入并验证功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

verilog基础语法练习

设计目标:设计输入4个8位的变量,输出最大值模块

框图

请添加图片描述

代码

opra文件

module opre (
    input wire [7:0]A,
    input wire [7:0]B,
    input wire [7:0]C,
    input wire [7:0]D,
    output wire [7:0]Y
);

assign Y = (A>B&&A>C&&A>D)?A:
           (B>A&&B>C&&B>D)?B:
           (C>A&&C>B&&C>D)?C:
           (D>A&&D>B&&D>C)?D:
           8'b00000000;
    
endmodule

tb文件

`timescale 1ns/1ps

module opre_tb ();


reg [7:0]A;
reg [7:0]B;
reg [7:0]C;
reg [7:0]D;
wire [7:0]Y;

initial begin
    A =  8'b00000000;
    B =  8'b00000000;
    C =  8'b00000000;
    D =  8'b00000000;
end


always #2 A = {$random} % 256;
always #2 B = {$random} % 256;
always #2 C = {$random} % 256;
always #2 D = {$random} % 256;

opre opre_1(
    .A(A),
    .B(B),
    .C(C),
    .D(D),
    .Y(Y)
);

endmodule

仿真结果

仿真

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值