目录
一、问题背景
假设有这样的场景:需要从输入128bit数据中提取出任意的连续16bit。
如图所示,该16bit数据可能位于bit0-bit15,或者bit1-bit16等等,共有112种可能,由输入的7bit index确定起始位置。
二、进一步分析
RTL工程师设计电路时,一般的方法是考虑所有的可能N,对应设计出N种可能的数据处理电路,随后从N个处理结果中选出1个。
三、RTL代码
对应上面的题目,我们需要做的电路是一个112选1电路,每种电路对应数据的某一种选择方式。
代码如下:
input [127:0] data_raw;
input[6:0] index;
output [15:0] data_sel;
always@(*)begin:sel_data