(5)HDLBits-Verilog Language-More Verilog Features

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 (
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值