亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于軟件無線電的通信系統(tǒng)實(shí)驗(yàn)平臺(tái)研制(2)
        ——片上系統(tǒng)

        2018-07-03 00:45:54戴伏生哈爾濱工業(yè)大學(xué)威海信息與電氣工程學(xué)院山東威海264209
        實(shí)驗(yàn)室研究與探索 2018年5期
        關(guān)鍵詞:鏡像文件功能模塊寄存器

        戴伏生(哈爾濱工業(yè)大學(xué)(威海) 信息與電氣工程學(xué)院,山東 威海 264209)

        0 引 言

        基于類似Unix操作系統(tǒng),但可自由免費(fèi)使用的開源無線電軟件(GNU’s not Unix Radio,GNU Radio)研制的無線通信系統(tǒng)實(shí)驗(yàn)平臺(tái),由硬件系統(tǒng)和軟件系統(tǒng)組成。硬件系統(tǒng)是指實(shí)驗(yàn)平臺(tái)的物理資源,如現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)、時(shí)鐘管理器、D/A和A/D、射頻接口、網(wǎng)絡(luò)接口、各種外設(shè)接口及電源等。軟件系統(tǒng)是指為使用實(shí)驗(yàn)平臺(tái)所配套的管理驅(qū)動(dòng)及應(yīng)用工具軟件,如實(shí)驗(yàn)平臺(tái)的用戶硬件驅(qū)動(dòng)配置(User Hardware Driver,UHD)、GNU Radio等軟件。實(shí)驗(yàn)平臺(tái)采用了開放化和軟件化設(shè)計(jì)理念,無線電外設(shè)平臺(tái)的管理系統(tǒng)及信息處理等功能模塊,全部采用軟件驅(qū)動(dòng)配置FPGA的方法構(gòu)建。在安全模式啟動(dòng)下為實(shí)驗(yàn)平臺(tái)配置了一個(gè)精簡(jiǎn)的片上系統(tǒng)(System on Programmable Chip,SoPC),通過以太網(wǎng)接口實(shí)現(xiàn)與上位機(jī)通信,該模式不包含用戶定制的功能。UHD是為實(shí)驗(yàn)平臺(tái)配置出具有適變功能的完整片上系統(tǒng)。只有將包含用戶各種定制功能的UHD鏡像文件載入到主板M25P64 Flash中,才能發(fā)揮實(shí)驗(yàn)平臺(tái)用戶規(guī)劃的應(yīng)有作用。

        1 硬件驅(qū)動(dòng)的下載與配置原理

        1.1 多重啟動(dòng)配置存儲(chǔ)方式

        實(shí)驗(yàn)平臺(tái)采用的FPGA是XC3SD3400A,它擁有專用的多重邏輯配置模塊及其接口內(nèi)部配置訪問端口(Internal Configration Acces Port,ICAP)[1]。通過控制ICAP接口可以實(shí)現(xiàn)對(duì)配置存儲(chǔ)器的讀/寫。為了實(shí)現(xiàn)多重配置把M25P64 Flash分為4個(gè)區(qū)存儲(chǔ)鏡像文件,安全模式啟動(dòng)配置鏡像文件占據(jù)的2個(gè)存儲(chǔ)區(qū),考慮能兼容和利用公開的UHD資源[2],構(gòu)建鏡像文件存儲(chǔ)區(qū)域分配方式,如圖1所示。

        從0X000000起始地址放置的鏡像文件Safe_fpga,是靜態(tài)安全配置FPGA實(shí)體邏輯功能單元,是用Verilog HDL描述的精簡(jiǎn)片上系統(tǒng)各功能模塊鏡像文件。從0X3F0000地址起始放置的儲(chǔ)鏡像文件Safe_fw,是最小處理器(Zylin CPU,ZPU)[3]使用的且受保護(hù)的安全程序代碼,主要是引導(dǎo)程序、UDP/IP通信及管理程序。

        用戶硬件設(shè)備驅(qū)動(dòng)配置UHD鏡像文件占據(jù)剩余的2個(gè)存儲(chǔ)區(qū)。從0X180000地址起始放置的鏡像文件Prod_fpga,是用戶硬件驅(qū)動(dòng)配置FPGA實(shí)體邏輯功能單元,是硬件語言描述編譯后的映射比特碼,包含實(shí)驗(yàn)平臺(tái)需FPGA實(shí)現(xiàn)的用戶功能全部實(shí)體邏輯模塊。起始地址0X300000放置的鏡像文件Prod_fw,是處理器ZPU執(zhí)行的用戶工作程序代碼,包含實(shí)驗(yàn)平臺(tái)管理、通信、接口控制及射頻端口控制等。

        圖1 實(shí)驗(yàn)平臺(tái)中M25P64多重配置鏡像文件存儲(chǔ)分區(qū)情況

        1.2 硬件驅(qū)動(dòng)UHD的下載

        若沒有從上位機(jī)給加載存儲(chǔ)M25P64 Flash硬件驅(qū)動(dòng)UHD配置鏡像文件,或者開機(jī)配置過程中檢測(cè)安全啟動(dòng)開關(guān)控制引腳為低電平時(shí),則只能按照安全模式啟動(dòng)并通知上位機(jī)下載配置鏡像文件。安全模式啟動(dòng)時(shí),首先從M25P64 Flash的0X000000地址開始讀Safe_fpga鏡像文件,對(duì)FPGA進(jìn)行邏輯電路系統(tǒng)的配置,然后利用狀態(tài)機(jī)邏輯電路控制內(nèi)部配置訪問端口(Internal Configuration Access Port,ICAP),從M25P64 Flash的0X3F0000地址開始讀取Safe_fw鏡像文件,把安全模式可執(zhí)行程序代碼配置到Boot RAM中。為了能實(shí)現(xiàn)硬件驅(qū)動(dòng)UHD鏡像文件的下載,安全模式下實(shí)驗(yàn)平臺(tái)與上位機(jī)通信所配置的系統(tǒng)如圖2所示。

        圖2 安全模式下實(shí)驗(yàn)平臺(tái)與上位機(jī)通信系統(tǒng)

        安全配置之后片上系統(tǒng)開始工作,ZPU便能夠?qū)崿F(xiàn)對(duì)系統(tǒng)的控制,所有工作均由ZPU主導(dǎo),其時(shí)鐘頻率配置為50 MHz,該時(shí)鐘是由時(shí)鐘管理器送給FPGA的100 MHz輸入,經(jīng)FPGA內(nèi)部鎖相電路2分頻后產(chǎn)生的。圖中的包路由器Packet_router邏輯功能模塊是用輕量級(jí)IPv4協(xié)議(Light Weight IP,LWIP)實(shí)現(xiàn)的[4,5],所有數(shù)據(jù)包經(jīng)由Packet_router發(fā)往FPGA中的目的模塊。ZPU中運(yùn)行是LWIP中輕量級(jí)UDP/IP協(xié)議,其默認(rèn)的IP地址是192.168.10.2。在與上位機(jī)通信前ZPU及片上系統(tǒng),同上位機(jī)之間進(jìn)行以太網(wǎng)的協(xié)議和速率協(xié)商與匹配,且注冊(cè)兩個(gè)DUP端口號(hào)49152和49154與上位機(jī)通信。編號(hào)49152的UDP端口為控制信息通信端口號(hào);編號(hào)49154的UDP端口號(hào),用來實(shí)現(xiàn)對(duì)實(shí)驗(yàn)平臺(tái)硬件驅(qū)動(dòng)UHD配置進(jìn)行固件鏡像及升級(jí)的通信。

        由于ZPU是Wishbone總線的主控制器[6-8],所以在上、下位機(jī)之間的通信時(shí),路由器模塊Packet router與ZPU之間的操作,需要進(jìn)行Wishbone總線的資源屬性設(shè)置。上位機(jī)給下位機(jī)傳送數(shù)據(jù)稱為總線“設(shè)置資源屬性”,反之則稱為總線“讀取資源屬性”??偩€“設(shè)置資源屬性”時(shí),ZPU將路由器模塊Packet router設(shè)置為寫ZPU方式,Packet router對(duì)來自以太網(wǎng)的數(shù)據(jù)包頭進(jìn)行UDP端口識(shí)別,當(dāng)端口號(hào)為49152或49154時(shí),把數(shù)據(jù)送到Wishbone總線。Wishbone總線再把數(shù)據(jù)傳給ZPU,ZPU進(jìn)行UDP數(shù)據(jù)解析,進(jìn)而控制Wishbone總線下的從設(shè)備。總線“讀取資源屬性”時(shí),ZPU將路由器模塊設(shè)置為讀ZPU方式。路由器讀取ZPU中的資源信息時(shí),再把數(shù)據(jù)加上相同的端口號(hào)49152或49154包頭后,再把數(shù)據(jù)包通過以太接口發(fā)送給上位機(jī)。

        硬件驅(qū)動(dòng)UHD下載是通過UDP端口49154進(jìn)行的。當(dāng)路由器模塊Packet router收到UDP端口49154送來的數(shù)據(jù)時(shí),通過Wishbone總線送給ZPU。ZPU對(duì)數(shù)據(jù)頭進(jìn)行解析,分析是Prod_fpga還是Prod_fw,以及數(shù)據(jù)大小。再通過Wishbone總線對(duì)SPI Flash進(jìn)行設(shè)置,然后把數(shù)據(jù)寫入M25P64 Flash的相應(yīng)存儲(chǔ)單元,最后,ZPU再通過UDP端口號(hào)49154向上位機(jī)返回應(yīng)答任務(wù)完成情況的信息。至此,便完成了硬件驅(qū)動(dòng)UHD配置鏡像文件下載。新下載到M25P64 Flash的UHD硬件驅(qū)動(dòng)Prod_fpga和Prod_fw配置鏡像文件,需重啟系統(tǒng)后才能使用。

        2 UHD配置的片上系統(tǒng)

        2.1 實(shí)驗(yàn)平臺(tái)多重啟動(dòng)配置

        實(shí)驗(yàn)平臺(tái)啟動(dòng)多重配置分為兩大模塊順序進(jìn)行,第一大模塊先檢測(cè)與加載Prod_fpga硬件驅(qū)動(dòng)鏡像文件,后檢測(cè)與加載Prod_fw程序代碼固件鏡像文件。加載方法是ZPU通過給ICAP寫控制字方式啟動(dòng)加載。操作ICAP方法是:首先,按照加載要求對(duì)ICAP中模式寄存器MODE REG以及控制寄存器CTL、配置選項(xiàng)寄存器COR2等,進(jìn)行參數(shù)設(shè)置。然后,按照常用的Type1命令格式,對(duì)ICAP相應(yīng)的寄存器按照一定順序進(jìn)行賦值。Type1命令格式包含頭Header和數(shù)據(jù)Data兩部分,如圖3所示,實(shí)驗(yàn)平臺(tái)操作ICAP關(guān)鍵命令見表1[4-6]。

        圖3 對(duì)ICAP操作的Type1命令格式

        表1 實(shí)驗(yàn)平臺(tái)重配置操作ICAP的Type1格式關(guān)鍵命令

        為了利于軟件升級(jí),實(shí)驗(yàn)平臺(tái)總是從安全模式開始配置和啟動(dòng)。安全工作模式下,ZPU先將SPI Flash進(jìn)行初始化設(shè)置,進(jìn)而檢測(cè)M25P64 Flash中是否存在有效硬件驅(qū)動(dòng)Prod_fpga文件,如果檢測(cè)到則加載,否則通過以太網(wǎng)把未檢測(cè)到有效硬件驅(qū)動(dòng)文件通報(bào)上位機(jī),并要求上位機(jī)下載該文件。檢測(cè)方法是從M25P64 Flash的0X180000地址起始讀取,每次讀取16 byte,共讀取64 byte。若64 byte為連續(xù)的0XAA和0X99,則返回1,表示檢測(cè)到Prod_fpga,否則返回0。正確檢測(cè)到存在Prod_fpga后,啟動(dòng)對(duì)Prod_fpga鏡像文件的加載。

        鏡像文件的加載時(shí),首先先給ICAP的General1寄存器寫入Flash加載地址的低16 bit,操作碼為“0X3261 0X0000”。然后再給ICAP的General2寄存器按照Type1命令格式寫入SPI操作碼及Flash加載地址的高8位,操作碼為“0X3281 0X0118”。此時(shí),General2和General1兩個(gè)寄存器中命令的含義是:從熱啟動(dòng)地址WBSTAR為0X180000開始讀取Flash內(nèi)容。最后給ICAP的命令寄存器CMD寫入觸發(fā)加載命令I(lǐng)PROG,操作碼為“0X30A1 0X000E”,便從起始地址0X180000讀取M25P64 Flash中的配置信息,對(duì)FPGA進(jìn)行重構(gòu)。

        加載Prod_fpga鏡像文件重構(gòu)完成邏輯電路后,繼續(xù)檢測(cè)M25P64 Flash中是否存在有效的ZPU程序代碼固件firmware,即檢測(cè)Prod_fw程序代碼固件鏡像文件。如果檢測(cè)到則進(jìn)行加載,否則通過以太網(wǎng)把未檢測(cè)到程序代碼固件信息傳給上位機(jī),并要求下載程序代碼固件鏡像文件。對(duì)程序代碼固件文件Prod_fw的檢測(cè),方法是從M25P64 Flash的0X300000地址起始讀取4個(gè)byte,并判斷是否為連續(xù)4個(gè)0X0B,若正確則返回1,否則返回0。正確檢測(cè)到存在Prod_fw后,ZPU通過給ICAP寫控制字方式啟動(dòng)對(duì)Prod_fw的加載。Prod_fw程序代碼固件將被加載到系統(tǒng)存儲(chǔ)器Sys RAM中。加載完成后將觸發(fā)系統(tǒng)控制模塊System_control,ZPU系統(tǒng)按照Sys RAM中程序進(jìn)行重啟。之后實(shí)驗(yàn)平臺(tái)提供的通用功能或用戶定制功能就能正常使用了。

        2.2 UHD配置的片上系統(tǒng)

        硬件設(shè)備驅(qū)動(dòng)UHD配置鏡像文件建立的片上系統(tǒng)SoPC部分如圖4所示。需要說明的是,在安全模式啟動(dòng)下片上系統(tǒng)就已經(jīng)配置處理器ZPU、Wishbone總線及總線控制器[9-11]、掛接在Wishbone總線上的專用SPI接口SPI Flash、雙端口哈佛型引導(dǎo)程序存儲(chǔ)器Boot RAM、內(nèi)部配置訪問端口ICAP和相應(yīng)的狀態(tài)機(jī)邏輯控制器、可編程中斷控制器(Programmable Interrupt Controller,PIC)、數(shù)據(jù)包路由器Packet router、通用可編程I/O接口(General Purpose Input Output,GPIO)回讀緩沖、簡(jiǎn)化的以太網(wǎng)數(shù)據(jù)鏈路媒體層Ethernet MAC等模塊。片上系統(tǒng)中的Sys RAM、通用SPI、I2C、設(shè)置總線Setting bus及其15個(gè)寄存器組、通用可編程I/O接口GPIO回讀緩沖等邏輯功能模塊,是由硬件設(shè)備驅(qū)動(dòng)UHD重配置而完善的。需說明的是:為了使實(shí)驗(yàn)平臺(tái)具有極大的靈活性,在任何情況下都可以重新進(jìn)行硬件驅(qū)動(dòng)UHD的下載,或者是UHD的升級(jí)。

        3 UHD配置的功能模塊尋址方法

        3.1 Wishbone總線功能模塊尋址方法

        ZPU是實(shí)驗(yàn)平臺(tái)的主控制器,訪問各功能模塊需要按照一定方式尋址,而掛接在Wishbone總線上的功能模塊之下,很多還存在子功能單元,為了使ZPU能夠方便地訪問到子功能單元,并考慮軟件無線電無線設(shè)備的VITA-49規(guī)范建議,實(shí)驗(yàn)平臺(tái)采用的是地址和掩碼方式進(jìn)行尋址,Wishbone總線掛接的各功能模塊地址和掩碼如表2所示。

        圖4 硬件驅(qū)動(dòng)UHD建立的SoPC

        掛接在Wishbone總線上的功能模塊是按照地址段方式劃分與尋址,是通過匹配地址總線的高8位地址方式,使ZPU可以選中功能模塊。具體工作原理是:把Wishbone總線上的16 bit地址被分為高8 bit和低8 bit兩部分,把高8 bit地址同模塊8 bit掩碼進(jìn)行按位“與”運(yùn)算后,再同模塊高8 bit地址按位“異或”運(yùn)算,若邏輯運(yùn)算結(jié)果為0,則作為片選信號(hào),表明該功能模塊的地址段與Wishbone總線給出的地址相匹配,進(jìn)而接受ZPU的操作。如系統(tǒng)存儲(chǔ)器Sys RAM模塊地址段為0X0000~0XC000,設(shè)置總線Settings bus模塊地址段為0X7000~0X7FFF。若要操作到功能模塊中的具體子單元,還需Wishbone地址線中的低位地址參加選擇。

        3.2 子功能單元尋址方法

        掛接在Wishbone總線上的功能模塊幾乎都存在子功能單元,一些子功能單元作用比較單一,如Sys RAM的子功能單元就是存儲(chǔ)數(shù)據(jù);而一些子功能單元作用比較復(fù)雜,涉及到硬件的工作狀態(tài),但是不論子功能單元作用如何,其尋址方式相似。Setting bus上掛載了相當(dāng)多對(duì)實(shí)時(shí)性要求不高的低速設(shè)置寄存器組(Setting Regs,SR),如表3所示。

        表2 掛接Wishbone總線各功能模塊地址和掩碼

        表3 設(shè)置寄存器SR組和組中子單元寄存器數(shù)量及子單元的子起始地址

        這些寄存器組控制著實(shí)驗(yàn)平臺(tái)系統(tǒng)大部分的工作狀態(tài),且Setting bus又承擔(dān)低速控制總線的作用。因此,為了能說明問題,將以設(shè)置總線Setting bus為例介紹子功能單元尋址方法。需要說明的是:實(shí)驗(yàn)平臺(tái)設(shè)置總線Setting bus只掛載了低速設(shè)置寄存器,而高速設(shè)置寄存器并不掛載在Setting bus上,也不需要通過ZPU解析。有關(guān)高速設(shè)置寄存器問題將在后面另中介紹,此處不再贅述。

        當(dāng)Wishbone地址總線上的地址信號(hào)處于0X7000~0X7FFF段時(shí),Setting bus模塊被選中,Setting bus模塊把Wishbone地址的第9~2 bit連續(xù)取出8 bit信號(hào),作為選擇掛接Setting bus在子功能單元基組地址的8 bit信號(hào)。例如,若要選擇設(shè)置寄存器SR_GPIO中的SR_GPIO_0,它是設(shè)置射頻收發(fā)為空閑狀態(tài)的寄存器,又稱ATR0寄存器[2],這時(shí)只要Wishbone地址總線上給出的地址碼為0X72E0,就可以訪問該寄存器。在上位機(jī)常常以基組地址和偏移量方式指出尋址的寄存器,如尋址DDC_chain0通道模塊的設(shè)置寄存器,可以用SR_RX_DSP0+0、SR_RX_DSP0+1、SR_RX_DSP0+2、SR_RX_DSP0+3形式尋址,實(shí)際地址碼為0X72E0、0X72E4、0X72E8、0X72EC,對(duì)應(yīng)可改變DDC_chain0模塊中的中心相位、尺度、(半帶通1使能+半帶通2使能+梳狀濾波抽取率)、(選擇實(shí)數(shù)處理+I/Q交叉處理)等參數(shù)。

        需要注意的是:Setting bus模塊把Wishbone地址的第9~2 bit連續(xù)取出,作為子功能單元基組BASE地址的8 bit信號(hào),原因是ZPU為8 bit操作命令碼,而32 bit長(zhǎng)存儲(chǔ)器RAM被分為4個(gè)區(qū),每個(gè)區(qū)字長(zhǎng)8 bit,一個(gè)32 bit長(zhǎng)存儲(chǔ)器共保存4個(gè)ZPU操作命令碼,ZPU的程序指針PC利用最低2 bit地址作為取指4個(gè)區(qū)的定位,以確保連續(xù)獲得操作命令碼。而對(duì)于像訪問寄存器操作,一次就可進(jìn)行32 bit存儲(chǔ)操作,并不是8 bit操作。因此為了區(qū)分Wishbone地址線是ZPU操作,還是對(duì)寄存器操作,在對(duì)寄存器操作時(shí)回避使用最低2 bit地址信號(hào)。

        4 結(jié) 語

        所研制的無線電通信系統(tǒng)教學(xué)實(shí)驗(yàn)平臺(tái),采用了開放化和軟件化的設(shè)計(jì)理念,這就需要將硬件的驅(qū)動(dòng)配置鏡像文件載入主板配置文件存儲(chǔ)器,才能構(gòu)建出完整功能的無線電片上系統(tǒng)。對(duì)硬件設(shè)備驅(qū)動(dòng)鏡像文件存儲(chǔ)方式,多重啟動(dòng)配置工作原理,片上系統(tǒng)組成,掛接在內(nèi)部總線上的功能模塊及其子模塊尋址特點(diǎn)與方法等內(nèi)容,進(jìn)行了系統(tǒng)介紹。可以看出用軟件構(gòu)建出的無線電工作系統(tǒng)結(jié)構(gòu)呈現(xiàn)層次化和模塊化特點(diǎn)。理解實(shí)驗(yàn)平臺(tái)的驅(qū)動(dòng)配置方法,掌握所構(gòu)建的軟件無線電系統(tǒng)結(jié)構(gòu),不僅有助于對(duì)實(shí)驗(yàn)平臺(tái)工作原理的全面理解,而且為進(jìn)一步靈活地控制實(shí)驗(yàn)平臺(tái)奠定了必要的基礎(chǔ)。雖然加載硬件設(shè)備驅(qū)動(dòng)鏡像文件后并借助GNU Radio正常使用實(shí)驗(yàn)平臺(tái)不存在什么問題,但是若要想充分發(fā)揮實(shí)驗(yàn)平臺(tái)提供的資源,尤其是想開發(fā)出具有個(gè)性化創(chuàng)造性的軟件無線電應(yīng)用,還需要掌握整個(gè)系統(tǒng)的控制方式。筆者將繼續(xù)撰文,對(duì)實(shí)驗(yàn)平臺(tái)的系統(tǒng)控制過程及其工作原理進(jìn)行闡述。

        參考文獻(xiàn)(References):

        [1] FPGA用戶手冊(cè). XtremeDSP DSP48A for Spartan-3A DSP FPGAs[DB/OL]. http://www.xilinx.com/support/documentation/ user_guides/ug431.pdf.

        [2] USRP硬件驅(qū)動(dòng)程序和USRP手冊(cè)[EB/OL]. http://files.ettus.com/manual.

        [3] Zylin CPU資料[EB/OL]. https://github.com/zylin/zpu.

        [4] Ethernet MAC資料[EB/OL]. http://www.xilinx.com/support/documentation/ip_documentation/tri_mode_eth_mac/v5_5/pg051-tri-mode-eth-mac.pdf.

        [5] Adam D. Design and Implementation of the LWIP TCP/IP Stack[S]. Swedish Institute of Computer Science, 2001.

        [6] Wishbone總線資料[EB/OL]. http://opencores.org/cdn/downloads/wbspec_b4.pdf.

        [7] 陸洪毅, 戴 葵, 王志英. 基于WISHBONE的SoC接口設(shè)計(jì)[J]. 計(jì)算機(jī)工程與科學(xué), 2003, 25(5): 90-92.

        [8] 宋廷強(qiáng), 劉川來, 周 艷. SoC設(shè)計(jì)中WISHBONE片上總線的設(shè)計(jì)與開發(fā)[J]. 青島科技大學(xué)學(xué)報(bào), 24(5): 439-442.

        [9] 鄒 晨, 周 波, 李 鵬,等. FPGA重配置技術(shù)[J]. 航空計(jì)算技術(shù), 2012, 42(6):114-117.

        [10] 李 平, 吳 曉, 山 壽. 基于SPI FLASH的FPGA多重配置[J]. 現(xiàn)代電子技術(shù), 2013,36(22):127-130.

        [11] 劉 釗, 杜永鋒, 許知博. 基于Xilinx-Spartan6 FPGA的Multi Boot設(shè)計(jì)的實(shí)現(xiàn)[J]. 電子科技, 2012, 25(3): 28-31.

        猜你喜歡
        鏡像文件功能模塊寄存器
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        沒光驅(qū)不要緊 裝個(gè)免費(fèi)虛擬的
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        用RamOS降低公用機(jī)的維護(hù)工作量
        基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
        輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
        M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
        Win7升級(jí)Win10教程
        電腦迷(2015年9期)2015-05-30 22:08:35
        功能模塊的設(shè)計(jì)與應(yīng)用研究
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        激情五月婷婷综合| 日韩人妻中文无码一区二区| 亚洲精品久久区二区三区蜜桃臀| 在线看无码的免费网站| 2020年国产精品| 精品人妻无码一区二区三区蜜桃一| 亚洲精品久久久久久动漫| 日韩国产一区| 欧美1区二区三区公司| av免费网站在线免费观看| 亚洲最新精品一区二区| 亚洲av午夜精品无码专区| 亚洲av午夜国产精品无码中文字| 熟妇人妻无码中文字幕| 国产精品久久中文字幕第一页| 亚洲一区日本一区二区| 国产精品又湿又黄九九九久久嫩草 | 少妇av免费在线播放| 亚洲天堂线上免费av| 国产草逼视频免费观看| 久久精品国产99国产精偷| 性色av闺蜜一区二区三区| 国产亚洲精品自在久久蜜tv| 蜜桃av一区在线观看| 国产精品毛片极品久久| 99久久无色码中文字幕人妻蜜柚 | 国产99视频精品免视看9| 久久99欧美| 亚洲素人av在线观看| 国产国语按摩对白av在线观看| 欧美精品亚洲精品日韩专区 | 国产黑丝在线| 中国精品久久久久国产| 亚洲一区二区三区福利久久蜜桃| 久久精品国产字幕高潮| 男女性高爱潮免费网站| 免费一级毛片麻豆精品| 亚洲一区二区三区在线观看蜜桃| h视频在线免费观看视频| 大陆国产乱人伦| 1717国产精品久久|