專利名稱:采用節(jié)點模式的高速環(huán)形總線協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種大規(guī)模ASIC設(shè)計中適合后端布局布線的芯片內(nèi)通訊以及適合在 電路板級布線的芯片間通訊協(xié)議。通過采用菊花鏈模式的環(huán)形結(jié)構(gòu),以及采用數(shù)據(jù)流格式 的通訊協(xié)議,使得用于通訊的信號線數(shù)目減少,主控制器的輸入輸出口管腿數(shù)目固定,節(jié)點 和主控制器間不需要存在點對點的物理連接,解決了傳統(tǒng)芯片設(shè)計中主控制器管腿過多引 起的布線瓶頸、以及驅(qū)動負(fù)載高等缺點。在大規(guī)模ASIC設(shè)計中,采用的環(huán)形結(jié)構(gòu)的總線,可 以在用多FPGA原型系統(tǒng)做芯片驗證時,不會產(chǎn)生由于某塊FPGA的管腿數(shù)目過多而成為系 統(tǒng)瓶頸的問題,測試簡單,符合Design-For-Test理論。
背景技術(shù):
在大規(guī)模芯片設(shè)計中,通常都存在著數(shù)據(jù)總線和寄存器總線,隨著集成的模塊數(shù) 目越來越多,需要進(jìn)行數(shù)據(jù)訪問和寄存器訪問的模塊也隨之上升。傳統(tǒng)的一對多的輻射型 總線結(jié)構(gòu),寫數(shù)據(jù)和地址總線被多個模塊共享,但是每增加一個模塊就需要在總線的主控 制器上增加相應(yīng)的地址接口譯碼和回讀數(shù)據(jù)線,當(dāng)模塊數(shù)目上升到一定數(shù)目時,主控制器 的管腿密度過高,整個系統(tǒng)在主控制器上存在連線瓶頸;并且作為共享的寫數(shù)據(jù)和地址總 線由于需要驅(qū)動多個模塊,其總線負(fù)載過高,在實現(xiàn)高頻率設(shè)計時需要用專門的處理,產(chǎn)生 芯片面積和功耗浪費(fèi)。這樣的一對多的設(shè)計結(jié)構(gòu),其缺點在進(jìn)行FPGA原型驗證中暴露無 遺,主控制器管腿過高的問題對于其所在的FPGA芯片內(nèi)部邏輯的布線和時序,以及劃分多 FPGA后,主控制器所在的FPGA芯片需要的管腿數(shù)目過高都產(chǎn)生負(fù)面影響。采用菊花鏈型的環(huán)形總線方式,主控制和各個節(jié)點管腿數(shù)目固定,不隨模塊數(shù)目 的變化而產(chǎn)生影響,設(shè)計重復(fù)可用。系統(tǒng)在時序和布線資源(包括芯片內(nèi)部和芯片間)不 存在瓶頸,同時通過采用更少的信號線數(shù)目,顯著減少芯片的功耗。
發(fā)明內(nèi)容
本發(fā)明的目的是針對芯片設(shè)計中的數(shù)據(jù)和控制總線信號線數(shù)目過多,在芯片的布 局布線中產(chǎn)生的擁堵和時序控制困難,以及在電路板級設(shè)計中,PCB走線過多的難題,提出 的一種采用節(jié)點模式的高速環(huán)形總線協(xié)議,通過采用流格式通訊和菊花鏈串行連接結(jié)構(gòu), 在有效降低信號線的連接數(shù)目的同時,解決了系統(tǒng)中一對多總線存在的連線存在中心點的 瓶頸問題。下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明節(jié)點適配器接口示意圖。圖2為本發(fā)明環(huán)形總線連接示意圖。圖3為本發(fā)明寫命令時序示意圖。圖4為本發(fā)明讀命令時序示意圖。
圖5為本發(fā)明傳遞命令時序示意圖。圖6為本發(fā)明節(jié)點查詢命令時序示意圖。圖7為本發(fā)明節(jié)點已獲得時序示意圖。
具體實施例方式本發(fā)明在實現(xiàn)中需要設(shè)計兩個標(biāo)準(zhǔn)模塊,主控制器模塊,和節(jié)點適配器模塊,在系 統(tǒng)實現(xiàn)中存在一個主控制器和多個節(jié)點適配器,在連接上主控制器和多個節(jié)點適配器通過 串聯(lián)構(gòu)成環(huán)形總線。圖2是環(huán)形總線的構(gòu)成示意。下面的實施樣例中采用以8比特位為位 寬的環(huán)形總線,轉(zhuǎn)換后和本地模塊間的接口為32比特位。在實際的應(yīng)用中,環(huán)形總線以及 和本地模塊間接口寬度可以做變化,但并不脫離本發(fā)明的設(shè)計方法。圖1是本發(fā)明采用的節(jié)點適配器(Net-Interface-Unit,簡稱NIU)接口示意圖。 適配器采用單路時鐘(elk)做驅(qū)動,由單一復(fù)位信號(rst)做復(fù)位。每個NIU都有自己唯 一的節(jié)點編號(ID#)。NIU的接口信號包括由前級節(jié)點或者主控制器傳來的數(shù)據(jù)流信號線 (i_in_data)和表示數(shù)據(jù)有效的指示標(biāo)志(i_in_Valid),同時往后級節(jié)點或者主控制器傳 遞的數(shù)據(jù)流(o_out_data)和有效指示標(biāo)志信號線(o_out_valid)。NIU通過匹配節(jié)點編號 和根據(jù)命令的不同,將環(huán)形總線上的數(shù)據(jù)流轉(zhuǎn)換成和本地模塊(Block)間的單向?qū)憯?shù)據(jù)和 讀數(shù)據(jù)總線,并且將命令和數(shù)據(jù)流延時固定的一個時鐘周期后往后級傳遞。NIU本身不需要 知道它的前級和后級是誰,各個NIU的節(jié)點編號不需要按照固定順序,但是編號必須唯一, 否則遠(yuǎn)離主控制器(按照數(shù)據(jù)流正方向)的重復(fù)節(jié)點永遠(yuǎn)處于移位狀態(tài)。下面是實施樣例中NIU對各種命令的處理過程圖3是本發(fā)明的寫(WR)命令處理過程時序示意。在由前級傳遞過來的數(shù)據(jù)流中 (i_in_data和i_in_valid),第一個時鐘周期是節(jié)點編號(ID)第二個時鐘周期是寫命令 (WR),第三個時鐘周期傳遞的是后續(xù)需要傳遞的數(shù)據(jù)長度(LENGTH)指示(此次指示的是4 字節(jié)單位),第四個周期和后續(xù)的時鐘用來傳遞數(shù)據(jù),直到完成指示的數(shù)據(jù)長度。如果當(dāng)前 NIU的節(jié)點值和數(shù)據(jù)流中的目標(biāo)節(jié)點不匹配,則當(dāng)前節(jié)點適配器對數(shù)據(jù)流不做任何操作,在 延時一個時鐘周期后將數(shù)據(jù)流往后級傳送;如果當(dāng)前OTU的節(jié)點值和數(shù)據(jù)流中的目標(biāo)節(jié)點 匹配,首先將往后級傳遞的數(shù)據(jù)流中的命令由寫(WR)命令替換成傳遞(PASS)命令,同時將 8比特的寫數(shù)據(jù)流(WDATA)按照32比特位單位整理,通過產(chǎn)生數(shù)據(jù)寫信號脈沖的方法提交 給本地模塊(Block)。并且通過產(chǎn)生數(shù)據(jù)讀信號脈沖,從本地模塊中讀取數(shù)據(jù),然后按照8 比特方式將數(shù)據(jù)流中的寫數(shù)據(jù)(WDATA)替換成讀數(shù)據(jù)(RDATA)。這種在寫的同時進(jìn)行讀操 作的方式,可以顯著加快數(shù)據(jù)的交換速率。需要指出的是,通過簡單的變化可以添加只寫的 命令一在寫的同時不進(jìn)行讀操作。圖4是本發(fā)明的讀(RD)命令處理過程時序示意。除了通過上述寫命令(WR)的同 時進(jìn)行讀操作(RD)外,還可以有獨(dú)立的讀命令操作。由前級傳遞過來的數(shù)據(jù)流,第一個時 鐘周期是節(jié)點編號(ID)第二個時鐘周期是讀命令(RD),第三個時鐘周期傳遞的是后續(xù)需 要讀取的數(shù)據(jù)長度(LENGTH),第四個周期和后續(xù)的時鐘用來傳遞數(shù)據(jù),直到完成指示的數(shù) 據(jù)長度。如果當(dāng)前NIU的節(jié)點值和數(shù)據(jù)流中的目標(biāo)節(jié)點不匹配,則當(dāng)前NIU節(jié)點適配器對 數(shù)據(jù)流不做任何操作,在延時一個時鐘周期后將數(shù)據(jù)流往后級傳送(此時的數(shù)據(jù)值本身無 意義,可以是任意值);如果當(dāng)前NIU的節(jié)點值和數(shù)據(jù)流中的目標(biāo)節(jié)點匹配,首先將往后級傳遞的數(shù)據(jù)流中的命令由讀(RD)命令替換成傳遞(PASS)命令,同時通過產(chǎn)生數(shù)據(jù)讀信號脈沖,從本地模塊(Block)中讀取數(shù)據(jù),然后按照8比特方式將讀數(shù)據(jù)放置到往后級的數(shù)據(jù) 流中。圖5是本發(fā)明的傳遞(PASS)命令處理過程時序示意。由前級傳遞過來的數(shù)據(jù)流, 第一個時鐘周期是節(jié)點編號(ID)第二個時鐘周期是傳遞命令(PASS),第三個時鐘周期傳 遞的是后續(xù)需要讀取的數(shù)據(jù)長度(LENGTH),第四個周期和后續(xù)的時鐘用來傳遞數(shù)據(jù),直到 完成指示的數(shù)據(jù)長度。在傳遞命令處理中,當(dāng)前節(jié)點適配器和數(shù)據(jù)流中的目標(biāo)節(jié)點匹配結(jié) 果無意義,對數(shù)據(jù)流不做任何操作,唯一的操作是在延時一個時鐘周期后將數(shù)據(jù)流往后級 傳送。傳遞(PASS)命令通常由環(huán)路中第一個匹配節(jié)點值的適配器NIU放置,用于告訴后級 NIU適配器不要對數(shù)據(jù)進(jìn)行任何處理,確保數(shù)據(jù)經(jīng)過延時后最后抵達(dá)主控制器。由主控制器 也可以產(chǎn)生傳遞命令(PASS),在通過各個適配器的延時后,最后會回到主控制器。如果經(jīng)過 環(huán)形總線上最大支持的節(jié)點數(shù)目時鐘周期的的延時后,主控制器沒有接收到回音,則可以 判斷出環(huán)路斷裂,此方法可以用來判斷整個環(huán)路是否閉合。圖6是本發(fā)明的節(jié)點查詢(IDPOLL)命令處理過程時序示意。由前級傳遞過來的數(shù) 據(jù)流只包含兩個周期,第一個時鐘周期是節(jié)點編號(ID),第二個時鐘周期是節(jié)點查詢命令 (IDPOLL)。在命令處理中,如果當(dāng)前適配器的節(jié)點值和數(shù)據(jù)流中的節(jié)點編號(ID)匹配,則 將第二個周期的節(jié)點查詢(IDPOLL)命令替換成節(jié)點已獲得命令(IDGOT)后,往后級傳送。 如果當(dāng)前節(jié)點不匹配,則對命令不做任何處理,而直接遞交夠后級。圖7是本發(fā)明的節(jié)點已獲得(IDGOT)命令處理過程時序示意。和上述節(jié)點查詢 (IDPOLL)命令一樣,由前級傳遞過來的數(shù)據(jù)流只包含兩個周期,第一個時鐘周期是節(jié)點編 號(ID),第二個時鐘周期是節(jié)點已獲得命令(IDGOT)。在命令處理中,當(dāng)前節(jié)點適配器和數(shù) 據(jù)流中的目標(biāo)節(jié)點不做匹配判斷,對數(shù)據(jù)流不做任何操作,在延時一個時鐘周期后將數(shù)據(jù) 流往后級傳送。節(jié)點已獲得(IDGOT)命令通常由環(huán)路中第一個匹配節(jié)點值的適配器放置, 用于告訴后級適配器自己已經(jīng)被查詢到,后續(xù)的NIU不要對結(jié)果進(jìn)行任何處理,確保結(jié)果 最后抵達(dá)主控制器。節(jié)點已獲得命令(IDGOT)通常不會由主控制器產(chǎn)生,但是如果主控制 器在某些場合需要產(chǎn)生這樣的命令,最終此命令在經(jīng)過相應(yīng)的節(jié)點數(shù)目的時鐘周期后抵達(dá) 主控制器,此命令和上述的傳遞命令(PASS) —樣,也可以判斷整個回路是否閉合??偩€的主控制器模塊(Net-Interface-ControlIer簡稱NIC)的主要功能是產(chǎn)生 目標(biāo)ID、命令、數(shù)據(jù)放置和接收,并且OTC中有超時判斷,用以判斷回路是否斷裂。最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,根據(jù)實 際應(yīng)用的不同,可以做流格式的變化,盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng) 域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離 本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
采用節(jié)點模式的高速環(huán)形總線協(xié)議,硬件包括兩個通用模塊,總線主控制器在整個環(huán)形總線中,只有一個總控制器,所有的通訊都由它啟動。主控制器將芯片主控模塊(如中央處理器CPU等)對節(jié)點位置的訪問,轉(zhuǎn)換成相應(yīng)的流數(shù)據(jù)通訊協(xié)議,包括自動產(chǎn)生節(jié)點值,命令,將數(shù)據(jù)送往節(jié)點,以及將由節(jié)點返回的數(shù)據(jù)整理后提交給芯片主控模塊??偩€節(jié)點適配器在整個環(huán)形總線中,根據(jù)實際需要,節(jié)點數(shù)目可變化。節(jié)點適配器在整個總線中采用同一種實現(xiàn)方法,通過監(jiān)聽和匹配總線通訊數(shù)據(jù)流中的目標(biāo)節(jié)點值,將屬于自己節(jié)點的總線內(nèi)容保存或者將自己節(jié)點的內(nèi)容傳遞到總線上。在應(yīng)用中,每個節(jié)點擁有一個總線節(jié)點適配器,系統(tǒng)中各個節(jié)點適配器以菊花鏈型的串行方式連接,第一個節(jié)點適配器的輸入來自主控制器,最后一個節(jié)點適配器的輸出送往主控制器,前一個節(jié)點適配器的輸出是下一個節(jié)點適配器的輸入,最后構(gòu)成一個環(huán)形結(jié)構(gòu)。主控制器和節(jié)點適配器采用同一個時鐘和復(fù)位信號,整個總線設(shè)計采用同步模式。
2.如權(quán)利要求1所述的采用節(jié)點模式的高速環(huán)形總線協(xié)議,其特征在于,整個系統(tǒng)只 有一個主控制器,并且不隨節(jié)點數(shù)目的變化有任何修改。
3.如權(quán)利要求1所述的采用節(jié)點模式的高速環(huán)形總線協(xié)議,其特征在于,整個系統(tǒng)的 節(jié)點模塊數(shù)目可變化,各個節(jié)點擁有獨(dú)立的靜態(tài)節(jié)點地址。
4.如權(quán)利要求1,2,3所述采用節(jié)點模式的高速環(huán)形總線協(xié)議,其特征在于采用的環(huán)形 結(jié)構(gòu),使得主控制器的輸入輸出口不隨節(jié)點數(shù)目的變化而增加或者減少,采用的菊花鏈串 行模式,使得在高速芯片設(shè)計或者電路板設(shè)計中,布線減少,時序控制簡單;芯片系統(tǒng)或者 電路板模塊的增加或刪減簡單,不對整個系統(tǒng)產(chǎn)生結(jié)構(gòu)任何影響。
5.如權(quán)利要求1,2,3,4所述的采用節(jié)點模式的高速環(huán)形總線協(xié)議,其特征在于硬件層 的通訊命令可擴(kuò)展,同時各個節(jié)點可以根據(jù)需要對匹配節(jié)點值后的數(shù)據(jù)流數(shù)據(jù)做二次命令 解析,以做功能擴(kuò)展。
全文摘要
采用節(jié)點模式的高速環(huán)形總線協(xié)議,協(xié)議包括總線主控制器,總線節(jié)點適配器,可變化的總線節(jié)點數(shù)目,環(huán)形結(jié)構(gòu)總線構(gòu)成,以及可擴(kuò)展的總線命令。本發(fā)明可用于集成電路芯片中各個模塊的控制和數(shù)據(jù)總線的實現(xiàn),以及電路板級各個芯片的控制和數(shù)據(jù)交換。
文檔編號G06F13/37GK101872331SQ20091004968
公開日2010年10月27日 申請日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者不公告發(fā)明人 申請人:上海威璞電子科技有限公司