数字IC手撕代码-XX公司笔试真题(交织器/矩阵转置)
题目描述
用 HDL 语言按照节省芯片面积的方式实现交织器,假定输入的数据 datain 顺序为 1、2、 3、…63,输入使能为 datain_ena,经交织器后输出的顺序要求为 1、10、19、28、37、 46、55、2、11、…
即行列交织,按行的顺序进按列的顺序出,输入输出数据均按时钟沿变化。实现时可自己 定义 ram 使用。
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63
解题思路
读题意得知,输入64个数,存成一个7*9的矩阵,然后按列输出。把题意转换一下,这里题目中所谓的交织器,其实就是实现一个矩阵转置的功能。把按行输入的矩阵,按列输出,并给出数据写入和读出有效使能。
代码
testbench
波形

我们完成了按照矩阵行的形式,写入63个数,按照矩阵列的方式读出63个数,读出结果如图所示:
