數(shù)字IC手撕代碼-XX公司筆試真題(交織器/矩陣轉(zhuǎn)置)
?題目描述
????????用 HDL 語言按照節(jié)省芯片面積的方式實現(xiàn)交織器,假定輸入的數(shù)據(jù) datain 順序為 1、2、 3、…63,輸入使能為 datain_ena,經(jīng)交織器后輸出的順序要求為 1、10、19、28、37、 46、55、2、11、…
????????即行列交織,按行的順序進(jìn)按列的順序出,輸入輸出數(shù)據(jù)均按時鐘沿變化。實現(xiàn)時可自己 定義 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個數(shù),存成一個7*9的矩陣,然后按列輸出。把題意轉(zhuǎn)換一下,這里題目中所謂的交織器,其實就是實現(xiàn)一個矩陣轉(zhuǎn)置的功能。把按行輸入的矩陣,按列輸出,并給出數(shù)據(jù)寫入和讀出有效使能。
代碼
testbench
波形

? ? ? ? 我們完成了按照矩陣行的形式,寫入63個數(shù),按照矩陣列的方式讀出63個數(shù),讀出結(jié)果如圖所示:

標(biāo)簽: