[問題] verilog array permutation

看板Electronics作者 (百事檸檬可樂兒)時間12年前 (2013/07/26 22:05), 編輯推噓3(301)
留言4則, 2人參與, 最新討論串1/1
大家好, 小弟目前有下列問題想要用verilog來實作類似C的指標功能. 基本函數的功能是, 讓使用者輸入一個hexidecimal的table後, 讓輸出的8bit為輸入的8bit的位置交換舉例來說, 假設輸入的table為0x13642075, 那輸出為 data_o[5] = data_i[0]; data_o[7] = data_i[1]; rata_o[0] = data_i[2]; data_o[2] = data_i[3]; ... //C sytle pseudo code start========================= for( int i=0; i<8; i++) data_o[lookup_up_table[i]]=data_i[i]; //C style pseudo code end=========================== input [ 7:0] data_i; input [27:0] look_up_table; //由於7個bit需要7x4=28個bit的table來定址 output[ 7:0] data_o; 目前的想法是 assign data_o[ look_up_table[ 3: 0] ] = data[0]; assign data_o[ look_up_table[ 7: 4] ] = data[1]; assign data_o[ look_up_table[11: 8] ] = data[2]; assign data_o[ look_up_table[15:12] ] = data[3]; ... 不過如此一來被assign的data_o不是固定的表示式會被compile認為成error. 想請問大家有好的實作方法嗎? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.49.190

07/26 22:50, , 1F
你心中的HW是?...你還是寫SW就好..
07/26 22:50, 1F

07/27 20:11, , 2F
你雖然用verilog,但是你心中還是C...
07/27 20:11, 2F

07/27 20:13, , 3F
你找找看Benes network或是barrel shifter的架構
07/27 20:13, 3F

07/27 20:13, , 4F
希望對你有幫助
07/27 20:13, 4F
文章代碼(AID): #1Hye8nKQ (Electronics)