新思dw-minmax詳細代碼_第1頁
新思dw-minmax詳細代碼_第2頁
新思dw-minmax詳細代碼_第3頁
新思dw-minmax詳細代碼_第4頁
新思dw-minmax詳細代碼_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

新思dw_minmax詳細代碼

moduleDW_minmax(

//Inputs

a,

tc,

min_max,

//Outputs

value,

index

);

parameterWIDTH=

4;

//elementWIDTH

parameterNUM_INPUTS=

8;

//numberofelementsininputarray

parameterINDEX_WIDTH=

3;

//sizeofindexpointer=ceil(log2(NUM_INPUTS))

input

[NUM_INPUTS*WIDTH-1:0]

a;

//Concatenatedinputvector

input

tc;

//0=unsigned,1=signed

input

min_max;//0=findmin,1=findmax

output[WIDTH-1:0]

value;

//monormaxvaluefound

output[INDEX_WIDTH-1:0]

index;

//indextovaluefound

wire

[NUM_INPUTS*WIDTH-1:0]

a_uns,a_trans;

reg

[WIDTH-1:0]

val_int;

wire

[WIDTH-1:0]

val_trans;

reg

[INDEX_WIDTH-1:0]

indx_int;

wire[INDEX_WIDTH:0]num_inputs_log2;

assignnum_inputs_log2=1<<INDEX_WIDTH;

assigna_uns=(WIDTH==1)?a^{NUM_INPUTS{tc}}:a^{NUM_INPUTS{tc,{WIDTH-1{1'b0}}}};

assigna_trans=a_uns;

always@(a_transormin_max)begin:PROC_find_minmax

reg

[WIDTH-1:0]

val_1,val_2;

reg

[INDEX_WIDTH-1:0]

indx_1,indx_2;

reg

[((2<<INDEX_WIDTH)-1)*WIDTH-1:0]

val_array;

reg

[((2<<INDEX_WIDTH)-1)*INDEX_WIDTH-1:0]indx_array;

reg

[31:0]

i,j,k,l,m,n;

i=0;

j=0;

val_array={WIDTH<<(INDEX_WIDTH+1){1'b0}};

indx_array={INDEX_WIDTH<<(INDEX_WIDTH+1){1'b0}};

for(n=0;n<NUM_INPUTS;n=n+1)begin

for(m=0;m<WIDTH;m=m+1)

val_array[i+m]=a_trans[i+m];

for(m=0;m<INDEX_WIDTH;m=m+1)

indx_array[j+m]=n[m];

i=i+WIDTH;

j=j+INDEX_WIDTH;

end

for(n=NUM_INPUTS;n<(1<<INDEX_WIDTH);n=n+1)begin

for(m=0;m<WIDTH;m=m+1)

val_array[i+m]=val_array[(NUM_INPUTS-1)*WIDTH+m];

for(m=0;m<INDEX_WIDTH;m=m+1)

indx_array[j+m]=indx_array[(NUM_INPUTS-1)*INDEX_WIDTH+m];

i=i+WIDTH;

j=j+INDEX_WIDTH;

end

k=0;

l=0;

for(n=0;n<(1<<(INDEX_WIDTH-1))*2-1;n=n+1)begin

for(m=0;m<WIDTH;m=m+1)begin

val_1[m]=val_array[k+m];

end

for(m=0;m<INDEX_WIDTH;m=m+1)begin

indx_1[m]=indx_array[l+m];

end

k=k+WIDTH;

l=l+INDEX_WIDTH;

for(m=0;m<WIDTH;m=m+1)begin

val_2[m]=val_array[k+m];

end

for(m=0;m<INDEX_WIDTH;m=m+1)begin

indx_2[m]=indx_array[l+m];

end

k=k+WIDTH;

l=l+INDEX_WIDTH;

if(((min_max==1'b1)&&(val_1>val_2))||((min_max==1'b0)&&(val_1<=val_2)))begin

for(m=0;m<WIDTH;m=m+1)

val_array[i+m]=val_1[m];

for(m=0;m<INDEX_WIDTH;m=m+1)

indx_array[j+m]=indx_1[m];

endelsebegin

for(m=0;m<WIDTH;m=m+1)

val_array[i+m]=val_2[m];

for(m=0;m<INDEX_WIDTH;m=m+1)

indx_array[j+m]=indx_2[m];

end

i=i+WIDTH;

j=j+INDEX_WIDTH;

end

for(m=0;m<WIDTH;m=m+1)

val_int[m]=val_array[k+m];

for(m=0;m<INDEX_WIDTH;m=m+1)

in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論