HDLBits 系列(9)Gates and Vector

本文探讨了使用逻辑门对100位输入向量进行操作的方法,设计了RTL电路来实现向量位与其邻居的比较,包括判断是否相同为1、任一为1及是否不同的功能。

目录

原题复现

我的设计


原题复现

这篇博文意义不大,纯粹练习一下,用逻辑门对向量(多比特数据)的操作。

在 in[99:0]中为您提供了100位输入向量。我们想知道每个位与其邻居之间的一些关系:

out_both:此输出矢量的每一位都应指示相应的输入位及其左侧的邻居是否均为“ 1”。例如,out_both [2]应该指示in [2]和in [3]是否都为1。由于in [3]在左边没有邻居,答案很明显,所以我们不需要知道out_both [3 ]。
out_any:此输出向量的每一位都应指示相应输入位及其右侧的邻居是否为“ 1”。例如,out_any [2]应该指示in [2]或in [1]是否为1。由于in [0]在右边没有邻居,答案很明显,所以我们不需要知道out_any [0 ]。
out_different:此输出向量的每一位都应指示相应的输入位与其左侧的邻居是否不同。例如,out_different [2]应指示in [2]与in [3]是否不同。对于此部分,将向量视为环绕,因此in [99]的左邻是in [0]。

我的设计

对应的RTL电路设计为:

module top_module( 
    input [99:0] in,
    output [98:0] out_both,
    output [99:1] out_any,
    output [99:0] out_different );
	
    assign out_both = in[99:1] & in[98:0];
    assign out_any = in[99:1] | in[98:0];
    assign out_different = in[99:0] ^ {in[0], in[99:1]};
    
    
endmodule

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值