FPGA實(shí)現(xiàn)時(shí)分多址的一種改進(jìn)型方法
摘要:利用FPGA實(shí)現(xiàn)時(shí)分多址的方法有很多種,但大多數(shù)方法都對(duì)FPGA芯片資源的占用非常巨大。針對(duì)這一問(wèn)題,提出一種改進(jìn)型方法來(lái)實(shí)現(xiàn)時(shí)分多址。通過(guò)使用FPGA芯片內(nèi)部的雙口隨機(jī)訪問(wèn)存儲(chǔ)器(雙口RAM),利用同一塊RAM采用兩套時(shí)鐘線,地址線和數(shù)據(jù)線,例化雙口RAM的IP核后,在占用較少FPGA芯片資源的前提下,信號(hào)實(shí)現(xiàn)了時(shí)分多址格式的傳輸。通過(guò)對(duì)程序進(jìn)行仿真和驗(yàn)證,證明了該算法的可用性,與傳統(tǒng)方法相比,芯片資源的占用率明顯降低。
關(guān)鍵詞:時(shí)分多址;現(xiàn)場(chǎng)可編程門陣列;雙口隨機(jī)訪問(wèn)存儲(chǔ)器;IP核;芯片資源
隨著現(xiàn)代通信技術(shù)的發(fā)展,各種多址技術(shù)在日常生活中的應(yīng)用正變得越來(lái)越廣泛。所謂多址技術(shù),是指許多用戶同時(shí)使用同一頻譜,采用不同的處理技術(shù),使不同用戶信號(hào)之間互不干擾地被分別接收和解調(diào)。多址技術(shù)分為頻分多址(FDMA)、碼分多址(CDMA)、時(shí)分多址(TDM-A)。頻分多址是以不同的頻率信道實(shí)現(xiàn)通信,碼分多址是以不同的代碼序列實(shí)現(xiàn)通信,而時(shí)分多址是以不同的時(shí)隙實(shí)現(xiàn)通信,它是一種實(shí)現(xiàn)共享傳輸介質(zhì)或網(wǎng)絡(luò)的通行技術(shù)。
時(shí)分多址技術(shù)把時(shí)間分割成周期性的幀,每一幀再分割成若干個(gè)時(shí)隙,通過(guò)介質(zhì)或者網(wǎng)絡(luò)發(fā)送信號(hào)。在滿足定時(shí)和同步的條件下,接收方可以分別在各個(gè)時(shí)隙中接收到對(duì)應(yīng)的信號(hào)而不混擾。時(shí)分多址技術(shù)具有保密性較高,傳輸容量較大等特點(diǎn)。
目前,利用FPGA實(shí)現(xiàn)多路信號(hào)的時(shí)分多址幀格式來(lái)進(jìn)行傳輸?shù)姆椒ū姸?,但大多?shù)方法都是通過(guò)使用FPGA芯片大量的門電路構(gòu)成寄存器來(lái)實(shí)現(xiàn)時(shí)分多址。該類方法將占用大量的FIGA資源,導(dǎo)致單片F(xiàn)PGA可實(shí)現(xiàn)的功能大大減少,提高了工程成本,甚至對(duì)于一些資源較少的FPGA芯片,該類方法無(wú)法實(shí)現(xiàn)時(shí)分多址傳輸。本文提出了一種基于IP核的方法來(lái)實(shí)現(xiàn)時(shí)分多址,利用芯片內(nèi)部的Block SelectRAMResource(BRAM)存儲(chǔ)數(shù)據(jù),節(jié)約了大量的邏輯門資源,使單片F(xiàn)PGA芯片能完成更多的邏輯功能。
1 理論分析
1.1 IP核
IP核(Intellectual Property core)是一段具有特定電路功能的硬件描述語(yǔ)言程序,該程序與集成電路的工藝無(wú)關(guān),可以移植到不同的半導(dǎo)體工藝中去生產(chǎn)基礎(chǔ)電路芯片。利用IP核設(shè)計(jì)電子系統(tǒng),引用方便,修改基本元件的功能容易。IP核模塊有行為(Behavior)、結(jié)構(gòu)(Str-ucture)和物理(Physical)3級(jí)不同程度的設(shè)計(jì),對(duì)應(yīng)描述功能行為的不同分為3類,即軟核、完成結(jié)構(gòu)描述的固核和基于描述并經(jīng)過(guò)工藝驗(yàn)證的硬核。
1.2 BRAM(Block SeleetRAM Resource)
FPGA內(nèi)部的資源種類比較復(fù)雜,主要包括了以下幾個(gè)部分:輸入/輸出模塊(Input/Output Blocks,IOB)、可配置邏輯單元(Configur-able Logic Blocks,CLB)、Block SelectRAM、乘法器、數(shù)字時(shí)鐘管理單元(DCM)、布線資源(Routing Resources)等。本文提出的算法正是利用芯片內(nèi)部集成的Block SelectRAM實(shí)現(xiàn)時(shí)分多址方式的傳輸,從而節(jié)約出大量的CLB.以便單片F(xiàn)PGA能完成更多的功能。
FPGA芯片內(nèi)部集成的每一塊BRAM都是物理上的雙口隨機(jī)訪問(wèn)存儲(chǔ)器(雙口RAM),它有兩套完全獨(dú)立的數(shù)據(jù)線,地址線和讀寫控制線,并允許兩個(gè)獨(dú)立的系統(tǒng)同時(shí)對(duì)該存儲(chǔ)器進(jìn)行隨機(jī)性的訪問(wèn),即共享式多端口存儲(chǔ)器。
雙口RAM最大的特點(diǎn)是存儲(chǔ)數(shù)據(jù)共享。一個(gè)存儲(chǔ)器配備兩套獨(dú)立的地址,數(shù)據(jù)和控制線,允許兩個(gè)獨(dú)立控制器同時(shí)異步的訪問(wèn)存儲(chǔ)單元。因?yàn)閿?shù)據(jù)共享,就必須存在訪問(wèn)仲裁控制。內(nèi)部仲裁邏輯控制提供以下功能:對(duì)同一地址單元訪問(wèn)的時(shí)序控制;存儲(chǔ)單元數(shù)據(jù)塊的訪問(wèn)權(quán)限分配;信令交換邏輯等。
BRAM的工作類似于寄存器的工作方式,控制信號(hào)、地址信號(hào)以及輸入輸出數(shù)據(jù)信號(hào)必須要在時(shí)鐘沿的建立時(shí)間內(nèi)保持有效,BRAM會(huì)在這個(gè)時(shí)鐘周期進(jìn)行讀寫操作來(lái)輸出結(jié)果或?qū)懭霐?shù)據(jù)。其讀寫方式分為3種,分別是對(duì)地址進(jìn)行讀和寫、只讀、只寫。
1.3 算法實(shí)現(xiàn)
第1步,例化雙口RAM的IP核,將程序的輸入輸出與雙口RAM的輸入輸出進(jìn)行映射。
第2步,通過(guò)雙口RAM的第一套端口將輸入信號(hào)存儲(chǔ)到RAM中,通過(guò)雙口RAM的第二套端口將存儲(chǔ)到RAM中的數(shù)據(jù)讀出。
以4路信號(hào)為例,假設(shè)每路輸入信號(hào)的采樣率是48 kHz,采樣位數(shù)是64 bit,則每路輸入信號(hào)的位時(shí)鐘是3.072 MHz,在第一個(gè)48 kHz的采樣周期內(nèi),當(dāng)采到3.072 MHz位時(shí)鐘的下降沿時(shí),將輸入地址遞增1。則在接下來(lái)的位時(shí)鐘的上升沿,根據(jù)所例化的雙口RAM的IP核,4路輸入數(shù)據(jù)將存儲(chǔ)到雙口RAM當(dāng)前輸入地址所對(duì)應(yīng)的存儲(chǔ)器地址中,等待讀取。由于共有4路信號(hào),即輸入信號(hào)寬度為4位,則存儲(chǔ)到雙口RAM中的數(shù)據(jù)寬度也應(yīng)為4位,其中,每個(gè)地址中的所存儲(chǔ)數(shù)據(jù)的第一位對(duì)應(yīng)第一路輸入信號(hào),第二位對(duì)應(yīng)第二路輸入信號(hào),以此類推。此時(shí)需要的雙口RAM的大小位64x4 bit。
在下一個(gè)48 kHz的周期內(nèi),與前面類似,將4位寬度的輸入數(shù)據(jù)繼續(xù)存儲(chǔ)到雙口RAM新的64個(gè)4位的存儲(chǔ)空間,同時(shí),應(yīng)將上個(gè)48 kHz周期所存儲(chǔ)的前64個(gè)4位數(shù)據(jù)讀出,并且準(zhǔn)備以時(shí)分多址的格式傳輸出去。
第3步,將從第二套端口讀出的數(shù)據(jù)以時(shí)分多址的幀格式傳輸出去。
要想4路輸入信號(hào)以時(shí)分多址的格式傳輸,應(yīng)該將48 kHz時(shí)間周期劃分為4個(gè)時(shí)間周期,在劃分的每一個(gè)時(shí)間周期內(nèi),讀取一遍雙口RAM中存儲(chǔ)的數(shù)據(jù)。首先,應(yīng)在劃分的第一個(gè)時(shí)間周期內(nèi)把讀出的64個(gè)4位數(shù)據(jù)的第一位送給時(shí)分多址的輸出,然后回到起始地址,在劃分的第二個(gè)時(shí)間周期內(nèi)再重新讀出一次64個(gè)4位數(shù)據(jù),把數(shù)據(jù)的第二位送給時(shí)分多址的輸出,以此類推,直到4路數(shù)據(jù)全部輸出。由于在一個(gè)48 kHz周期內(nèi)要重復(fù)讀取雙口RAM中的數(shù)據(jù)4次,所以此時(shí)位時(shí)鐘的頻率要提高到原來(lái)的4倍,因此,讀取數(shù)據(jù)的位時(shí)鐘頻率應(yīng)該為12.288 MHz。
在接下來(lái)的一個(gè)48 kHz周期內(nèi),將雙口RAM中后64個(gè)4位存儲(chǔ)空間內(nèi)的數(shù)據(jù)以與上面相同的方式發(fā)送出去,同時(shí),由于前64個(gè)4位的存儲(chǔ)空間的數(shù)據(jù)已經(jīng)發(fā)送完成,不再需要保存,則新輸入的數(shù)據(jù)可被存儲(chǔ)到前64個(gè)4位的存儲(chǔ)空間,以此類推,前64個(gè)4位存儲(chǔ)空間與后64個(gè)存儲(chǔ)空間交替存儲(chǔ)輸入數(shù)據(jù),并交替將存儲(chǔ)的數(shù)據(jù)發(fā)送出去。
由此可以看到,所需要雙口RAM的大小應(yīng)為2x64×4bit,在A端口對(duì)數(shù)據(jù)寫入,在B端口對(duì)數(shù)據(jù)進(jìn)行讀出。
評(píng)論