题解 | #求两个数的差值#
求两个数的差值
https://www.nowcoder.com/practice/de8e9138214647f1826e99043a1b7990
`timescale 1ns/1ns module data_minus( input clk, input rst_n, input [7:0]a, input [7:0]b, output reg [8:0]c ); always @(posedge clk,negedge rst_n) if(!rst_n) c <= 9'b0; else if(a > b) c <= a - b; else if((a < b) | (a == b) ) c <= b - a; endmodule
自己没有看题解第一个通过题,虽然很简单也庆祝一下。
第一:判断复位信号是否有效,有效则输出9'b0(因为a+b是可能溢出的,所以在输出口给的是9为的输出)
第二:判断a和b的大小关系,并将值赋给c。(因为<=是非阻塞赋值语句,所以在判断a <= b 时,使用了或符号)