序
学习自ROIFE BLOG。
倘若我们要串行输入很长一个字符串,你是否还在一行一行写 #10 in = "xxx";而感到心力交瘁?你是否因为修改输入要一个字符一个字符改而烦闷?如果是的话,你最好学习一下我从大佬那学来的招数:
1 | reg [0:1023] S = "abcd"; |
看,大佬就是大佬,位宽声明都选择小数在前大数在后的做法。如果你和我一样是彩笔,这还有等价的常规写法:
1 | reg [1023:0] S = "abcd"; |
考察第一种写法。由于位宽声明为 [0:1023],则 0 是高位,1023是低位。abcd 从低到高存储,d 是 1023-1016 位,c 是 1015-1008 位,以此类推。之后整个 S 是这样的:
0000......abcd
接着左移至不为 0 的位置,S 变成:
abcd......0000
循环取出前 8 位,直至整个 S 为 0,就可以遍历 S 中的字符串了。