欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種狀態(tài)機(jī)可拼接性和拼接規(guī)則判定方法和裝置的制造方法

文檔序號(hào):8257909閱讀:466來源:國(guó)知局
一種狀態(tài)機(jī)可拼接性和拼接規(guī)則判定方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字集成電路領(lǐng)域,更具體地涉及一種狀態(tài)機(jī)可拼接性和拼接規(guī)則判定方法和裝置。
【背景技術(shù)】
[0002]動(dòng)態(tài)可重配流水線技術(shù)使得硬件電路結(jié)構(gòu)更加靈活可控,其本質(zhì)是用程序描述流水線上各個(gè)狀態(tài)機(jī)的行為。狀態(tài)機(jī)對(duì)應(yīng)于電路中各個(gè)功能單元,通過編程設(shè)計(jì)和配置狀態(tài)機(jī)可以方便的操控硬件資源。然后,電路較為復(fù)雜時(shí),狀態(tài)機(jī)的設(shè)計(jì)和配置就變得極其復(fù)雜O
[0003]然而,當(dāng)硬件需要執(zhí)行較為復(fù)雜的操作或?qū)崿F(xiàn)較為復(fù)雜的算法時(shí),不同狀態(tài)機(jī)的行為會(huì)變得復(fù)雜而多樣,此時(shí)狀態(tài)機(jī)拼接的情況就會(huì)極為復(fù)雜,可能面臨不同類型狀態(tài)機(jī)難以拼接、甚至不能拼接的情況。此時(shí),如何從理論上分析狀態(tài)機(jī)的可拼接性,識(shí)別出可以直接拼接、或者經(jīng)過等價(jià)變換即可拼接的類型,以及提示不能拼接的狀態(tài)機(jī)類型,就變得很關(guān)鍵。

【發(fā)明內(nèi)容】

[0004]有鑒于此,本發(fā)明的主要目的在于提出一種狀態(tài)機(jī)等價(jià)變換判定方法,從理論上系統(tǒng)全面地分析拼接過程中狀態(tài)塊的可拼接性,并且分析各種情況狀態(tài)塊的拼接規(guī)則和等價(jià)變換規(guī)則,以便于應(yīng)對(duì)各種狀態(tài)機(jī)拼接情況。
[0005]為了實(shí)現(xiàn)上述目的,作為本發(fā)明的一個(gè)方面,本發(fā)明提供了一種狀態(tài)機(jī)可拼接性和拼接規(guī)則判定方法,包括以下步驟:
[0006]步驟1,進(jìn)行初始化,將當(dāng)前狀態(tài)置為空狀態(tài);
[0007]步驟2,從待拼接狀態(tài)塊隊(duì)列中讀取一個(gè)狀態(tài)塊,根據(jù)該狀態(tài)塊的類型和當(dāng)前狀態(tài)判斷該狀態(tài)的處理方法,修改當(dāng)前狀態(tài),并跳轉(zhuǎn)到相應(yīng)規(guī)則的步驟中;
[0008]步驟3,判斷全順序塊的拼接規(guī)則,保持當(dāng)前狀態(tài)為全順序狀態(tài),跳至步驟2 ;
[0009]步驟4,判斷全循環(huán)塊的拼接規(guī)則,保持當(dāng)前狀態(tài)為全循環(huán)狀態(tài),且讀入的狀態(tài)塊為循環(huán)塊,調(diào)用步驟6進(jìn)行長(zhǎng)度比較:
[0010]若步驟6返回長(zhǎng)度相同,且比較的左右循環(huán)塊循環(huán)次數(shù)相同,則保持當(dāng)前狀態(tài)為全循環(huán)狀態(tài),跳至步驟2 ;
[0011]若步驟6返回長(zhǎng)度相同,且比較的左右循環(huán)塊循環(huán)次數(shù)不同,則輸出等價(jià)變換規(guī)貝I],方法結(jié)束;
[0012]若步驟6返回結(jié)果不同信息,則輸出不可拼接,該方法結(jié)束;
[0013]步驟5,判斷全嵌套循環(huán)塊的拼接規(guī)則,保持當(dāng)前狀態(tài)為全嵌套循環(huán)狀態(tài),且讀入的狀態(tài)塊為嵌套循環(huán)塊,調(diào)用步驟6進(jìn)行長(zhǎng)度比較:
[0014]若步驟6返回長(zhǎng)度相同,且比較的左右嵌套循環(huán)塊循環(huán)次數(shù)相同,則保持當(dāng)前狀態(tài)為全嵌套循環(huán)狀態(tài),跳至步驟2 ;
[0015]若步驟6返回長(zhǎng)度相同,且比較的左右嵌套循環(huán)塊循環(huán)次數(shù)不同,則輸出等價(jià)變換規(guī)則,方法結(jié)束;
[0016]若步驟6返回長(zhǎng)度不同,則輸出不可拼接,該方法結(jié)束;
[0017]步驟6,確定輸入的兩個(gè)循環(huán)塊或兩個(gè)嵌套循環(huán)塊長(zhǎng)度是否一致。
[0018]其中,步驟2中所述根據(jù)該狀態(tài)塊的類型和當(dāng)前狀態(tài)判斷該狀態(tài)的處理方法,修改當(dāng)前狀態(tài),并跳轉(zhuǎn)到相應(yīng)規(guī)則的步驟中的步驟包括:
[0019]若當(dāng)前狀態(tài)為空狀態(tài):
[0020]若讀取的狀態(tài)塊為順序塊,置當(dāng)前狀態(tài)為全順序狀態(tài),重新開始步驟2 ;
[0021]若該狀態(tài)塊為循環(huán)塊,置當(dāng)前狀態(tài)為全循環(huán)狀態(tài),記錄當(dāng)前循環(huán)塊的循環(huán)長(zhǎng)度,重新開始步驟2 ;
[0022]若該狀態(tài)塊為嵌套循環(huán)塊,置當(dāng)前狀態(tài)為全嵌套循環(huán)狀態(tài),記錄當(dāng)前循環(huán)塊的循環(huán)長(zhǎng)度,重新開始步驟2 ;
[0023]若當(dāng)前狀態(tài)為全順序狀態(tài):
[0024]若讀取的狀態(tài)塊為順序塊,則跳轉(zhuǎn)到步驟3 ;
[0025]若讀取的狀態(tài)塊為循環(huán)塊或嵌套循環(huán)塊,則修改當(dāng)前狀態(tài)為非全順序狀態(tài),輸出等價(jià)變換規(guī)則,該方法結(jié)束;
[0026]若當(dāng)前狀態(tài)為全循環(huán)狀態(tài):
[0027]若讀取的狀態(tài)塊為循環(huán)塊,則跳轉(zhuǎn)到步驟4 ;
[0028]若讀取的狀態(tài)塊為順序塊,則修改當(dāng)前狀態(tài)為非全順序狀態(tài),輸出等價(jià)變換規(guī)則,該方法結(jié)束;
[0029]若讀取的狀態(tài)塊為嵌套循環(huán)塊,則修改當(dāng)前狀態(tài)為非全循環(huán)狀態(tài),輸出等價(jià)變換規(guī)則,該方法結(jié)束;
[0030]若當(dāng)前狀態(tài)為全嵌套循環(huán)狀態(tài):
[0031]若讀取的狀態(tài)塊為嵌套循環(huán)塊,則跳轉(zhuǎn)到步驟5 ;
[0032]若讀取的狀態(tài)塊為順序塊,則修改當(dāng)前狀態(tài)為非全順序狀態(tài),輸出等價(jià)變換規(guī)則,該方法結(jié)束;
[0033]若讀取的狀態(tài)塊為循環(huán)塊,則修改當(dāng)前狀態(tài)為非全循環(huán)狀態(tài),輸出等價(jià)變換規(guī)則,該方法結(jié)束;
[0034]若讀取待判定狀態(tài)塊隊(duì)列為空,且當(dāng)前狀態(tài)為全順序狀態(tài)、全循環(huán)狀態(tài)或全嵌套循環(huán)狀態(tài),則輸出可拼接規(guī)則,該方法結(jié)束。
[0035]其中,步驟6中所述長(zhǎng)度與循環(huán)體長(zhǎng)度、總循環(huán)次數(shù)和已循環(huán)次數(shù)相關(guān),表示為:長(zhǎng)度=循環(huán)體長(zhǎng)度X(總循環(huán)次數(shù)-已循環(huán)次數(shù))。
[0036]其中,步驟6中所述確定輸入的兩個(gè)循環(huán)塊或兩個(gè)嵌套循環(huán)塊長(zhǎng)度是否一致的步驟包括:
[0037]子步驟6.0,將輸入的兩個(gè)待比較狀態(tài)塊標(biāo)記為一個(gè)左狀態(tài)塊,一個(gè)右狀態(tài)塊,作為比較步驟的左輸入和右輸入;
[0038]子步驟6.1,輸出輸入循環(huán)體的嵌套重?cái)?shù);若循環(huán)體是非嵌套的,則輸出I ;若是嵌套循環(huán)塊,則將嵌套循環(huán)塊內(nèi)的除順序塊外的所有狀態(tài)塊放入步驟6.1的輸入中,執(zhí)行步驟6.1,從步驟6.1的輸出中選出最大的值,輸出最大值加I ;
[0039]子步驟6.2,首先取出左狀態(tài)塊和右狀態(tài)塊嵌套循環(huán)塊內(nèi)的所有狀態(tài)塊構(gòu)成左右兩個(gè)狀態(tài)塊的有序隊(duì)列,然后將兩個(gè)隊(duì)列中的每一個(gè)狀態(tài)塊分別輸入到子步驟6.3的輸入中,跳轉(zhuǎn)到子步驟6.3,將子步驟6.3返回的狀態(tài)塊隊(duì)列替換左右兩個(gè)狀態(tài)塊有序隊(duì)列中的原狀態(tài)塊,最后將左右兩個(gè)狀態(tài)塊有序隊(duì)列放入子步驟6.4的輸入中,跳轉(zhuǎn)到子步驟6.4 ;
[0040]子步驟6.3,將具有頭區(qū)域、主體和尾區(qū)域的樹形結(jié)構(gòu)的狀態(tài)塊,降維成無頭區(qū)域和尾區(qū)域的狀態(tài)塊;
[0041]子步驟6.4,若左有序隊(duì)列不為空,則判斷左有序隊(duì)列的首個(gè)狀態(tài)塊的類型,若是順序塊,則將順序塊中的狀態(tài)數(shù)累加到左狀態(tài)機(jī)長(zhǎng)度中,若是循環(huán)塊,則將左循環(huán)塊信息和右有序隊(duì)列放入子步驟6.5的輸入中,跳轉(zhuǎn)到子步驟6.5,若是嵌套循環(huán)塊,則該步驟返回長(zhǎng)度相同;將左有序隊(duì)列首個(gè)狀態(tài)塊刪除,跳轉(zhuǎn)至子步驟6.4 ;若左有序隊(duì)列為空,則將右有序隊(duì)列放入子步驟6.7的輸入中,跳轉(zhuǎn)至子步驟6.7 ;
[0042]子步驟6.5,若右有序隊(duì)列不為空,則判斷右有序隊(duì)列的首個(gè)狀態(tài)塊的類型,若是順序塊,則將順序塊中的狀態(tài)數(shù)累加到右狀態(tài)機(jī)長(zhǎng)度中,從右有序隊(duì)列中刪除首個(gè)狀態(tài)塊,并跳至子步驟6.5 ;若是循環(huán)塊,判斷輸入左循環(huán)塊信息中總循環(huán)次數(shù)和右循環(huán)塊的總循環(huán)次數(shù)和循環(huán)塊內(nèi)狀態(tài)個(gè)數(shù)是否一致,若一致則跳至子步驟6.6,若不一致則該步驟返回長(zhǎng)度不同;若是嵌套循環(huán)塊則該步驟返回長(zhǎng)度相同;若右有序隊(duì)列為空,則該步驟返回長(zhǎng)度不同;
[0043]子步驟6.6,若有序隊(duì)列不為空,則判斷右有序隊(duì)列的首個(gè)狀態(tài)塊的類型,若是順序塊,則將順序塊中的狀態(tài)數(shù)累加到右狀態(tài)機(jī)長(zhǎng)度中,從右有序隊(duì)列中刪除首個(gè)狀態(tài)塊,并跳至子步驟6.7 ;若是循環(huán)塊或嵌套循環(huán)塊,則該步驟返回長(zhǎng)度不同。若有序隊(duì)列為空則跳至子步驟6.8 ;
[0044]子步驟6.7,將總循環(huán)次數(shù)和循環(huán)塊內(nèi)狀態(tài)個(gè)數(shù)相同,但已循環(huán)次數(shù)不等的左右循環(huán)塊做相等補(bǔ)償;從左右有序隊(duì)列中刪除首個(gè)狀態(tài)塊,并跳至子步驟6.4 ;
[0045]子步驟6.8,判斷此時(shí)左狀態(tài)機(jī)長(zhǎng)度和右狀態(tài)機(jī)長(zhǎng)度是否相等,若相等,則該步驟返回長(zhǎng)度相同,若不相等,則該步驟返回長(zhǎng)度不同。
[0046]其中,子步驟6.3中所述將具有頭區(qū)域、主體和尾區(qū)域的樹形結(jié)構(gòu)的狀態(tài)塊,降維成無頭區(qū)域和尾區(qū)域的狀態(tài)塊的步驟包括:
[0047]首先若輸入的狀態(tài)塊存在頭區(qū)域則將頭區(qū)域中的每個(gè)狀態(tài)塊放入子步驟6.3的輸入中,調(diào)用子步驟6.3,將子步驟6.3返回的有序隊(duì)列放入輸出的有序隊(duì)列中,然后將主體狀態(tài)塊放入輸出有序隊(duì)列,最后輸入的狀態(tài)塊存在尾區(qū)域則將尾區(qū)域中的每個(gè)狀態(tài)塊放入子步驟6.3的輸入中,調(diào)用子步驟6.3,將子步驟6.3返回的有序隊(duì)列放入輸出的有序隊(duì)列中。
[0048]其中,子步驟6.7中所
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄯善县| 甘谷县| 周宁县| 尤溪县| 雅江县| 山东省| 故城县| 林甸县| 华亭县| 密山市| 洪洞县| 秦皇岛市| 台东市| 嫩江县| 澄城县| 平阴县| 额济纳旗| 大方县| 苍南县| 贵定县| 黑山县| 九江县| 二手房| 龙口市| 浪卡子县| 武邑县| 波密县| 武定县| 玉树县| 宜都市| 赣州市| 台中县| 拉孜县| 菏泽市| 保德县| 栖霞市| 思南县| 博爱县| 泸溪县| 双柏县| 临桂县|