《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 利用DSP48E1的pattern detection功能實(shí)現(xiàn)數(shù)據(jù)匹配
利用DSP48E1的pattern detection功能實(shí)現(xiàn)數(shù)據(jù)匹配
摘要: 對(duì)于DSP48E1硬核的功能和結(jié)構(gòu),,尤其是預(yù)加器、乘法器和累加器(ALU)的使用很多人都比較清楚,但對(duì)于它的另一個(gè)強(qiáng)大的功能pattern detection,很多人不是很了解,這里,,通過(guò)對(duì)一個(gè)具體的算法實(shí)現(xiàn)流程的描述,讓大家熟悉這個(gè)功能。
關(guān)鍵詞: SoPC DSP48E1 硬核
Abstract:
Key words :

 對(duì)于DSP48E1硬核的功能和結(jié)構(gòu),,尤其是預(yù)加器、乘法器和累加器(ALU)的使用很多人都比較清楚,,但對(duì)于它的另一個(gè)強(qiáng)大的功能pattern detection,,很多人不是很了解,這里,,通過(guò)對(duì)一個(gè)具體的算法實(shí)現(xiàn)流程的描述,,讓大家熟悉這個(gè)功能。

    算法需求如下:輸入數(shù)據(jù)位寬為16bits,,從這個(gè)數(shù)據(jù)流中匹配32’Hf6F62828,一旦匹配成功,,給出匹配指示信號(hào)。

 

對(duì)于此算法的DSP48應(yīng)用如下:

1.       首先,,由于算法主要是判斷輸入的數(shù)據(jù)是否等于32位常數(shù)OxF6F62828, 然后給出判斷結(jié)果指示信號(hào),。考慮到資源最優(yōu)化,,如果并行同時(shí)處理16路數(shù)據(jù),,需要消耗16個(gè)DSP48 slices,如果使用時(shí)分復(fù)用的方式,,則每個(gè)clock cycle完成一個(gè)case數(shù)據(jù)的比較,,輸入數(shù)據(jù)采用移位寄存器,每個(gè)時(shí)鐘周期移動(dòng)1位,,構(gòu)成一種case數(shù)據(jù),,送入DSP48 slice Pattern detector比較,同時(shí)輸出是否匹配的指示信號(hào),。16個(gè)clock cycle完成16case的比較操作,。

2.       DSP48E1一次操作可以完成48bits數(shù)據(jù)的匹配運(yùn)算,,因此我們同時(shí)做32bits數(shù)據(jù)的pattern detector操作,輸入兩個(gè)16bits數(shù)據(jù)(32bits)后開始移位操作,,構(gòu)成32case數(shù)據(jù)依次同常數(shù)OxF6F62828匹配,,32個(gè)clock cycle完成匹配檢測(cè)。

3.       DSP48E1pattern detector結(jié)構(gòu)框圖如下:

 pattern_detection logic.png

                Figure 1 Pattern Detection logic

由于要匹配的pattern為常數(shù),,我們選擇設(shè)置固定的OxF6F62828為圖中的PATTERN值,,使用MASK設(shè)置屏蔽掉高16位的比較,MASK設(shè)置為48’hFFFF00000000,。輸出PATTERNDETECT為高時(shí),,表示找到匹配的pattern

4.       上面Figure1中僅描述了Pattern的邏輯電路,,DSP48E1的完整結(jié)構(gòu)如下圖2所示:

 DSP48E1_overview.png

Pattern Detection的功能在ALU之后,,所以,要將輸入數(shù)據(jù)送入ALU后才能進(jìn)行匹配操作,。將32bits數(shù)據(jù)從C端口輸入,,高位擴(kuò)展到48位(C要求48bits, ALU設(shè)置為C+0的加法功能,即將C的結(jié)果輸出做比較,。

為保證時(shí)序要求,,打開C寄存器和PatternDetect寄存器,整個(gè)匹配鏈路的latency2,,這樣經(jīng)過(guò)32個(gè)clock cycle,,所有32個(gè)case的匹配結(jié)果依次由PatternDetect輸出為高可以確定是哪個(gè)case匹配。

5.       算法總結(jié):

132bits移位數(shù)據(jù)從C端口輸入到ALU單元,,DSP48E1OPmode設(shè)置為C+0功能,。

2)在DSP48E1的屬性中配置C打開1級(jí)寄存器,PatternDetect寄存器打開,,整個(gè)計(jì)算通路2個(gè)clock cycle延遲,。

3)在DSP48E1的屬性配置中設(shè)置Pattern值為固定值0xF6F62828,,并配置Pattern選擇為固定寄存器值輸入,,設(shè)置MASK的值屏蔽高有效比特,低32bits用于匹配運(yùn)算,。

4PatternDetect輸出值為高時(shí),,對(duì)應(yīng)的case即為找到的匹配數(shù)據(jù)。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。