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
三、仿真图
Reduction
一、题目要求
奇偶校验通常用作通过不完善通道传输数据时检测错误的一种简单方法。创建一个为8位字节计算奇偶校验位的电路(这将为字节添加第9位)。我们将使用“偶数”奇偶校验,其中奇偶校验位就是所有8个数据位的异或。其中给出的提示如下
& a[3:0] // AND: a[3]&a[2]&a[1]&a[0]. Equivalent to (a[3:0] == 4’hf)
| b[3:0] // OR: b[3]|b[2]|b[1]|b[0]. Equivalent to (b[3:0] != 4’h0)
^ c[2:0] // XOR: c[2] ^ c[1]^c[0]
二、分析
题目要求设计一个奇偶校验电路,其中奇偶校验位就是所有8个数据位的异或。这里思路和例子给的异或差不多,只不过是位宽为8位而已。代码如下
module top_module (