HDLBits 系列(9)Gates and Vector
【摘要】 目录
原题复现
我的设计
原题复现
这篇博文意义不大,纯粹练习一下,用逻辑门对向量(多比特数据)的操作。
在 in[99:0]中为您提供了100位输入向量。我们想知道每个位与其邻居之间的一些关系:
out_both:此输出矢量的每一位都应指示相应的输入位及其左侧的邻居是否均为“ 1”。例如,out_both [2]应该指示in [2]和in [3]是否都为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
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/103216123
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)