我发布了这个数字逻辑图作为另一个 stackoverflow 问题的答案。它描述了一个逻辑系统,该系统将以 Verilog 或 VHDL 编码并最终在 FPGA 中实现。
替代文字 http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg
图中的编号框表示字段中的位。每个字段都有K位,电流和掩码的位将由计算机系统提供(使用锁存寄存器或等效物)。接下来的位将被读回同一计算机系统。
只要掩码字段中至少设置了一位,并且当前位字段中恰好设置了一位,我发布的解决方案就可以工作。这个想法是,在计算机系统执行了某些任务(调度操作,在原始问题中)之后,下一个位域将成为当前位域。
所以,我的问题是: 你将如何修改这个系统,以便它正确处理当前位字段全为零(未设置位)的特殊情况?就目前而言,如果current中的所有位都为零,则输出也将为零,无论掩码中的位设置为什么。
理想情况下,如果当前全为零,则掩码中的最低设置位应设置在next中。该系统还应保持可扩展至任意数量的位 (K),而无需添加成倍增加的逻辑门。最初问题的精神是想出一个可以直接实现任意位数的解决方案。