Conditional
一、题目要求
给定4个无符号数,求最小值。无符号数字可以与标准比较运算符(a < b)进行比较。使用条件运算符来构造双向最小值电路,然后将其中的几个组成一个4路最小值电路。你可能需要一些wire向量来表示中间结果。
二、分析
这里是要求你找出输入abcd中的最小值,并且题目已经给出题目,可以使用三目运算符,格式为
(condition ? if_true : if_false)
condition:是你设定的条件,可以是任意的布尔表达式,即结果是真或假(0或者1)
if_ture:条件为真,输出的结果,可以是任意表达式
if_false:条件为假,输出的结果,可以是任意表达式
思路如下,定义两个wire类型的变量wire1,wire2来保存两个输入之间比较的结果,,最后的输出是wire1和wire2比较的结果,注意wire1,wire2 的位宽。
代码如下
module top_module (
input [7:0] a, b, c, d,
output [7:0] min);//
// assign intermediate_result1 = compare? true: false;
wire [7:0] wire1,wire2;
assign wire1=(a<b)?a:b;
assign wire2=(c<d)?c:d;
assign min=(wire1<wire2)?wire1:wire2;
endmodule
三、仿真图