專利名稱:一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法
技術領域:
本發(fā)明屬于通訊技術中可編程門陣列的方法類,尤其涉及有效利用現(xiàn)場可編程門陣列中的存儲器的方法。
背景技術:
目前,在現(xiàn)場可編程門陣列設計中,定時器的運用越來越廣泛,特別是在對一些實時性較高的數(shù)據(jù)隊列進行管理時,每一個數(shù)據(jù)隊列作為一個定時器申請源,都要求一個定時器與它唯一對應。定時器對每一個隊列數(shù)據(jù)的管理提供一個時間依據(jù),管理時數(shù)據(jù)隊列根據(jù)定時器的運行情況及時更新數(shù)據(jù)隊列。在通訊技術發(fā)展日新月異的今天,采用現(xiàn)場可編程門陣列進行管理的數(shù)據(jù)隊列越來越復雜,而在現(xiàn)場可編程門陣列中利用少數(shù)幾個定時器,已經(jīng)遠遠不能滿足需求。例如在現(xiàn)場可編程邏輯門陣列若采用異步傳輸模式(ATM)適配層(AAL)協(xié)議時,需要管理的數(shù)據(jù)隊列在1000個以上,這就要求在現(xiàn)場可編程邏輯門陣列中設置1000個以上的定時器。但是用一般的常規(guī)方法實現(xiàn)1000個以上定時器,就要增加設計和生產(chǎn)成本;同時,還要消耗大量的現(xiàn)場可編程門陣列的資源,而在許多情況下是無法實現(xiàn)的。因此,在現(xiàn)場可編程門陣列中實現(xiàn)大量(1000個以上)的定時器,從而達到降低設計和生產(chǎn)成本等要求,就顯得非常必要。
發(fā)明內容
本發(fā)明的目的是提供一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,解決上述難題,以滿足現(xiàn)場可編程邏輯門陣列的快速管理、降低成本等多方面的需要。
本發(fā)明的目的是這樣實現(xiàn)的一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,包括如下步驟1,在現(xiàn)場可編程門陣列中設置一個控制器,由現(xiàn)場選取可編程門陣列中的存儲器,并將存儲塊分成若干個存儲空間,同時對存儲空間進行定義,使每一個存儲空間存儲一個定時器的相關變量;2,由控制器對每一個存儲空間的相關變量賦初值,使每一個存儲空間對應一個申請源;3,指令控制器對所有的存儲空間進行輪詢操作,并根據(jù)每一個存儲空間的相關變量對申請源進行相應的操作;4,當控制器接收到申請源的申請時,及時配置相應存儲空間的相關變量,根據(jù)申請源提供的信息,對相應的存儲空間進行相應的操作。
由于本發(fā)明采用了以上的技術方案,不但能夠高效地為現(xiàn)場可編程門陣列的設計提供大量的定時器,滿足通訊技術的要求,同時還能夠大量節(jié)約用其它方法生成定時器所使用的現(xiàn)場可編程門陣列的資源,進而達到降低開發(fā)和設計成本,進行通訊快速管理的需要。本發(fā)明適用于所有現(xiàn)場可編程門陣列的設計。
圖1是本發(fā)明的一種定時器的結構原理示意圖;圖2是本發(fā)明的一種控制過程的流程圖。
圖中101.申請源控制模塊 102.控制器103.存儲器 104.定時器111.總線 112.總線201.選擇定義操作 202.申請源操作203.輪詢操作204.存儲操作具體實施方式
以下結合附圖對本發(fā)明的實施作如下詳述在圖1中,本發(fā)明的定時器104由控制器102和現(xiàn)場可編程門陣列的存儲器103組成??刂破?02通過總線111與申請源控制模塊101進行握手(連接),并通過總線112對存儲器103中的各個存儲空間進行讀寫操作(連接)。存儲器103被劃分成若干個存儲空間,每個存儲空間存儲一個與一個提出申請源202對應的定時器104的相關變量。
若采用常規(guī)的現(xiàn)場可編程門陣列中的邏輯資源來代替存儲器103,邏輯資源耗費極大。例如,生成32個定時器時,需要耗費XILINX公司一塊15萬門的現(xiàn)場可編程門陣列芯片的30%的資源。而生成1000個定時器,則根本就沒有可以滿足設計要求的現(xiàn)場可編程門陣列芯片。而在本發(fā)明中,只需要占用2~4個存儲器103就能夠實現(xiàn)所需設計要求。
在圖2中,本發(fā)明的控制程序具體如下1,上電開始。
2,生成控制器102,和定義存儲空間,及輪詢操作203第一個存儲空間,并初始化這一存儲空間,以及對初始化所有的存儲空間進行判斷。
3,對初始化所有的存儲空間進行判斷若否,則開始輪詢下一個存儲空間,及返回初始化這一存儲空間的程序;若是,則輪詢操作203第一個存儲空間,和讀出這一存儲空間的值,并作計數(shù)狀態(tài)位為1的判斷。
4,對計數(shù)狀態(tài)位為1作判斷1)若否,則作是否有申請源操作202提出申請的判斷;2)若是,則作計數(shù)寄存器的值為0的判斷;1))對計數(shù)寄存器的值為0作判斷若是,則作計數(shù)狀態(tài)位清0,同時通知申請源,及作是否有申請源操作202提出申請的判斷;若否,則將計數(shù)寄存器中的值減1后重新寫入計數(shù)寄存器,并作是否有申請源操作202提出申請的判斷;5,對是否有申請源作提出申請的判斷1)若否,則開始下一個存儲空間的輪詢操作203,并返回讀出這一存儲空間的值的程序;2)若是,則把即將輪詢操作203存儲空間的地址暫存,和作是否申請啟動定時器104的判斷;
1))對是否申請啟動定時器作判斷若是,則作計數(shù)狀態(tài)位置“1”,對計數(shù)寄存器賦初值,和將暫存的存儲空間的地址讀出,及開始下一個存儲空間的輪詢操作203,并返回讀出這一存儲空間的值的程序;若否,則作是否申請仃止定時器104的判斷。
2))對是否申請仃止定時器作出判斷若是,則作計數(shù)狀態(tài)位清“0”,計數(shù)寄存器清“0”;和將暫存的存儲空間的地址讀出,及開始下一個存儲空間的輪詢操作203,并返回讀出這一存儲空間值的程序;若否,則將暫存的存儲空間的地址讀出,和開始下一個存儲空間的輪詢操作203,并返回讀出這一存儲空間值的程序。
綜上所述,在實際控制過程中,本發(fā)明的方法結合具體控制程序主要有以下內容和步驟首先,在現(xiàn)場可編程門陣列中生成一個控制器102;根據(jù)實際情況選取現(xiàn)場可編程門陣列中的存儲器103,將存儲器103分成若干個存儲空間,并對存儲空間進行定義,使每一個存儲空間存儲一個定時器104的相關變量。其中,定時器104由控制器102和存儲器103,以及控制器102與各存儲空間的控制關系組成。
控制器102可由現(xiàn)場可編程邏輯門陣列生成。
在其上所述的存儲空間定義中計數(shù)狀態(tài)位用于指示該定時器104目前的工作狀態(tài),計數(shù)狀態(tài)位只占用一位(1bit)空間;當計數(shù)狀態(tài)位為‘0’時,表示該定時器104沒有啟動計數(shù),當計數(shù)狀態(tài)位為‘1’時,表示該計數(shù)器正在計數(shù)。
申請源地址寄存器記錄了該定時器104對應的申請源操作202的地址,該寄存器占用的存儲空間的大小可以根據(jù)實際情況進行設置。
初值寄存器表示定時器104的計數(shù)初值,該初值寄存器占用的存儲空間的大小可以根據(jù)實際情況進行設置;初值寄存器的計數(shù)初值決定了定時器104定時的長短,因為控制器102對所有的存儲空間輪詢操作203一次的時間只是一個定值,所以定時器104定時的長短為“計數(shù)初值×控制器對又有的存儲空間輪詢一次的時間”。
計數(shù)寄存器表示定時器104的計數(shù)值,該計數(shù)寄存器占用的存儲空間的大小與初值寄存器占用的存儲空間的大小相同。
其次,由控制器102中對每一個存儲空間的相關變量賦初值,使每一個存儲空間對應一個申請源操作(即輪詢并初始化存儲空間操作)202。在現(xiàn)場可編程門陣列上電開始運行時,現(xiàn)場可編程門陣列中的存儲空間的初值都是不定值,為了能讓所有的定時器104從一開始就正常運行,必須要對各存儲空間的各變量賦初值。賦初值時,依次輪詢操作203各存儲空間,為每一個存儲空間分配一個申請源操作202,即每一個存儲空間的申請源地址寄存器中都保留著申請源操作202的地址,而每一個申請源操作202也保留著一個存儲空間的地址,從而建立一一對應的關系。然后根據(jù)申請源操作202的實際情況將初值寄存器賦初值,同時將存儲空間的所有其它的位清零。在給這個存儲空間賦完初值后,判斷是否將所有的存儲空間賦了初值,如果不是,則輪詢操作203下一個存儲空間;如果是,則跳到輪詢操作203。
再者,控制器102對所有的存儲空間進行輪詢操作203,并根據(jù)每一個存儲空間的相關變量對申請源操作202進行相應的輪詢操作203,將該存儲空間的值讀出,和作判斷計數(shù)狀態(tài)位。如果該計數(shù)狀態(tài)位為‘0’,跳到存儲操作204;如果該計數(shù)狀態(tài)位為‘1’,表示該定時器104正在計數(shù),則繼續(xù)以下操作判斷計數(shù)寄存器中的值是否為0,如果不為0,將該計數(shù)寄存器的值減1后寫入計數(shù)寄存器,然后跳到存儲操作(即判斷是否有申請源提出申請操作)204;如果為0,則將計數(shù)狀態(tài)位寫‘0’,同時通過申請源操作202地址寄存器中的地址,通知申請源操作202其對應的存儲空間計數(shù)已滿,然后跳到存儲操作204。
最后,由控制器102接收到申請源操作202的申請時,及時配置相應存儲空間的相關變量,根據(jù)申請源操作202提供的信息,對相應的存儲空間進行相應的存儲操作204。控制器102判斷是否有申請源操作202提出申請,如果沒有,開始新的輪詢操作203。如有,把即將輪詢操作203的存儲空間的地址暫存起來。控制器102收到的申請源操作202的申請一般有兩種一種是啟動定時器104開始計數(shù),一種是停止定時器104計數(shù)。當控制器102收到申請源操作202啟動定時器104開始計數(shù)的命令時,根據(jù)申請源操作202提供的存儲空間的地址,將申請源操作202對應的存儲空間的值讀出,并將初值寄存器的值寫入計數(shù)寄存器,同時將計數(shù)狀態(tài)位置‘1’,然后將暫存的存儲空間的地址讀出,開始新的輪詢操作203。當存儲器103收到申請源操作202停止計數(shù)器計數(shù)的申請時,將下一個即將輪詢操作203存儲空間的地址暫存,同時根據(jù)申請源操作202提供的存儲空間的地址,將申請源操作202對應的存儲空間的值讀出后,再將計數(shù)存儲器103的值清0,同時將計數(shù)狀態(tài)位置為‘0’,然后將暫存的存儲空間的地址讀出,開始新的輪詢操作203。
權利要求
1.一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,包括如下步驟1)在現(xiàn)場可編程門陣列中設置一個控制器,由現(xiàn)場選取可編程門陣列中的存儲器,并將存儲塊分成若干個存儲空間,同時對存儲空間進行定義,使每一個存儲空間存儲一個定時器的相關變量;2)由控制器對每一個存儲空間的相關變量賦初值,使每一個存儲空間對應一個申請源;3)指令控制器對所有的存儲空間進行輪詢操作,并根據(jù)每一個存儲空間的相關變量對申請源進行相應的操作;4)當控制器接收到申請源的申請時,及時配置相應存儲空間的相關變量,根據(jù)申請源提供的信息,對相應的存儲空間進行相應的操作。
2.根據(jù)權利要求1所述的一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,其特征在于,第二步驟中,還包括下列步驟1)賦初值時,依次輪詢操作各存儲空間,為每一個存儲空間分配一個申請源操作;2)然后根據(jù)申請源操作的實際情況將初值寄存器賦初值,同時將存儲空間的所有其它的位清零;3)在給這個存儲空間賦完初值后,判斷是否將所有的存儲空間賦了初值,如果不是,則輪詢操作下一個存儲空間;如果是,則跳到輪詢操作。
3.根據(jù)權利要求1或2所述的一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,其特征在于,第三步驟中,還包括下列步驟1)控制器對所有的存儲空間進行輪詢操作時,將該存儲空間的值讀出,并作計數(shù)狀態(tài)位的判斷;2)在作計數(shù)狀態(tài)位判斷時,如果計數(shù)狀態(tài)位為‘0’則跳到存儲操作,如果計數(shù)狀態(tài)位為‘1’則作計數(shù)寄存器中的值是否為0的判斷;3)在作計數(shù)寄存器中的值是否為0的判斷時,如果不為0,將計數(shù)寄存器的值減1后寫入計數(shù)寄存器,然后跳到存儲操作;如果為0則將計數(shù)狀態(tài)位寫‘0’,然后跳到存儲操作。
4.根據(jù)權利要求1所述的一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,其特征在于,第四步驟中,還包括下列步驟1)控制器在判斷是否有申請源操作提出申請時,如果沒有則開始新的輪詢操作,如有則將輪詢操作的存儲空間的地址暫存起來;2)控制器在收到申請源操作的申請時,作啟動定時器開始計數(shù)和開始新的輪詢操作,或停止定時器計數(shù)和開始新的輪詢操作。
5.根據(jù)權利要求3所述的一種有效利用現(xiàn)場可編程門陣列中的存儲器的方法,其特征在于,第四步驟中,還包括下列步驟1)控制器在判斷是否有申請源操作提出申請時,如果沒有則開始新的輪詢操作,如有則將輪詢操作的存儲空間的地址暫存起來;2)控制器在收到申請源操作的申請時,作啟動定時器開始計數(shù)和開始新的輪詢操作,或停止定時器計數(shù)和開始新的輪詢操作。
全文摘要
本發(fā)明的方法包括下列步驟1)在現(xiàn)場可編程門陣列中設置一個控制器,由現(xiàn)場選取可編程門陣列中的存儲器,并將存儲塊分成若干個存儲空間,同時對存儲空間進行定義,使每一個存儲空間存儲一個定時器的相關變量;2)由控制器對每一個存儲空間的相關變量賦初值,使每一個存儲空間對應一個申請源;3)指令控制器對所有的存儲空間進行輪詢操作,并根據(jù)每一個存儲空間的相關變量對申請源進行相應的操作;4)當控制器接收到申請源的申請時,及時配置相應存儲空間的相關變量,根據(jù)申請源提供的信息,對相應的存儲空間進行相應的操作。由此,本發(fā)明節(jié)約現(xiàn)場可編程門陣列的資源,降低開發(fā)和設計成本。適用于所有的現(xiàn)場可編程門陣列設計。
文檔編號G11C16/06GK1466152SQ02112189
公開日2004年1月7日 申請日期2002年6月20日 優(yōu)先權日2002年6月20日
發(fā)明者唐雄, 王喜瑜, 車偉靜, 黃睿, 雄 唐 申請人:深圳市中興通訊股份有限公司