题解 | #使用子模块实现三输入数的大小比较#

使用子模块实现三输入数的大小比较

https://www.nowcoder.com/practice/bfc9e2f37fe84c678f6fd04dbce0ad27

`timescale 1ns/1ns
module main_mod(
	input clk,
	input rst_n,
	input [7:0]a,
	input [7:0]b,
	input [7:0]c,
	
	output  [7:0]d
);
// reg [7:0]   d       ;
wire [7:0]   min_mid ;
reg  [7:0]   c_temp;
always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        c_temp <= 8'b0;
    end
    else begin
        c_temp <= c;
    end 
end

son_mod u1(
    .clk(clk),
    .rst_n(rst_n),
    .a(a),
    .b(b),
    .min(min_mid)
);

son_mod u2(
    .clk(clk),
    .rst_n(rst_n),
    .a(min_mid),
    .b(c_temp),
    .min(d)
);
endmodule

module son_mod(
    input clk,
    input rst_n,
    input [7:0]a,
    input [7:0]b,

    output reg [7:0]min
);

// reg [7:0]   c;
always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        min <= 8'b0;
    end
    else begin
        if (a > b)
            min <= b;
        else 
            min <= a;
    end
end
endmodule

1.延迟c一个周期,因为第一个比较需要消耗一个周期;

2.在initial中使用repeat会有空块的提示,暂未找到解决办法,以后在task中使用;

3.tb中,保证输入数据的变化不发生在时钟下降沿

全部评论

相关推荐

故事和酒66:假设一下,就算报了培训班,不还是要投简历,只是项目改了。那不如先写几个培训班的项目,纯靠编,然后试试有没有面试。如果真有再报也不迟,如果没有还是没有,那就不是培训班的问题了。
点赞 评论 收藏
分享
刷牛客的我很豁达:你是不是对算法有什么误解,你没手握两篇顶刊顶会,还想搞算法岗,有顶刊顶会在算法岗算才入门
点赞 评论 收藏
分享
牛油果甜奶昔:答案就在你标题的前三个字
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务